table.contains = function(self, string) for _, v in pairs(self) do if v == string then return true end end return false end return { 'nvim-treesitter/nvim-treesitter', disable = vim.version.lt(vim.version(), { 0, 9, 2 }), config = function() vim.cmd("TSUpdate") end, function() require('nvim-treesitter.configs').setup { -- good default parsers ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown", "markdown_inline", "java", "bash", "css", "html", "luadoc" }, -- install missing parsers auto_install = true, -- indentation indent = { enable = true, disable = function(lang, buf) -- disable indenting in php (it's more broken with than without) return table.contains({ "php" }, lang) end }, -- enable highlighting highlight = { enable = true, -- use vim highlighting in addition to treesitter additional_vim_regex_highlighting = true, disable = function(lang, buf) -- disable in diff files local langs = { "diff" } if table.contains(langs, lang) then return true end -- disable in big files local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > (1024 * 100 * 10) --[[1MB]] then return true end end } } end }