1
0

plugins/treesitter: add textobjects extension

This commit is contained in:
Patrick Auernig 2024-10-06 14:28:39 +02:00
parent 75213c2c4e
commit a6954a76c8
2 changed files with 41 additions and 1 deletions

View File

@ -30,6 +30,7 @@
"nvim-treesitter": { "branch": "master", "commit": "7821feb7e7d55a76b7ffeeb6b0bfb7b8f499ce94" },
"nvim-treesitter-context": { "branch": "master", "commit": "78a81c7494e7d1a08dd1200b556933e513fd9f29" },
"nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "b91c98afa6c42819aea6cbc1ba38272f5456a5cf" },
"nvim-ufo": { "branch": "main", "commit": "203c9f434feec57909ab4b1e028abeb3349b7847" },
"nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" },
"oil.nvim": { "branch": "master", "commit": "ccab9d5e09e2d0042fbbe5b6bd05e82426247067" },

View File

@ -5,6 +5,7 @@ local spec = {
spec.dependencies = {
"nvim-treesitter/nvim-treesitter-context",
"nvim-treesitter/nvim-treesitter-textobjects",
"RRethy/nvim-treesitter-endwise",
}
@ -34,7 +35,45 @@ spec.config = function()
additional_vim_regex_highlighting = false,
},
endwise = { enable = true }
endwise = { enable = true },
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["am"] = { query = "@function.outer", desc = "Select outer function" },
["im"] = { query = "@function.inner", desc = "Select inner function" },
["ab"] = { query = "@block.outer", desc = "Select outer block" },
["ib"] = { query = "@block.inner", desc = "Select inner block" },
},
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]m"] = { query = "@function.outer", desc = "Go to start of next function" },
["]b"] = { query = "@block.outer", desc = "Go to start of next block" },
["]s"] = { query = "@class.outer", desc = "Go to start of next struct-like" },
},
goto_next_end = {
["]M"] = { query = "@function.outer", desc = "Go to end of next function" },
["]B"] = { query = "@block.outer", desc = "Go to end of next block" },
["]S"] = { query = "@class.outer", desc = "Go to end of next struct-like" },
},
goto_previous_start = {
["[m"] = { query = "@function.outer", desc = "Go to start of previous function" },
["[b"] = { query = "@block.outer", desc = "Go to start of previous block" },
["[s"] = { query = "@class.outer", desc = "Go to start of previous struct-like" },
},
goto_previous_end = {
["[M"] = { query = "@function.outer", desc = "Go to end of previous function" },
["[B"] = { query = "@block.outer", desc = "Go to end of previous block" },
["[S"] = { query = "@class.outer", desc = "Go to end of previous struct-like" },
},
},
},
})
require("treesitter-context").setup()