diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-treesitter/languagetree.lua | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lua/nvim-treesitter/languagetree.lua b/lua/nvim-treesitter/languagetree.lua index fe8828154..31de88f8b 100644 --- a/lua/nvim-treesitter/languagetree.lua +++ b/lua/nvim-treesitter/languagetree.lua @@ -116,15 +116,22 @@ function LanguageTree:update() local seen = {} -- Update each child accordingly + -- TODO(vigoux): for now avoid languages that include themselves, will + -- be fixed when managing our own parsers for lang, ranges in pairs(injections) do - if not self.children[lang] then - self.children[lang] = LanguageTree.new(self.parser.bufnr, lang, true) - end - if self.children[lang] then - self.children[lang].parser:set_included_ranges(ranges) - self.children[lang]:update() - seen[lang] = true + if lang ~= self.parser.lang then + + if not self.children[lang] then + vim.api.nvim_err_writeln("Creating node for language " .. lang) + self.children[lang] = LanguageTree.new(self.parser.bufnr, lang, true) + end + + if self.children[lang] then + self.children[lang].parser:set_included_ranges(ranges) + self.children[lang]:update() + seen[lang] = true + end end end |
