fix: reparse source if the node has changes

This commit is contained in:
Price Hiller 2024-05-13 12:54:05 -05:00
parent 462b04fd96
commit e9e94e7fc5
Signed by: Price
GPG Key ID: C3FADDE7A8534BEB

View File

@ -256,6 +256,13 @@ local function find_tag_node(opt)
local name_tag_pattern = opt.name_tag_pattern
local skip_tag_pattern = opt.skip_tag_pattern
local find_child = opt.find_child or false
--- PERF: Some parsers don't seemingly pick up their trees correctly, so we have to reparse the
--- entire source. This is slow, see if we can avoid this.
if target and target:has_changes() then
local parser = vim.treesitter.get_parser()
_ = (parser and parser:parse(true) or nil)
target = ts_utils.get_node_at_cursor()
end
local node
if find_child then
node = find_child_match({