summaryrefslogtreecommitdiff
path: root/lua/nvim-treesitter/configs.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-treesitter/configs.lua')
-rw-r--r--lua/nvim-treesitter/configs.lua11
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