return { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() require("nvim-treesitter.configs").setup({ ensure_installed = { "c", "lua", "python", "javascript", "markdown", "markdown_inline", "html", "css", "bash", "vim", "vimdoc" }, sync_install = false, auto_install = true, ignore_install = {}, highlight = { enable = true, additional_vim_regex_highlighting = false, disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end local filename = vim.api.nvim_buf_get_name(buf) if lang == "latex" or filename:match("%.bib$") then return true end return false end, }, indent = { enable = true, disable = { "tex", "bib", "markdown" }, }, incremental_selection = { enable = true, keymaps = { init_selection = "gnn", node_incremental = "grn", scope_incremental = "grc", node_decremental = "grm", }, }, }) -- Better folding setup vim.opt.foldmethod = "expr" vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" vim.opt.foldlevel = 20 vim.opt.foldenable = false end, }