Table of Contents

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))

Author: root

Created: 2024-04-03 Wed 19:40

Validate