#+TITLE: tree-sitter layer #+TAGS: emacs|general|layer|misc * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#configure][Configure]] * Description This layer integrates [[https://github.com/emacs-tree-sitter/elisp-tree-sitter][=Emacs Tree-sitter=]] and a few packages built around it. An Emacs build supporting dynamic modules is required. Language (i.e. major-mode) support is somewhat limited and varies by feature. Refer to the README/documentation of the package providing the feature for specifics. ** Features: - Syntax highlighting - Indentation (experimental) - Folding (experimental) * Install To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =tree-sitter= to the existing =dotspacemacs-configuration-layers= list in this file. * Configure *Note*: Enabled features /should/ override existing mechanisms seamlessly. For example, there's no need to separately disable regexp-based syntax highlighting, and in general you do not need to update key bindings to point to new tree-sitter-based commands. Set =tree-sitter-syntax-highlight-enable t= for syntax highlighting, provided by =tree-sitter-hl-mode= which is bundled with [[https://github.com/emacs-tree-sitter/elisp-tree-sitter][=tree-sitter-mode=]]. Default: =t=. Set =tree-sitter-indent-enable t= for code indentation, provided by [[https://codeberg.org/FelipeLema/tree-sitter-indent.el][=tree-sitter-indent=]]. Currently only Rust is supported. Default: =nil=. Set =tree-sitter-fold-enable t= for code folding, provided by [[https://github.com/jcs090218/ts-fold][=ts-fold=]]. If you use a =dotspacemacs-editing-style= other than ='vim= or a =dotspacemacs-folding-method= other than ='evil=, it's likely that you'll find the integration with =ts-fold= wanting. Contributions are encouraged! Default: =nil=.