From f489b4b0a337379973d6801805aa9b7800d2e6e8 Mon Sep 17 00:00:00 2001 From: kiyan42 Date: Sat, 25 Apr 2020 16:11:53 +0200 Subject: fix: config is enabled also checks parser existence --- lua/nvim-treesitter.lua | 3 +-- lua/nvim-treesitter/configs.lua | 12 +++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lua/nvim-treesitter.lua b/lua/nvim-treesitter.lua index 731f55e5d..e1c95ed31 100644 --- a/lua/nvim-treesitter.lua +++ b/lua/nvim-treesitter.lua @@ -1,5 +1,4 @@ local api = vim.api -local parsers = require'nvim-treesitter.parsers' local install = require'nvim-treesitter.install' local locals = require'nvim-treesitter.locals' local utils = require'nvim-treesitter.utils' @@ -17,7 +16,7 @@ function M.setup(lang) for _, ft in pairs(configs.available_parsers()) do for _, mod in pairs(configs.available_modules()) do - if parsers.has_parser(ft) and configs.is_enabled(mod, ft) then + if configs.is_enabled(mod, ft) then local cmd = string.format("lua require'nvim-treesitter.%s'.attach()", mod) api.nvim_command(string.format("autocmd FileType %s %s", ft, cmd)) end diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index c9450ed61..64d4170e2 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -206,7 +206,9 @@ local function enable_all(mod, ft) end end if ft then - enable_mod_conf_autocmd(mod, ft) + if parser_utils.has_parser(ft) then + enable_mod_conf_autocmd(mod, ft) + end else for _, ft in pairs(M.available_parsers()) do if parser_utils.has_parser(ft) then @@ -245,9 +247,7 @@ local function disable_all(mod, ft) disable_mod_conf_autocmd(mod, ft) else for _, ft in pairs(M.available_parsers()) do - if parser_utils.has_parser(ft) then - disable_mod_conf_autocmd(mod, ft) - end + disable_mod_conf_autocmd(mod, ft) end config[mod].enable = false end @@ -291,7 +291,9 @@ M.commands = { -- @param mod: module (string) -- @param ft: filetype (string) function M.is_enabled(mod, ft) - if not M.get_parser_configs()[ft] then return false end + if not M.get_parser_configs()[ft] or not parser_utils.has_parser(ft) then + return false + end local module_config = M.get_config()[mod] if not module_config then return false end -- cgit v1.2.3-70-g09d2