From a5ec91088d8262a670de0833598734cb0bc23175 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 26 Feb 2022 19:28:15 +0100 Subject: [PATCH] home: vim: add 'treesitter-textobjects' --- home/vim/default.nix | 1 + home/vim/plugin/settings/tree-sitter.vim | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/home/vim/default.nix b/home/vim/default.nix index a15ad6a..bb7bdec 100644 --- a/home/vim/default.nix +++ b/home/vim/default.nix @@ -67,6 +67,7 @@ in lsp_lines-nvim # Show diagnostics *over* regions null-ls-nvim # LSP integration for linters and formatters (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) # Better highlighting + nvim-treesitter-textobjects # More textobjects plenary-nvim # 'null-ls' dependency # UX improvements diff --git a/home/vim/plugin/settings/tree-sitter.vim b/home/vim/plugin/settings/tree-sitter.vim index 8df22b0..10c22b1 100644 --- a/home/vim/plugin/settings/tree-sitter.vim +++ b/home/vim/plugin/settings/tree-sitter.vim @@ -9,5 +9,23 @@ ts_config.setup({ indent = { enable = true, }, + textobjects = { + select = { + enable = true, + -- Jump to matching text objects + lookahead = true, + keymaps = { + ["aa"] = "@parameter.outer", + ["ia"] = "@parameter.inner", + ["ab"] = "@block.outer", + ["ib"] = "@block.inner", + ["ac"] = "@class.outer", + ["ic"] = "@class.inner", + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ak"] = "@comment.outer", + }, + }, + }, }) EOF