diff options
Diffstat (limited to 'lua/nvim-treesitter/configs.lua')
| -rw-r--r-- | lua/nvim-treesitter/configs.lua | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index a31d7fd7..95b6ab98 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -335,8 +335,9 @@ M.commands = { } -- @param mod: module (string) --- @param ft: filetype (string) -function M.is_enabled(mod, lang) +-- @param lang: the language of the buffer (string) +-- @param bufnr: the bufnr (number) +function M.is_enabled(mod, lang, bufnr) if not parsers.list[lang] or not parsers.has_parser(lang) then return false end @@ -350,6 +351,10 @@ function M.is_enabled(mod, lang) return false end + if module_config.cond and not module_config.cond(lang, bufnr) then + return false + end + for _, parser in pairs(module_config.disable) do if lang == parser then return false @@ -445,7 +450,7 @@ function M.attach_module(mod_name, bufnr, lang) local lang = lang or parsers.get_buf_lang(bufnr) local resolved_mod = resolve_module(mod_name) - if resolved_mod and not attached_buffers_by_module.has(mod_name, bufnr) and M.is_enabled(mod_name, lang) then + if resolved_mod and not attached_buffers_by_module.has(mod_name, bufnr) and M.is_enabled(mod_name, lang, bufnr) then attached_buffers_by_module.set(mod_name, bufnr, true) resolved_mod.attach(bufnr, lang) end |
