diff options
Diffstat (limited to '')
-rw-r--r-- | lua/snippets/c.lua | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lua/snippets/c.lua b/lua/snippets/c.lua index 65463dc..be0a683 100644 --- a/lua/snippets/c.lua +++ b/lua/snippets/c.lua @@ -9,8 +9,21 @@ local function c_func(func) local q = vim.treesitter.query.parse("c", "(function_definition) @f") local matches = q:iter_matches(tree, 0) + vim.treesitter.query.parse("c", "(identifier) @i") + local m = q:iter_matches(matches, 0) + print(vim.treesitter.get_node_text(m:child(), 0)) + + if true then + return + end + for _, match in matches do for _, node in pairs(match) do + if not node or not node:child(1) or not node:child(1):child() then + -- print(vim.treesitter.get_node_text(node:child(1):child(), 0)) + goto continue + end + if vim.treesitter.get_node_text(node:child(1):child(), 0) == func then local def = "" for i = 0, node:child_count() - 2 do @@ -22,6 +35,7 @@ local function c_func(func) -- Print the function name using node text return def:gsub("\n", "") end + ::continue:: end end |