From d011532d737449dde60afe1cba37d57d9bea7c69 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 1 Aug 2022 22:28:36 +0200 Subject: fix: warn when user uninstalls parser than is in their ensure_installed Fixes #2777 --- lua/nvim-treesitter/configs.lua | 5 +++++ lua/nvim-treesitter/install.lua | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'lua') diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index b720bdfd3..04099d32a 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -401,6 +401,7 @@ function M.setup(user_data) end config.modules.ensure_installed = nil + config.ensure_installed = ensure_installed recurse_modules(function(_, _, new_path) local data = utils.get_at_path(config.modules, new_path) @@ -578,4 +579,8 @@ function M.get_ignored_parser_installs() return config.ignore_install or {} end +function M.get_ensure_installed_parsers() + return config.ensure_installed or {} +end + return M diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 8e2e81468..271220db7 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -489,6 +489,16 @@ function M.uninstall(...) return api.nvim_err_writeln(err) end + if vim.tbl_contains(configs.get_ensure_installed_parsers(), lang) then + vim.notify( + "Uninstalling " + .. lang + .. '. But the parser is still configured in "ensure_installed" setting of nvim-treesitter.' + .. " Please consider updating your config!", + vim.log.levels.ERROR + ) + end + local parser_lib = utils.join_path(install_dir, lang) .. ".so" local all_parsers = vim.api.nvim_get_runtime_file("parser/" .. lang .. ".so", true) if vim.fn.filereadable(parser_lib) == 1 then -- cgit v1.2.3-70-g09d2