return { { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() local ts = require("nvim-treesitter") vim.filetype.add({ extension = { fsh = "glsl", vsh = "glsl", hbs = "html", }, }) ts.install({ -- web dev "html", "css", "scss", "javascript", "typescript", "svelte", -- config "toml", "yaml", "markdown", "dockerfile", "just", -- vim "vim", "vimdoc", "lua", "query", -- the cool stuff "elixir", "heex", "rust", "python", "zig", "nim", "clojure", "gleam", "bash", "hurl", "gdscript", -- the not so cool stuff "c", "java", "groovy", "glsl", "wgsl", }) vim.api.nvim_create_autocmd("FileType", { pattern = { "" }, callback = function() vim.treesitter.start() end, }) vim.wo[0][0].foldexpr = "v:lua.vim.treesitter.foldexpr()" vim.wo[0][0].foldmethod = "expr" vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" end, }, }