From e01e1eb8f8f6b37bad005d770046174a7918cc78 Mon Sep 17 00:00:00 2001 From: Ori Perry Date: Fri, 20 Mar 2026 22:02:36 +0200 Subject: [PATCH] Auto install treesitter parsers when opening a file closes #1951 --- init.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 239dbad6..cacc5b7b 100644 --- a/init.lua +++ b/init.lua @@ -903,7 +903,18 @@ require('lazy').setup({ 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,