tree-sitter layer
Table of ContentsClose
1. Description
This layer integrates 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.
1.1. Features:
- Syntax highlighting
- Indentation (experimental)
- Folding (experimental)
2. 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.
3. 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 tree-sitter-mode.
Default: t.
Set tree-sitter-indent-enable t for code indentation, provided by
tree-sitter-indent. Currently only Rust is supported.
Default: nil.
Set tree-sitter-fold-enable t for code folding, provided by 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.
Set spacemacs-tree-sitter-hl-black-list for a list of modes that should
not enable highlight by tree-sitter-hl-mode, such as
js2-mode and rjsx-mode for example.
(setq-default dotspacemacs-configuration-layers (tree-sitter :variables spacemacs-tree-sitter-hl-black-list '(js2-mode rjsx-mode) tree-sitter-syntax-highlight-enable t tree-sitter-fold-enable t tree-sitter-fold-indicators-enable nil))