feat: remap treesitter incremental selection not to collide with mini.ai

This commit is contained in:
Nathan Zeng 2026-04-13 18:01:38 -07:00
parent c0cc054155
commit 0e39a70f6a
1 changed files with 19 additions and 0 deletions

View File

@ -921,6 +921,25 @@ require('lazy').setup({
end
end,
})
-- Treesitter incremental selection, see `:help treesitter-incremental-selection`
-- Note: the default keymaps `an` and `in` collide with mini.ai, so we remap them below
-- Try putting your cursor in one of the lines below and typing `v+` (then continue to type `+` or `-`)
vim.keymap.set({ 'x', 'o' }, '+', function()
if vim.treesitter.get_parser(nil, nil, { error = false }) then
require('vim.treesitter._select').select_parent(vim.v.count1)
else
vim.lsp.buf.selection_range(vim.v.count1)
end
end, { desc = 'Select parent (outer) node' })
vim.keymap.set({ 'x', 'o' }, '-', function()
if vim.treesitter.get_parser(nil, nil, { error = false }) then
require('vim.treesitter._select').select_child(vim.v.count1)
else
vim.lsp.buf.selection_range(-vim.v.count1)
end
end, { desc = 'Select child (inner) node' })
end,
},