90 lines
2 KiB
Lua
90 lines
2 KiB
Lua
-- TODO install parsers declaratively instead of :TSInstall & :TSUpdate
|
|
|
|
require'nvim-treesitter.configs'.setup {
|
|
ensure_installed = 'all',
|
|
highlight = {
|
|
enable = true,
|
|
},
|
|
indent = {
|
|
enable = true,
|
|
-- TODO seems to be broken atm
|
|
disable = { "javascript", "javascriptreact", "typescript", "typescriptreact" },
|
|
},
|
|
autotag = {
|
|
enable = true,
|
|
},
|
|
context_commentstring = {
|
|
enable = true,
|
|
},
|
|
refactor = {
|
|
highlight_definitions = { enable = true },
|
|
highlight_current_scope = { enable = true },
|
|
smart_rename = {
|
|
enable = true,
|
|
keymaps = {
|
|
smart_rename = "grr",
|
|
},
|
|
},
|
|
navigation = {
|
|
enable = true,
|
|
keymaps = {
|
|
goto_definition_lsp_fallback = "gnd",
|
|
list_definitions = "gnD",
|
|
list_definitions_toc = "gO",
|
|
goto_next_usage = "<a-*>",
|
|
goto_previous_usage = "<a-#>",
|
|
},
|
|
},
|
|
},
|
|
incremental_selection = {
|
|
enable = true,
|
|
keymaps = {
|
|
init_selection = "<CR>",
|
|
scope_incremental = "<CR>",
|
|
node_incremental = "<TAB>",
|
|
node_decremental = "<S-TAB>",
|
|
},
|
|
},
|
|
textobjects = {
|
|
select = {
|
|
enable = true,
|
|
keymaps = {
|
|
["af"] = "@function.outer",
|
|
["if"] = "@function.inner",
|
|
["ac"] = "@class.outer",
|
|
["ic"] = "@class.inner",
|
|
["aa"] = "@parameter.outer",
|
|
["ia"] = "@parameter.inner",
|
|
},
|
|
},
|
|
swap = {
|
|
enable = true,
|
|
swap_next = {
|
|
["<C-l>"] = "@parameter.inner",
|
|
},
|
|
swap_previous = {
|
|
["<C-h>"] = "@parameter.inner",
|
|
},
|
|
},
|
|
move = {
|
|
enable = true,
|
|
goto_next_start = {
|
|
["]m"] = "@function.outer",
|
|
["]]"] = "@class.outer",
|
|
},
|
|
goto_next_end = {
|
|
["]M"] = "@function.outer",
|
|
["]["] = "@class.outer",
|
|
},
|
|
goto_previous_start = {
|
|
["[m"] = "@function.outer",
|
|
["[["] = "@class.outer",
|
|
},
|
|
goto_previous_end = {
|
|
["[M"] = "@function.outer",
|
|
["[]"] = "@class.outer",
|
|
},
|
|
},
|
|
},
|
|
}
|