From c3848e713a8272e524a7eabe9eb0897cf2d6932e Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Fri, 15 Apr 2022 22:12:51 +0200 Subject: chore: deprecate ts_utils.get_node_text --- lua/nvim-treesitter.lua | 4 ---- lua/nvim-treesitter/locals.lua | 9 +++++---- lua/nvim-treesitter/ts_utils.lua | 32 +++++++++----------------------- 3 files changed, 14 insertions(+), 31 deletions(-) (limited to 'lua') diff --git a/lua/nvim-treesitter.lua b/lua/nvim-treesitter.lua index af46bd017..f6282988e 100644 --- a/lua/nvim-treesitter.lua +++ b/lua/nvim-treesitter.lua @@ -1,7 +1,3 @@ -if not pcall(require, "vim.treesitter.languagetree") then - error "nvim-treesitter requires a more recent Neovim nightly version!" -end - local install = require "nvim-treesitter.install" local utils = require "nvim-treesitter.utils" local ts_utils = require "nvim-treesitter.ts_utils" diff --git a/lua/nvim-treesitter/locals.lua b/lua/nvim-treesitter/locals.lua index e0da2d02e..19d344aad 100644 --- a/lua/nvim-treesitter/locals.lua +++ b/lua/nvim-treesitter/locals.lua @@ -4,6 +4,7 @@ local queries = require "nvim-treesitter.query" local ts_utils = require "nvim-treesitter.ts_utils" +local ts_query = vim.treesitter.query local api = vim.api local M = {} @@ -162,7 +163,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_utils.get_node_text(node_entry.node, bufnr)[1] + local node_text = ts_query.get_node_text(node_entry.node, bufnr)[1] local id = M.get_definition_id(scope, node_text) result[id] = node_entry @@ -210,7 +211,7 @@ end function M.find_definition(node, bufnr) local def_lookup = M.get_definitions_lookup_table(bufnr) - local node_text = ts_utils.get_node_text(node, bufnr)[1] + local node_text = ts_query.get_node_text(node, bufnr)[1] for scope in M.iter_scope_tree(node, bufnr) do local id = M.get_definition_id(scope, node_text) @@ -231,7 +232,7 @@ end -- @returns a list of nodes function M.find_usages(node, scope_node, bufnr) local bufnr = bufnr or api.nvim_get_current_buf() - local node_text = ts_utils.get_node_text(node, bufnr)[1] + local node_text = ts_query.get_node_text(node, bufnr)[1] if not node_text or #node_text < 1 then return {} @@ -244,7 +245,7 @@ function M.find_usages(node, scope_node, bufnr) if match.reference and match.reference.node - and ts_utils.get_node_text(match.reference.node, bufnr)[1] == node_text + and ts_query.get_node_text(match.reference.node, bufnr)[1] == node_text then local def_node, _, kind = M.find_definition(match.reference.node, bufnr) diff --git a/lua/nvim-treesitter/ts_utils.lua b/lua/nvim-treesitter/ts_utils.lua index 07bf8ab33..64d423166 100644 --- a/lua/nvim-treesitter/ts_utils.lua +++ b/lua/nvim-treesitter/ts_utils.lua @@ -2,35 +2,21 @@ local api = vim.api local parsers = require "nvim-treesitter.parsers" local utils = require "nvim-treesitter.utils" +local ts_query = vim.treesitter.query local M = {} --- Gets the actual text content of a node +-- @deprecated Use vim.treesitter.query.get_node_text -- @param node the node to get the text from -- @param bufnr the buffer containing the node -- @return list of lines of text of the node function M.get_node_text(node, bufnr) - local bufnr = bufnr or api.nvim_get_current_buf() - if not node then - return {} - end - - -- We have to remember that end_col is end-exclusive - local start_row, start_col, end_row, end_col = M.get_node_range(node) - - if start_row ~= end_row then - local lines = api.nvim_buf_get_lines(bufnr, start_row, end_row + 1, false) - lines[1] = string.sub(lines[1], start_col + 1) - -- end_row might be just after the last line. In this case the last line is not truncated. - if #lines == end_row - start_row + 1 then - lines[#lines] = string.