diff options
| author | Tom van Dijk <18gatenmaker6@gmail.com> | 2023-03-24 22:44:28 +0100 |
|---|---|---|
| committer | Lewis Russell <me@lewisr.dev> | 2023-03-24 22:17:04 +0000 |
| commit | 5c3e8dee6498f91387bb825b9728f0cfceb3be7e (patch) | |
| tree | d3623ff62ef1afa4f6bf7d555ab49bceffa50310 | |
| parent | use indent.X syntax for captures and properties of set directives (diff) | |
| download | nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar.gz nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar.bz2 nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar.lz nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar.xz nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.tar.zst nvim-treesitter-5c3e8dee6498f91387bb825b9728f0cfceb3be7e.zip | |
fix: `get_range` shim for playground
| -rw-r--r-- | lua/nvim-treesitter/compat.lua | 7 | ||||
| -rw-r--r-- | lua/nvim-treesitter/locals.lua | 14 | ||||
| -rw-r--r-- | queries/lua/injections.scm | 2 |
3 files changed, 12 insertions, 11 deletions
diff --git a/lua/nvim-treesitter/compat.lua b/lua/nvim-treesitter/compat.lua index 072b4dc58..accf2e6ac 100644 --- a/lua/nvim-treesitter/compat.lua +++ b/lua/nvim-treesitter/compat.lua @@ -1,5 +1,6 @@ -- Shim module to address deprecations across nvim versions -local tsq = vim.treesitter.query +local ts = vim.treesitter +local tsq = ts.query local M = {} @@ -15,4 +16,8 @@ function M.parse_query(lang, query) return (tsq.parse or tsq.parse_query)(lang, query) end +function M.get_range(node, source, metadata) + return (ts.get_range or tsq.get_range)(node, source, metadata) +end + return M diff --git a/lua/nvim-treesitter/locals.lua b/lua/nvim-treesitter/locals.lua index 75ae07237..cc69d5621 100644 --- a/lua/nvim-treesitter/locals.lua +++ b/lua/nvim-treesitter/locals.lua @@ -4,7 +4,7 @@ local queries = require "nvim-treesitter.query" local ts_utils = require "nvim-treesitter.ts_utils" -local ts_query = vim.treesitter.query +local ts = vim.treesitter local api = vim.api local M = {} @@ -170,7 +170,7 @@ M.get_definitions_lookup_table = ts_utils.memoize_by_buf_tick(function(bufnr) local scopes = M.get_definition_scopes(node_entry.node, bufnr, node_entry.scope) -- Always use the highest valid scope local scope = scopes[#scopes] - local node_text = ts_query.get_node_text(node_entry.node, bufnr) + local node_text = ts.get_node_text(node_entry.node, bufnr) local id = M.get_definition_id(scope, node_text) result[id] = node_entry @@ -223,7 +223,7 @@ end ---@return string|nil kind function M.find_definition(node, bufnr) local def_lookup = M.get_definitions_lookup_table(bufnr) - local node_text = ts_query.get_node_text(node, bufnr) + local node_text = ts.get_node_text(node, bufnr) for scope in M.iter_scope_tree(node, bufnr) do local id = M.get_definition_id(scope, node_text) @@ -244,7 +244,7 @@ end ---@return TSNode[]: a list of nodes function M.find_usages(node, scope_node, bufnr) bufnr = bufnr or api.nvim_get_current_buf() - local node_text = ts_query.get_node_text(node, bufnr) + local node_text = ts.get_node_text(node, bufnr) if not node_text or #node_text < 1 then return {} @@ -254,11 +254,7 @@ function M.find_usages(node, scope_node, bufnr) local usages = {} for match in M.iter_locals(bufnr, scope_node) do - if - match.reference - and match.reference.node - and ts_query.get_node_text(match.reference.node, bufnr) == node_text - then + if match.reference and match.reference.node and ts.get_node_text(match.reference.node, bufnr) == node_text then local def_node, _, kind = M.find_definition(match.reference.node, bufnr) if kind == nil or def_node == node then diff --git a/queries/lua/injections.scm b/queries/lua/injections.scm index bb3d119f5..b9b203424 100644 --- a/queries/lua/injections.scm +++ b/queries/lua/injections.scm @@ -14,7 +14,7 @@ ((function_call name: (_) @_vimcmd_identifier arguments: (arguments (string content: _ @query) .)) - (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse_query")) + (#any-of? @_vimcmd_identifier "vim.treesitter.query.set" "vim.treesitter.query.parse_query" "vim.treesitter.query.parse")) ;; highlight string as query if starts with `;; query` ((string ("string_content") @query) (#lua-match? @query "^%s*;+%s?query")) |
