diff options
author | Stephan Seitz <stephan.seitz@fau.de> | 2021-04-11 20:53:52 +0200 |
---|---|---|
committer | Stephan Seitz <stephan.seitz@fau.de> | 2021-07-24 20:57:45 +0200 |
commit | b2a9afef6deaceb5d29440c486818ce8268c1873 (patch) | |
tree | 53dbf5d4cfdb4450a0ef81999e4be944ac7b7e1c /runtime | |
parent | 46009499afbb0232124072d775caa9552d0f71de (diff) | |
download | rneovim-b2a9afef6deaceb5d29440c486818ce8268c1873.tar.gz rneovim-b2a9afef6deaceb5d29440c486818ce8268c1873.tar.bz2 rneovim-b2a9afef6deaceb5d29440c486818ce8268c1873.zip |
treesitter: add query.list_directives
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/treesitter.txt | 27 | ||||
-rw-r--r-- | runtime/lua/vim/treesitter/query.lua | 5 |
2 files changed, 32 insertions, 0 deletions
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt index 340db92ae3..ce2b287944 100644 --- a/runtime/doc/treesitter.txt +++ b/runtime/doc/treesitter.txt @@ -249,6 +249,33 @@ Here is a list of built-in directives: `({capture_id}, {start_row}, {start_col}, {end_row}, {end_col}, {key?})` The default key is "offset". + *vim.treesitter.query.add_predicate()* +vim.treesitter.query.add_predicate({name}, {handler}) + +This adds a predicate with the name {name} to be used in queries. +{handler} should be a function whose signature will be : > + handler(match, pattern, bufnr, predicate) +< + *vim.treesitter.query.list_predicates()* +vim.treesitter.query.list_predicates() + +This lists the currently available predicates to use in queries. + + *vim.treesitter.query.add_directive()* +vim.treesitter.query.add_directive({name}, {handler}) + +This adds a directive with the name {name} to be used in queries. +{handler} should be a function whose signature will be : > + handler(match, pattern, bufnr, predicate, metadata) +Handlers can set match level data by setting directly on the metadata object `metadata.key = value` +Handlers can set node level data by using the capture id on the metadata table +`metadata[capture_id].key = value` + + *vim.treesitter.query.list_directives()* +vim.treesitter.query.list_directives() + +This lists the currently available directives to use in queries. + Treesitter syntax highlighting (WIP) *lua-treesitter-highlight* NOTE: This is a partially implemented feature, and not usable as a default diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua index b81eb18945..0ba44ced1a 100644 --- a/runtime/lua/vim/treesitter/query.lua +++ b/runtime/lua/vim/treesitter/query.lua @@ -351,6 +351,11 @@ function M.add_directive(name, handler, force) directive_handlers[name] = handler end +--- Returns the list of currently supported directives +function M.list_directives() + return vim.tbl_keys(directive_handlers) +end + --- Returns the list of currently supported predicates function M.list_predicates() return vim.tbl_keys(predicate_handlers) |