fix: Use only filetype tree for generation (#26)
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user