return { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', config = function() require('nvim-treesitter.install').compilers = {'clang'} require('nvim-treesitter.configs').setup({ ensure_installed = 'all', highlight = { enable = true, additional_vim_regex_highlighting = false }, rainbow = { enable = true, extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean max_file_lines = nil, -- Do not enable for files with more than n lines, int -- colors = {}, -- table of hex strings -- termcolors = {} -- table of colour name strings }, indent = { enable = false -- maybe buggy }, 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', }, }, lsp_interop = { enable = true, border = 'none', peek_definition_code = { ['df'] = '@function.outer', ['dF'] = '@class.outer', }, }, }, }) local parser = require('nvim-treesitter.parsers').filetype_to_parsername parser.groovy = 'java' -- the someft filetype will use the python parser and queries. require('nvim-treesitter.install').prefer_git = true end }