feat(nvim): add ts-textobjects

This commit is contained in:
Price Hiller 2023-09-01 13:52:41 -05:00
parent 46f293d155
commit 3a68104516
Signed by: Price
SSH Key Fingerprint: SHA256:Y4S9ZzYphRn1W1kbJerJFO6GGsfu9O70VaBSxJO7dF8

View File

@ -121,6 +121,7 @@ return {
config = true,
},
"JoosepAlviste/nvim-ts-context-commentstring",
"nvim-treesitter/nvim-treesitter-textobjects",
},
config = function()
local treesitter_dir = vim.fn.stdpath("data") .. "/treesitter"
@ -177,6 +178,59 @@ return {
context_commentstring = {
enable = true,
},
textobjects = {
select = {
enable = true,
lookahead = true,
disable = function(lang, bufnr)
local mode = vim.fn.mode()
if mode == "c" then
return true
end
end,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["ib"] = "@block.inner",
["ab"] = "@block.outer",
["as"] = { query = "@scope", query_group = "locals", desc = "Select language scope" },
},
},
move = {
enable = true,
disable = function(lang, bufnr)
local mode = vim.fn.mode()
if mode == "c" then
return true
end
end,
set_jumps = true,
goto_next_start = {
["]fs"] = "@function.outer",
["]cs"] = "@class.outer",
["]bs"] = "@block.outer",
},
goto_next_end = {
["]fe"] = "@function.outer",
["]ce"] = "@class.outer",
["]be"] = "@block.outer",
},
goto_previous_start = {
["[fs"] = "@function.outer",
["[cs"] = "@class.outer",
["[bs"] = "@block.outer",
},
goto_previous_end = {
["[fe"] = "@function.outer",
["[ce"] = "@class.outer",
["[bs"] = "@block.outer",
},
},
include_surrounding_whitespace = true,
},
})
end,
},