Textobjects that are language specific (like functions, classes, etc)
require an accompanying tree-sitter grammar and a
textobjects.scm query file
to work properly. Tree-sitter allows us to query the source code syntax tree
and capture specific parts of it. The queries are written in a lisp dialect.
More information on how to write queries can be found in the official tree-sitter
Query files should be placed in
when contributing. Note that to test the query files locally you should put
them under your local runtime directory (
~/.config/helix/runtime on Linux
The following captures are recognized:
Example query files can be found in the helix GitHub repository.
Tree-sitter based navigation is done using captures in the following order:
For example if a
function.around capture has been already defined for a language
textobjects.scm file, function navigation should also work automatically.
function.movement should be defined only if the node captured by
doesn't make sense in a navigation context.