1
0
Fork 0
mirror of https://github.com/pnx/dotfiles synced 2026-06-16 03:14:55 +02:00

nvim: treesitter: enable textobjects.

This commit is contained in:
Henrik Hautakoski 2024-10-14 16:09:03 +02:00
parent d3a4a487a1
commit 3708aa2f65

View file

@ -4,7 +4,7 @@ return {
require("nvim-treesitter.install").update({ with_sync = true })
end,
dependencies = {
-- "nvim-treesitter/nvim-treesitter-textobjects",
"nvim-treesitter/nvim-treesitter-textobjects",
{
"windwp/nvim-ts-autotag",
opts = {}
@ -38,6 +38,57 @@ return {
indent = {
enable = true,
},
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
-- Functions/Methods
["af"] = { query = "@function.outer", desc = "outer function"},
["if"] = { query = "@function.inner", desc = "inner function"},
-- Class
["ac"] = { query = "@class.outer", desc = "around class" },
["ic"] = { query = "@class.inner", desc = "inner class" },
-- Parameters/arguments
["av"] = { query = "@parameter.outer", desc = "around parameter" },
["iv"] = { query = "@parameter.inner", desc = "inner parameter" },
}
},
swap = {
enable = true,
swap_next = {
["<leader>]"] = { query = "@parameter.inner", desc = "Swap next parameter with the one under cursor"},
},
swap_previous = {
["<leader>["] = { query = "@parameter.inner", desc = "Swap previous parameter with the one under cursor"},
},
},
move = {
enable = true,
set_jumps = true,
goto_next_start = {
["]f"] = { query = "@function.outer", desc = "Goto the beginning of the next function" },
["]c"] = { query = "@class.outer", desc = "Goto the beginning of the next class" },
["]v"] = { query = "@parameter.inner", desc = "Goto the beginning of the next parameter" },
},
goto_next_end = {
["]F"] = { query = "@function.outer", desc = "Goto the end of the next function" },
["]C"] = { query = "@class.outer", desc = "Goto the end of the next class" },
["]V"] = { query = "@parameter.inner", desc = "Goto the end of the next parameter" },
},
goto_previous_start = {
["[f"] = { query = "@function.outer", desc = "Goto the beginning of the previous function" },
["[c"] = { query = "@class.outer", desc = "Goto the beginning of the previous class" },
["[v"] = { query = "@parameter.inner", desc = "Goto the beginning of the previous parameter" },
},
goto_previous_end = {
["[F"] = { query = "@function.outer", desc = "Goto the end of the previous function" },
["[C"] = { query = "@class.outer", desc = "Goto the end of the previous class" },
["[V"] = { query = "@parameter.inner", desc = "Goto the end of the previous parameter" },
},
}
}
},
config = function(_, opts)
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()