summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2022-04-29 15:38:11 +0200
committerMinijackson <minijackson@riseup.net>2022-04-29 15:38:11 +0200
commitb4e79ef41191dae5aa59c8426b6d89e7fbd49026 (patch)
treec6f69e498539145c0e4fb03c927dbe3e125aafef
parenteda49abf9ccc164c2e722b93fea0fd6d358d126e (diff)
downloadnixos-config-reborn-b4e79ef41191dae5aa59c8426b6d89e7fbd49026.tar.gz
nixos-config-reborn-b4e79ef41191dae5aa59c8426b6d89e7fbd49026.zip
vim: add TS refactor, better TS keymaps
-rw-r--r--common/vim.nix1
-rw-r--r--dotfiles/vim.lua63
2 files changed, 57 insertions, 7 deletions
diff --git a/common/vim.nix b/common/vim.nix
index 7b76bf9..d571cae 100644
--- a/common/vim.nix
+++ b/common/vim.nix
@@ -99,6 +99,7 @@ let
99 (nvim-treesitter.withPlugins (_: tree-sitter.allGrammars)) 99 (nvim-treesitter.withPlugins (_: tree-sitter.allGrammars))
100 nvim-treesitter-textobjects 100 nvim-treesitter-textobjects
101 nvim-treesitter-context 101 nvim-treesitter-context
102 nvim-treesitter-refactor
102 103
103 vim-matchup 104 vim-matchup
104 105
diff --git a/dotfiles/vim.lua b/dotfiles/vim.lua
index 2b97a53..0b11fb6 100644
--- a/dotfiles/vim.lua
+++ b/dotfiles/vim.lua
@@ -129,15 +129,17 @@ require('nvim-treesitter.configs').setup {
129 matchup = { 129 matchup = {
130 enable = true, 130 enable = true,
131 }, 131 },
132 refactor = {
133 highlight_current_scope = { enable = true },
134 highlight_definitions = { enable = true },
135 },
132 textobjects = { 136 textobjects = {
133 select = { 137 lsp_interop = {
134 enable = true, 138 enable = true,
135 keymaps = { 139 border = 'none',
136 -- You can use the capture groups defined in textobjects.scm 140 peek_definition_code = {
137 ["af"] = "@function.outer", 141 ["<leader>df"] = "@function.outer",
138 ["if"] = "@function.inner", 142 ["<leader>dF"] = "@class.outer",
139 ["ac"] = "@class.outer",
140 ["ic"] = "@class.inner",
141 }, 143 },
142 }, 144 },
143 145
@@ -160,12 +162,59 @@ require('nvim-treesitter.configs').setup {
160 ["[]"] = "@class.outer", 162 ["[]"] = "@class.outer",
161 }, 163 },
162 }, 164 },
165
166 select = {
167 enable = true,
168 keymaps = {
169 -- You can use the capture groups defined in textobjects.scm
170 ["af"] = "@function.outer",
171 ["if"] = "@function.inner",
172
173 ["aF"] = "@call.outer",
174 ["iF"] = "@call.inner",
175
176 ["ac"] = "@class.outer",
177 ["ic"] = "@class.inner",
178
179 ["aC"] = "@comment.outer",
180 ["iC"] = "@comment.inner",
181
182 ["ab"] = "@block.outer",
183 ["ib"] = "@block.inner",
184
185 ["aa"] = "@parameter.outer",
186 ["ia"] = "@parameter.inner",
187 },
188 },
189
190 swap = {
191 enable = true,
192 swap_next = {
193 ["<leader>a"] = "@parameter.inner",
194 },
195 swap_previous = {
196 ["<leader>A"] = "@parameter.inner",
197 },
198 },
163 }, 199 },
164} 200}
165 201
166vim.o.foldmethod = 'expr' 202vim.o.foldmethod = 'expr'
167vim.o.foldexpr = 'nvim_treesitter#foldexpr()' 203vim.o.foldexpr = 'nvim_treesitter#foldexpr()'
168 204
205
206vim.api.nvim_set_hl(0, "TSCurrentScope", {
207 bg = vim.g.current_gruvbox_colors.dark0_soft[1],
208})
209
210vim.api.nvim_set_hl(0, "TSDefinition", {
211 bg = vim.g.current_gruvbox_colors.faded_blue[1],
212})
213
214vim.api.nvim_set_hl(0, "TSDefinitionUsage", {
215 bg = vim.g.current_gruvbox_colors.faded_aqua[1],
216})
217
169-- nvim-cmp 218-- nvim-cmp
170 219
171local cmp = require("cmp") 220local cmp = require("cmp")