update ts nodes

pull/119/head
ray-x 2 years ago
parent f4c07bb5d6
commit 7320a536d7

@ -6,6 +6,7 @@ local locals = require("nvim-treesitter.locals")
local utils = require("go.ts.utils")
local ulog = require("go.utils").log
local warn = require("go.utils").warn
local vim_query = require("vim.treesitter.query")
local M = {}
@ -87,7 +88,7 @@ M.get_nodes = function(query, lang, defaults, bufnr)
end
if op == "name" then
name = ts_utils.get_node_text(node)[1]
name = vim_query.get_node_text(node, bufnr)
elseif op == "declaration" then
declaration_node = node
sRow, sCol, eRow, eCol = node:range()
@ -101,9 +102,9 @@ M.get_nodes = function(query, lang, defaults, bufnr)
if declaration_node ~= nil then
table.insert(results, {
declaring_node = declaration_node,
dim = {s = {r = sRow, c = sCol}, e = {r = eRow, c = eCol}},
dim = { s = { r = sRow, c = sCol }, e = { r = eRow, c = eCol } },
name = name,
type = type
type = type,
})
end
end
@ -151,17 +152,34 @@ M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col)
local idx = string.find(path, ".[^.]*$") -- find last .
op = string.sub(path, idx + 1, #path)
local a1, b1, c1, d1 = ts_utils.get_node_range(node)
local dbg_txt = ts_utils.get_node_text(node, bufnr)[1]
local dbg_txt = vim.treesitter.query.get_node_text(node, bufnr)
type = string.sub(path, 1, idx - 1)
ulog("node ", vim.inspect(node),
"\n path: " .. path .. " op: " .. op .. " type: " .. type .. "\n txt: " .. dbg_txt .. "\n range: "
.. tostring(a1) .. ":" .. tostring(b1) .. " TO " .. tostring(c1) .. ":" .. tostring(d1))
ulog(
"node ",
vim.inspect(node),
"\n path: "
.. path
.. " op: "
.. op
.. " type: "
.. type
.. "\n txt: "
.. dbg_txt
.. "\n range: "
.. tostring(a1)
.. ":"
.. tostring(b1)
.. " TO "
.. tostring(c1)
.. ":"
.. tostring(d1)
)
--
-- may not handle complex node
if op == "name" then
-- ulog("node name " .. name)
name = ts_utils.get_node_text(node, bufnr)[1]
name = vim.treesitter.query.get_node_text(node, bufnr)
elseif op == "declaration" or op == "clause" then
declaration_node = node
sRow, sCol, eRow, eCol = node:range()
@ -180,10 +198,10 @@ M.get_all_nodes = function(query, lang, defaults, bufnr, pos_row, pos_col)
end
table.insert(results, {
declaring_node = declaration_node,
dim = {s = {r = sRow, c = sCol}, e = {r = eRow, c = eCol}},
dim = { s = { r = sRow, c = sCol }, e = { r = eRow, c = eCol } },
name = name,
operator = op,
type = type
type = type,
})
end
end

Loading…
Cancel
Save