return { { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", init = function() local parser_config = require("nvim-treesitter.parsers").get_parser_configs() parser_config.c3 = { install_info = { url = "https://github.com/c3lang/tree-sitter-c3", files = { "src/parser.c", "src/scanner.c" }, branch = "main", }, } end, dependencies = { { "nushell/tree-sitter-nu", build = ":TSUpdate nu" }, }, config = function() local configs = require("nvim-treesitter.configs") vim.filetype.add({ extension = { fsh = "glsl", vsh = "glsl", hbs = "html", c3 = "c3", c3i = "c3", c3t = "c3", }, }) vim.treesitter.language.register("html", "handlebars") vim.treesitter.language.register("glsl", { "vsh", "fsh" }) configs.setup({ ensure_installed = { -- web dev "html", "css", "scss", "javascript", "typescript", -- config "toml", "yaml", "markdown", "dockerfile", "nu", -- vim "vim", "vimdoc", "lua", "query", -- the cool stuff "elixir", "heex", "rust", "python", "zig", "nim", "bash", "hurl", -- the not so cool stuff "c", "java", "groovy", "glsl", "wgsl", }, sync_install = false, highlight = { enable = true }, indent = { enable = true }, }) end, }, }