require("nvim-treesitter.configs").setup({ ensure_installed = { "bash", "cmake", "dockerfile", "go", "hcl", "html", "java", "javascript", "json", "kotlin", "latex", "ledger", "lua", "markdown", "python", "toml", "yaml", }, -- one of "all", "maintained" (parsers with maintainers), or a list of languages ignore_install = {}, -- List of parsers to ignore installing highlight = { enable = true, -- false will disable the whole extension disable = {}, -- list of language that will be disabled }, incremental_selection = { enable = true, keymaps = { init_selection = "", scope_incremental = "", node_incremental = "", node_decremental = "", }, }, endwise = { enable = true, }, indent = { enable = true }, autopairs = { enable = true }, textobjects = { select = { enable = true, -- Automatically jump forward to textobj, similar to targets.vim lookahead = true, keymaps = { -- You can use the capture groups defined in textobjects.scm ["af"] = "@function.outer", ["if"] = "@function.inner", ["ac"] = "@class.outer", ["ic"] = "@class.inner", ["al"] = "@loop.outer", ["il"] = "@loop.inner", ["ib"] = "@block.inner", ["ab"] = "@block.outer", ["ir"] = "@parameter.inner", ["ar"] = "@parameter.outer", }, }, }, rainbow = { enable = true, extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean max_file_lines = 2000, -- Do not enable for files with more than specified lines }, })