require("nvim-treesitter.configs").setup({ ensure_installed = { "bash", "dockerfile", "go", "gomod", "gosum", "html", "javascript", "typescript", "json", "lua", "make", "python", "ruby", "rust", "sql", "markdown", }, sync_install = true, auto_install = false, ignore_install = {}, highlight = { enable = true, disable = { "vim", "swift" }, additional_vim_regex_highlighting = true, }, incremental_selection = { enable = false, }, indent = { -- enabling breaks autoindent: enable = false, }, textobjects = { select = { enable = true, lookahead = true, keymaps = { ["ak"] = "@keyed_element.outer", ["iv"] = "@keyed_element.inner", ["av"] = "@keyed_element.inner", ["at"] = "@composite_literal", ["ia"] = "@parameter.inner", ["aa"] = "@parameter.outer", ["ac"] = "@comment.outer", ["as"] = "@statement.outer", ["ar"] = "@return", ["af"] = "@function.outer", ["if"] = "@function.inner", }, }, move = { enable = true, set_jumps = true, goto_next_start = { ["]a"] = "@parameter.inner", ["]f"] = "@function.outer", ["]F"] = "@function.inner", }, goto_previous_start = { ["[a"] = "@parameter.inner", ["[f"] = "@function.outer", ["[F"] = "@function.inner", }, }, lsp_interop = { enable = true, peek_definition_code = { ["d"] = "@class.outer", -- ["d"] = "@function.outer", }, }, }, refactor = { highlight_definitions = { enable = true }, highlight_current_scope = { enable = false }, smart_rename = { enable = true, keymaps = { smart_rename = "grr", }, }, navigation = { enable = true, keymaps = { -- goto_definition_lsp_fallback = "gd", goto_next_usage = "]r", goto_previous_usage = "[r", }, }, }, playground = { enable = true, disable = {}, updatetime = 25, persist_queries = false, keybindings = { toggle_query_editor = "o", toggle_hl_groups = "i", toggle_injected_languages = "t", toggle_anonymous_nodes = "a", toggle_language_display = "I", focus_language = "f", unfocus_language = "F", update = "R", goto_node = "", show_help = "?", }, }, }) require("treesitter-context").setup({ enable = true, })