fix: Use only filetype tree for generation (#26)

This commit is contained in:
danymat
2021-11-13 14:29:15 +01:00
parent f3e5ce4ec7
commit 8e8cdad400

View File

@@ -1,6 +1,7 @@
local ok, ts_utils = pcall(require, "nvim-treesitter.ts_utils") local ok, ts_utils = pcall(require, "nvim-treesitter.ts_utils")
assert(ok, "neogen requires nvim-treesitter to operate :(") assert(ok, "neogen requires nvim-treesitter to operate :(")
---@diagnostic disable-next-line: lowercase-global
neogen = {} neogen = {}
-- Require utilities -- Require utilities
@@ -18,8 +19,12 @@ neogen.generate = function(opts)
opts = opts or { opts = opts or {
type = "func", type = "func",
} }
vim.treesitter.get_parser(0):for_each_tree(function(tree, language_tree)
local language = neogen.configuration.languages[language_tree:lang()] local parser = vim.treesitter.get_parser(0, vim.bo.filetype)
local tstree = parser:parse()[1]
local tree = tstree:root()
local language = neogen.configuration.languages[vim.bo.filetype]
if language then if language then
language.locator = language.locator or neogen.default_locator language.locator = language.locator or neogen.default_locator
@@ -32,7 +37,7 @@ neogen.generate = function(opts)
-- Use the language locator to locate one of the required parent nodes above the cursor -- Use the language locator to locate one of the required parent nodes above the cursor
local located_parent_node = language.locator({ local located_parent_node = language.locator({
root = tree:root(), root = tree,
current = ts_utils.get_node_at_cursor(0), current = ts_utils.get_node_at_cursor(0),
}, language.parent[opts.type]) }, language.parent[opts.type])
@@ -102,7 +107,6 @@ neogen.generate = function(opts)
end end
end end
end end
end)
end end
function neogen.jump_next() function neogen.jump_next()