mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(treesitter): maintain cursor position when toggling anonymous nodes
When toggling anonymous nodes in the :InspectTree window, keep the cursor fixed relative to the node within the tree. This prevents the cursor from jumping.
This commit is contained in:
parent
f449121764
commit
2eeafc43c4
@ -506,8 +506,26 @@ function M.inspect_tree(opts)
|
||||
a.nvim_buf_set_keymap(b, 'n', 'a', '', {
|
||||
desc = 'Toggle anonymous nodes',
|
||||
callback = function()
|
||||
local row, col = unpack(a.nvim_win_get_cursor(w))
|
||||
local curnode = pg:get(row)
|
||||
while curnode and not curnode.named do
|
||||
row = row - 1
|
||||
curnode = pg:get(row)
|
||||
end
|
||||
|
||||
pg.opts.anon = not pg.opts.anon
|
||||
pg:draw(b)
|
||||
|
||||
if not curnode then
|
||||
return
|
||||
end
|
||||
|
||||
local id = curnode.id
|
||||
for i, node in pg:iter() do
|
||||
if node.id == id then
|
||||
a.nvim_win_set_cursor(w, { i, col })
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
a.nvim_buf_set_keymap(b, 'n', 'I', '', {
|
||||
|
Loading…
Reference in New Issue
Block a user