Merge upstream: Auto install treesitter parsers when opening a file

This commit is contained in:
Damjan 9000 2026-04-03 19:27:45 +02:00
commit 450a5c6ab6

View File

@ -37,7 +37,18 @@ return {
local language = vim.treesitter.language.get_lang(filetype)
if not language then return end
treesitter_try_attach(buf, language)
local installed_parsers = require('nvim-treesitter').get_installed 'parsers'
if vim.tbl_contains(installed_parsers, language) then
-- enable the parser if it is installed
treesitter_try_attach(buf, language)
elseif vim.tbl_contains(available_parsers, language) then
-- if a parser is available in `nvim-treesitter` auto install it, and enable it after the installation is done
require('nvim-treesitter').install(language):await(function() treesitter_try_attach(buf, language) end)
else
-- try to enable treesitter features in case the parser exists but is not available from `nvim-treesitter`
treesitter_try_attach(buf, language)
end
end,
})
end,