diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-treesitter/configs.lua | 11 | ||||
| -rw-r--r-- | lua/nvim-treesitter/info.lua | 7 |
2 files changed, 12 insertions, 6 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index a31d7fd79..95b6ab986 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 diff --git a/lua/nvim-treesitter/info.lua b/lua/nvim-treesitter/info.lua index 1ba7620b9..ed5a90b8d 100644 --- a/lua/nvim-treesitter/info.lua +++ b/lua/nvim-treesitter/info.lua @@ -58,7 +58,7 @@ local function longest_string_length(list) return length end -local function append_module_table(curbuf, parserlist, namespace, modulelist) +local function append_module_table(curbuf, origbuf, parserlist, namespace, modulelist) local maxlen_parser = longest_string_length(parserlist) table.sort(modulelist) @@ -77,7 +77,7 @@ local function append_module_table(curbuf, parserlist, namespace, modulelist) for _, module in pairs(modulelist) do local modlen = #module module = namespace_prefix .. module - if configs.is_enabled(module, parser) then + if configs.is_enabled(module, parser, origbuf) then line = line .. "✓" else line = line .. "✗" @@ -91,6 +91,7 @@ local function append_module_table(curbuf, parserlist, namespace, modulelist) end local function print_info_modules(parserlist, module) + local origbuf = api.nvim_get_current_buf() api.nvim_command "enew" local curbuf = api.nvim_get_current_buf() @@ -109,7 +110,7 @@ local function print_info_modules(parserlist, module) table.sort(parserlist) for _, namespace in ipairs(namespaces) do - append_module_table(curbuf, parserlist, namespace, modules[namespace]) + append_module_table(curbuf, origbuf, parserlist, namespace, modules[namespace]) end api.nvim_buf_set_option(curbuf, "modified", false) |
