summaryrefslogtreecommitdiff
path: root/lua/nvim-treesitter/tsrange.lua
diff options
context:
space:
mode:
authorSteven Sojka <steelsojka@users.noreply.github.com>2021-03-30 08:18:24 -0500
committerGitHub <noreply@github.com>2021-03-30 08:18:24 -0500
commit6863f79118d3cb331fd4e726cdb2384bbd8bf8f2 (patch)
treec703b490f9c3e7e601e673704984b42f9edfe6ab /lua/nvim-treesitter/tsrange.lua
parent0df7c4aa39a6097e112f001520d2cea257440ed7 (diff)
refactor(all): language tree adaption (#1105)
Diffstat (limited to 'lua/nvim-treesitter/tsrange.lua')
-rw-r--r--lua/nvim-treesitter/tsrange.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/lua/nvim-treesitter/tsrange.lua b/lua/nvim-treesitter/tsrange.lua
index 309d21b8..a8ce26f3 100644
--- a/lua/nvim-treesitter/tsrange.lua
+++ b/lua/nvim-treesitter/tsrange.lua
@@ -4,6 +4,7 @@ TSRange.__index = TSRange
local api = vim.api
local parsers = require'nvim-treesitter.parsers'
+local ts_utils = require'nvim-treesitter.ts_utils'
local function get_byte_offset(buf, row, col)
return api.nvim_buf_get_offset(buf, row)
@@ -57,8 +58,11 @@ end
function TSRange:parent(range)
local parser = parsers.get_parser(self.buf, parsers.get_buf_lang(range))
- local root = parser:parse()[1]:root()
- return root:named_descendant_for_range(self.start_pos[1], self.start_pos[2], self.end_pos[1], self.end_pos[2])
+ local root = ts_utils.get_root_for_position(range[1], range[2], parser)
+
+ return root
+ and root:named_descendant_for_range(self.start_pos[1], self.start_pos[2], self.end_pos[1], self.end_pos[2])
+ or nil
end
function TSRange:field()