nvim/lua/plugins/treesitter-textobjects.lua
2026-01-05 22:03:03 +01:00

41 lines
1.3 KiB
Lua

return {
"nvim-treesitter/nvim-treesitter-textobjects",
branch = "master",
dependencies = {
"nvim-treesitter/nvim-treesitter"
},
init = function()
local config = require 'nvim-treesitter.configs';
config.setup({
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ao"] = "@comment.outer",
["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" },
["as"] = { query = "@local.scope", query_group = "locals", desc = "Select language scope" },
},
selection_modes = {
['@parameter.outer'] = 'v', -- charwise
['@function.outer'] = 'V', -- linewise
['@class.outer'] = '<c-v>', -- blockwise
},
include_surrounding_whitespace = true,
},
swap = {
enable = true,
swap_next = {
["<leader>Ca"] = { query = "@parameter.inner", desc = "Swap with next parameter" },
},
swap_previous = {
["<leader>CA"] = "@parameter.inner",
},
},
},
});
end
}