From 3407a74ccd71623e634b69d4ecc3a8ca2fd52f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=96=E8=B0=A6?= <1261043829@qq.com> Date: Thu, 6 Mar 2025 19:53:03 +0800 Subject: [PATCH] fix: fix only select root node for vue files --- lua/leap/treesitter.lua | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lua/leap/treesitter.lua b/lua/leap/treesitter.lua index 4ec2123..bf2ca2b 100644 --- a/lua/leap/treesitter.lua +++ b/lua/leap/treesitter.lua @@ -1,21 +1,20 @@ local api = vim.api +local ts_utils = require('nvim-treesitter.ts_utils') + local function get_nodes() if not pcall(vim.treesitter.get_parser) then return nil, "No treesitter parser for this filetype." else - local _1_ = vim.treesitter.get_node() - if (nil ~= _1_) then - local node = _1_ - local nodes = {node} - local parent = node:parent() - while parent do - table.insert(nodes, parent) - parent = parent:parent() - end - return nodes - else - return nil + local cur_node = ts_utils.get_node_at_cursor(0) + if not cur_node then return end + -- Get parent nodes recursively. + local nodes = { cur_node } + local parent = cur_node:parent() + while parent do + table.insert(nodes, parent) + parent = parent:parent() end + return nodes end end local function nodes__3etargets(nodes)