diff options
| author | kiyan42 <yazdani.kiyan@protonmail.com> | 2020-06-29 14:46:25 +0200 |
|---|---|---|
| committer | Thomas Vigouroux <39092278+vigoux@users.noreply.github.com> | 2020-06-29 17:18:22 +0200 |
| commit | 7f6f7596dac5a45ae914336dc986ebb30881b1a3 (patch) | |
| tree | 4570e65eca2f5ad56261fcff992f17336b2b5604 /lua/nvim-treesitter/configs.lua | |
| parent | a2f09312540822e9c579fee4534832fefd492250 (diff) | |
add used_by key to parsers
Enables the use of multiple filetypes for one parser.
Diffstat (limited to 'lua/nvim-treesitter/configs.lua')
| -rw-r--r-- | lua/nvim-treesitter/configs.lua | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index f542e260..13eb9367 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -49,9 +49,10 @@ end local function enable_mod_conf_autocmd(mod, lang) if not config.modules[mod] or M.is_enabled(mod, lang) then return end - local ft = parsers.lang_to_ft(lang) local cmd = string.format("lua require'nvim-treesitter.%s'.attach()", mod) - api.nvim_command(string.format("autocmd FileType %s %s", ft, cmd)) + for _, ft in pairs(parsers.lang_to_ft(lang)) do + api.nvim_command(string.format("autocmd NvimTreesitter FileType %s %s", ft, cmd)) + end for i, parser in pairs(config.modules[mod].disable) do if parser == lang then table.remove(config.modules[mod].disable, i) @@ -65,7 +66,7 @@ local function enable_all(mod, lang) for _, bufnr in pairs(api.nvim_list_bufs()) do local ft = api.nvim_buf_get_option(bufnr, 'ft') - if not lang or ft == parsers.lang_to_ft(lang) then + if not lang or parsers.lang_match_ft(lang, ft) then enable_module(mod, bufnr, lang) end end @@ -101,15 +102,18 @@ end local function disable_mod_conf_autocmd(mod, lang) if not config.modules[mod] or not M.is_enabled(mod, lang) then return end - local ft = parsers.lang_to_ft(lang) - api.nvim_command(string.format("autocmd! FileType %s", ft)) + local cmd = string.format("lua require'nvim-treesitter.%s'.attach()", mod) + -- TODO(kyazdani): detach the correct autocmd... doesn't work when using %s, cmd + for _, ft in pairs(parsers.lang_to_ft(lang)) do + api.nvim_command(string.format("autocmd! NvimTreesitter FileType %s", ft)) + end table.insert(config.modules[mod].disable, lang) end local function disable_all(mod, lang) for _, bufnr in pairs(api.nvim_list_bufs()) do local ft = api.nvim_buf_get_option(bufnr, 'ft') - if not lang or ft == parsers.lang_to_ft(lang) then + if not lang or parsers.lang_match_ft(lang, ft) then disable_module(mod, bufnr, lang) end end |
