tree-sitter is an Emacs binding for Tree-sitter, an incremental parsing system.

It aims to be the foundation for a new breed of Emacs packages that understand code structurally. For example:

  • Faster, fine-grained code highlighting.
  • More flexible code folding.
  • Structural editing (like Paredit, or even better) for non-Lisp code.
  • More informative indexing for imenu.

The author of Tree-sitter articulated its merits a lot better in this Strange Loop talk.