From a5cd2265c43e41b1854612e1982d98fa8409dd49 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Sat, 28 Feb 2026 10:09:20 +0100 Subject: [PATCH] fix(nvim-treesitter): fix install on startup --- lua/plugins/nvim-treesitter.lua | 42 ++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/lua/plugins/nvim-treesitter.lua b/lua/plugins/nvim-treesitter.lua index 6f4a4e5..769d810 100644 --- a/lua/plugins/nvim-treesitter.lua +++ b/lua/plugins/nvim-treesitter.lua @@ -23,7 +23,7 @@ local languages = { "markdown", "go", "svelte", - "scss", + { "scss", extra_ft = { "css" } }, "tsx", "typescript", } @@ -44,24 +44,32 @@ return { }, config = function() local ts = require("nvim-treesitter") - ts.install(languages):wait(300000) - - local filetypes = {} - for _, lang in ipairs(languages) do - for _, ft in ipairs(vim.treesitter.language.get_filetypes(lang)) do - if not vim.list_contains(filetypes, ft) then - table.insert(filetypes, ft) + ts.install(languages):await(function() + local filetypes = {} + for i, value in ipairs(languages) do + local lang = value + if type(value) == "table" then + lang = value[1] + for _, ft in ipairs(value.extra_ft) do + vim.treesitter.language.register(lang, ft) + end + filetypes[i] = lang + end + for _, ft in ipairs(vim.treesitter.language.get_filetypes(lang)) do + if not vim.list_contains(filetypes, ft) then + table.insert(filetypes, ft) + end end end - end - vim.api.nvim_create_autocmd("FileType", { - pattern = filetypes, - callback = function() - vim.treesitter.start() - vim.wo.foldmethod = "expr" - vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()" - end, - }) + vim.api.nvim_create_autocmd("FileType", { + pattern = filetypes, + callback = function() + vim.treesitter.start() + vim.wo.foldmethod = "expr" + vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()" + end, + }) + end) end, }