/
alkis
/
nvim
Обзор
Документация
Войти
/
alkis
/
nvim
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
lua/plugins/nvim-treesitter-textobjects.lua
86 строк
3 KB
avkis
Last changes
30 июн 2025, 06:49
30 июн 2025, 06:49
dce13aa
Код
Авторство
О чём код?
return { "nvim-treesitter/nvim-treesitter-textobjects", dependencies = { "nvim-treesitter/nvim-treesitter", }, init = function() local config = require("nvim-treesitter.configs") config.setup({ textobjects = { select = { enable = true, -- Automatically jump forward to textobj, similar to targets.vim lookahead = true, keymaps = { -- You can use the capture groups defined in textobjects.scm ["af"] = "@function.outer", ["if"] = "@function.inner", ["ac"] = "@class.outer", ["ao"] = "@comme.outer", -- You can optionally set descriptions to the mappings (used in the desc parameter of -- nvim_buf_set_keymap) which plugins like which-key display ["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" }, -- You can also use captures from other query groups like `locals.scm` ["as"] = { query = "@local.scope", query_group = "locals", desc = "Select language scope" }, ["ai"] = { query = "@conditional.outer", desc = "around an if statement" }, ["ii"] = { query = "@conditional.inner", desc = "inner part of an if statement" }, ["al"] = { query = "@loop.outer", desc = "around a loop" }, ["il"] = { query = "@loop.inner", desc = "inner part of a loop" }, ["ap"] = { query = "@parameter.outer", desc = "around parameter" }, ["ip"] = { query = "@parameter.inner", desc = "inside a parameter" }, }, -- You can choose the select mode (default is charwise 'v') -- -- Can also be a function which gets passed a table with the keys -- * query_string: eg '@function.inner' -- * method: eg 'v' or 'o' -- and should return the mode ('v', 'V', or '<c-v>') or a table -- mapping query_strings to modes. selection_modes = { ["@parameter.outer"] = "v", -- charwise ["@parameter.inner"] = "v", -- charwise ["@function.outer"] = "v", -- linewise ["@conditional.outer"] = "V", -- linewise ["@loop.outer"] = "V", -- linewise ["@class.outer"] = "<c-v>", -- blockwise }, -- If you set this to `true` (default is `false`) then any textobject is -- extended to include preceding or succeeding whitespace. Succeeding -- whitespace has priority in order to act similarly to eg the built-in -- `ap`. -- -- Can also be a function which gets passed a table with the keys -- * query_string: eg '@function.inner' -- * selection_mode: eg 'v' -- and should return true or false include_surrounding_whitespace = true, }, move = { enable = true, set_jumps = true, -- whether to set jumps in the jumplist goto_previous_start = { ["[f"] = { query = "@function.outer", desc = "Previous function" }, ["[c"] = { query = "@class.outer", desc = "Previous class" }, ["[p"] = { query = "@parameter.inner", desc = "Previous parameter" }, }, goto_next_start = { ["]f"] = { query = "@function.outer", desc = "Next function" }, ["]c"] = { query = "@class.outer", desc = "Next class" }, ["]p"] = { query = "@parameter.inner", desc = "Next parameter" }, }, }, swap = { enable = true, swap_next = { ["<leader>a"] = { query = "@parameter.inner", desc = "Swap with next parameter" }, }, swap_previous = { ["<leader>A"] = "@parameter.inner", }, }, }, }) end, }