-- 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, }, 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 = "", goto_previous_usage = "", }, }, }, incremental_selection = { enable = true, keymaps = { init_selection = "", scope_incremental = "", node_incremental = "", node_decremental = "", }, }, 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 = { [""] = "@parameter.inner", }, swap_previous = { [""] = "@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", }, }, }, }