treesitter-select.nvim is just a foolish plugin to navigate in
treesitter nodes with Arrow keys or something like that.
Besides simply select nodes incrementally or decrementally, treesitter-select provides Keymaps to select sibling nodes with and Inspired by ki-editer
record.mp4
treesitter-select.nvim is lazy loaded, so lazy loading it with package
managers maybe not needed.
vim.pack.add("https://github.com/Lingshinx/treesitter-select.nvim")
vim.keymap.set({ "n", "x" }, "<Up>", "<Plug>(TreesitterSelectParent)")
vim.keymap.set("x", "<Down>", "<Plug>(TreesitterSelectChild)")
vim.keymap.set("x", "<Left>", "<Plug>(TreesitterSelectPrev)")
vim.keymap.set("x", "<Right>", "<Plug>(TreesitterSelectNext)")
vim.keymap.set("x", "<Home>", "<Plug>(TreesitterSelectFirst)")
vim.keymap.set("x", "<End>", "<Plug>(TreesitterSelectLast)"){
"Lingshinx/treesitter-select.nvim",
keys = {
{
"<UP>",
"<Plug>(TreesitterSelectParent)",
mode = { "n", "x" },
desc = "increment Selection",
},
{
"<Down>",
"<Plug>(TreesitterSelectChild)",
mode = "x",
desc = "Decrement Selection",
},
{
"<Left>",
"<Plug>(TreesitterSelectPrev)",
mode = "x",
desc = "Prev Selection",
},
{
"<Right>",
"<Plug>(TreesitterSelectNext)",
mode = "x",
desc = "Next Selection",
},
{
"<Home>",
"<Plug>(TreesitterSelectFirst)",
mode = "x",
desc = "Prev Selection",
},
{
"<End>",
"<Plug>(TreesitterSelectLast)",
mode = "x",
desc = "Next Selection",
},
},
}Inspired By treesitter-modules.nvim