diff options
author | Lewis Russell <lewis6991@gmail.com> | 2023-03-08 11:03:11 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-08 11:03:11 +0000 |
commit | ddd257f75301a50c177fc24a693d39a45b47a689 (patch) | |
tree | 052f09c521d467c31919ba6b67b085cf4bb234d3 /runtime/lua/vim/treesitter/query.lua | |
parent | 06aed7c1776e9db769c77ce836c1995128a6afc6 (diff) | |
download | rneovim-ddd257f75301a50c177fc24a693d39a45b47a689.tar.gz rneovim-ddd257f75301a50c177fc24a693d39a45b47a689.tar.bz2 rneovim-ddd257f75301a50c177fc24a693d39a45b47a689.zip |
feat(treesitter): use upstream format for injection queries
Diffstat (limited to 'runtime/lua/vim/treesitter/query.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/query.lua | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/runtime/lua/vim/treesitter/query.lua b/runtime/lua/vim/treesitter/query.lua index 22f706585e..59894cc7f5 100644 --- a/runtime/lua/vim/treesitter/query.lua +++ b/runtime/lua/vim/treesitter/query.lua @@ -407,7 +407,7 @@ predicate_handlers['vim-match?'] = predicate_handlers['match?'] ---@field [string] integer|string ---@field range Range4 ----@alias TSDirective fun(match: TSMatch, _, _, predicate: any[], metadata: TSMetadata) +---@alias TSDirective fun(match: TSMatch, _, _, predicate: (string|integer)[], metadata: TSMetadata) -- Predicate handler receive the following arguments -- (match, pattern, bufnr, predicate) @@ -419,24 +419,17 @@ predicate_handlers['vim-match?'] = predicate_handlers['match?'] ---@type table<string,TSDirective> local directive_handlers = { ['set!'] = function(_, _, _, pred, metadata) - if #pred == 4 then - -- (#set! @capture "key" "value") - ---@diagnostic disable-next-line:no-unknown - local _, capture_id, key, value = unpack(pred) - ---@cast value integer|string - ---@cast capture_id integer - ---@cast key string + if #pred >= 3 and type(pred[2]) == 'number' then + -- (#set! @capture key value) + local capture_id, key, value = pred[2], pred[3], pred[4] if not metadata[capture_id] then metadata[capture_id] = {} end metadata[capture_id][key] = value else - ---@diagnostic disable-next-line:no-unknown - local _, key, value = unpack(pred) - ---@cast value integer|string - ---@cast key string - -- (#set! "key" "value") - metadata[key] = value + -- (#set! key value) + local key, value = pred[2], pred[3] + metadata[key] = value or true end end, -- Shifts the range of a node. |