Tree-sitter starter guide

This page summarizes the projects mentioned and recommended in the original post on /r/emacs

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • puni

    Structured editing (soft deletion, expression navigating & manipulating) that supports many major modes out of the box.

  • I'm guessing the way forward here for navigation is to change Emacs' built-in sexp-navigation when treesitter is available? forward-sexp, backward-up-list, down-list, raise-sexp etc do a good job in lisp environments, and they can now work everywhere. Packages that build on these (like Puni will automatically gain treesitter-awareness.

  • evil-textobj-tree-sitter

    Tree-sitter powered textobjects for evil mode in Emacs

  • evil-mode users already have options, and there seems to be a new package with general applicability too.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • ts-movement

    Emacs 29+ minor mode for syntax tree navigation using Tree Sitter

  • evil-mode users already have options, and there seems to be a new package with general applicability too.

  • lunarymacs

    Moon-based Emacs configuration.

  • I'm also a diehard expand-region user! I believe a less precise but super simple command is better than a precise but complicated one. IMO expand-region > text objects, forward/backward-sexp/word > avy / other fancy navigation tool. But I digress. For tree-sitter aware expand-region, this is what I'm using: https://github.com/casouri/lunarymacs/blob/master/site-lisp/expreg.el

  • symex.el

    An intuitive way to edit Lisp symbolic expressions ("symexes") structurally in Emacs

  • This is a really useful synopsis. symex has recently had TS support merged in, and apparently includes navigation and structural editing similar to its lisp-like language capabilities. I think it's still early going and I haven't tested, but may be worth a look.

  • haskell-ts-mode

    Emacs major mode for Haskell tree-sitter support.

  • I did, I used the c-ts-mode source as a reference. Even with a single query the performance is unacceptable in a 150 loc file. Here's the source I'll take a look at the links you provided tho when I get the time.

  • pandoc

    Universal markup converter

  • The work done in redisplay_internal went down significantly but still sits pretty high in big files such as https://github.com/jgm/pandoc/blob/main/src/Text/Pandoc/Parsing/General.hs

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts