plugins: Add nvim-treesitter-refactor
[vimconf.git] / init.vim
index 8392c284ebc30fc9ea2739352523d0318d321fdb..e16c816ab01c0e34e04225ee80ac74f6200eb2e3 100644 (file)
--- a/init.vim
+++ b/init.vim
@@ -346,6 +346,7 @@ if $USER != "root" && g:lowendbox == 0
           \ ]
 
     if has('nvim-0.5')
+        set foldexpr=nvim_treesitter#foldexpr()
 lua <<EOF
         require'nvim-treesitter.configs'.setup {
             -- one of "all", "maintained" (parsers with maintainers), or a list of languages
@@ -357,16 +358,45 @@ lua <<EOF
               enable = true,
               disabled = {}
             },
-            incremental_selection = {
+            indent = {
               enable = true
             },
+            incremental_selection = {
+              enable = true,
+              keymaps = {
+                init_selection = "gnn",
+                node_incremental = "grn",
+                scope_incremental = "grc",
+                node_decremental = "grm",
+              },
+            },
             textobjects = {
               enable = true
-            }
+            },
+            refactor = {
+                highlight_definitions = {
+                    enable = true
+                },
+                smart_rename = {
+                    enable = true,
+                    keymaps = {
+                        smart_rename = "grr",
+                        },
+                    },
+                navigation = {
+                    enable = true,
+                    keymaps = {
+                        goto_definition = "gnd",
+                        list_definitions = "gnD",
+                        list_definitions_toc = "gO",
+                        goto_next_usage = "<a-*>",
+                        goto_previous_usage = "<a-#>",
+                    },
+                },
+            },
         }
 EOF
     endif
-
 endif