summaryrefslogtreecommitdiff
path: root/init.vim
diff options
context:
space:
mode:
Diffstat (limited to 'init.vim')
-rw-r--r--init.vim68
1 files changed, 68 insertions, 0 deletions
diff --git a/init.vim b/init.vim
index 30fff1f..8f8a867 100644
--- a/init.vim
+++ b/init.vim
@@ -306,6 +306,74 @@ lua << EOF
vim.cmd("startinsert")
end
+ require'nvim-treesitter.configs'.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
+ ["am"] = "@function.outer",
+ ["im"] = "@function.inner",
+ ["af"] = "@function.outer",
+ ["if"] = "@function.inner",
+ ["aC"] = "@class.outer",
+ ["aa"] = "@parameter.outer",
+ ["ia"] = "@parameter.inner",
+ ["iq"] = "@block.inner",
+ ["aq"] = "@block.outer",
+ ["aS"] = "@statement.outer",
+ ["iS"] = "@statement.inner",
+ -- 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 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
+ ['@function.inner'] = '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 of false
+ include_surrounding_whitespace = function (q)
+ return string.match(q.query_string, '.inner$') == nil and
+ string.match(q.query_string, '^function')
+ end,
+ },
+ move = {
+ enable = true,
+ set_jumps = true,
+ goto_next_start = {
+ ["]C"] = "@injectable_constructor.params.inner",
+ ["]c"] = "@class.outer",
+ },
+ goto_previous_start = {
+ ["[C"] = "@injectable_constructor.params.inner",
+ ["[c"] = "@class.outer",
+ },
+ },
+ },
+ }
+
+
+
function remove_package(str)
for k, v in pairs(package.loaded) do
if string.match(k, "^" .. str) then