add treesitterr-textobjects plugin
This commit is contained in:
parent
69b19abf8e
commit
4aaf17eddf
1 changed files with 68 additions and 0 deletions
68
lua/plugin/treesitter-textobjects.lua
Normal file
68
lua/plugin/treesitter-textobjects.lua
Normal file
|
@ -0,0 +1,68 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {
|
||||
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",
|
||||
["ap"] = "@parameter.outer",
|
||||
["ip"] = "@parameter.inner",
|
||||
["ac"] = "@comment.outer",
|
||||
["aS"] = "@statement.outer",
|
||||
["ae"] = "@block.outer",
|
||||
["al"] = "@loop.outer",
|
||||
["il"] = "@loop.inner",
|
||||
["ar"] = "@return.outer",
|
||||
["ir"] = "@return.inner",
|
||||
["ia"] = "@assignment.rhs",
|
||||
["aa"] = "@assignment.inner",
|
||||
["i?"] = "@conditional.inner",
|
||||
["a?"] = "@conditional.outer",
|
||||
["in"] = "@number.inner",
|
||||
["iC"] = "@class.inner",
|
||||
["aC"] = "@class.outer",
|
||||
["ig"] = "@call.inner",
|
||||
["ag"] = "@call.outer",
|
||||
|
||||
-- You can also use captures from other query groups like `locals.scm`
|
||||
["as"] = { query = "@scope", query_group = "locals", desc = "Select language scope" },
|
||||
},
|
||||
-- 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
|
||||
['@function.outer'] = 'V', -- linewise
|
||||
},
|
||||
-- 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 = false,
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("nvim-treesitter.configs").setup(opts)
|
||||
end,
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue