aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/treesitter.lua18
-rw-r--r--runtime/lua/vim/treesitter/playground.lua7
2 files changed, 22 insertions, 3 deletions
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua
index f80da433b1..b63247aa2c 100644
--- a/runtime/lua/vim/treesitter.lua
+++ b/runtime/lua/vim/treesitter.lua
@@ -507,8 +507,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', '', {
diff --git a/runtime/lua/vim/treesitter/playground.lua b/runtime/lua/vim/treesitter/playground.lua
index fd5b687195..992433961f 100644
--- a/runtime/lua/vim/treesitter/playground.lua
+++ b/runtime/lua/vim/treesitter/playground.lua
@@ -146,9 +146,9 @@ local decor_ns = api.nvim_create_namespace('ts.playground')
---@return string
local function get_range_str(lnum, col, end_col, end_lnum)
if lnum == end_lnum then
- return string.format('[%d:%d-%d]', lnum + 1, col + 1, end_col)
+ return string.format('[%d:%d - %d]', lnum + 1, col + 1, end_col)
end
- return string.format('[%d:%d-%d:%d]', lnum + 1, col + 1, end_lnum + 1, end_col)
+ return string.format('[%d:%d - %d:%d]', lnum + 1, col + 1, end_lnum + 1, end_col)
end
--- Write the contents of this Playground into {bufnr}.
@@ -163,7 +163,8 @@ function TSPlayground:draw(bufnr)
for _, item in self:iter() do
local range_str = get_range_str(item.lnum, item.col, item.end_lnum, item.end_col)
local lang_str = self.opts.lang and string.format(' %s', item.lang) or ''
- local line = string.rep(' ', item.depth) .. item.text .. '; ' .. range_str .. lang_str
+ local line =
+ string.format('%s%s ; %s%s', string.rep(' ', item.depth), item.text, range_str, lang_str)
if self.opts.lang then
lang_hl_marks[#lang_hl_marks + 1] = {