[Backport release-0.7] fix(treesitter): create new parser if language is not the same as cached parser (#18220)

* fix(treesitter): create new parser if language is not the same as cached parser

Fixes #18148

(cherry picked from commit 8e35894fc2)

* test: create new parser in vim.treesitter.get_parser() when filetype changes

(cherry picked from commit 30e7b3f0a2)

Co-authored-by: Chinmay Dalal <dalal.chinmay.0101@gmail.com>
This commit is contained in:
github-actions[bot]
2022-04-22 16:47:00 +02:00
committed by GitHub
parent 7f8faac39e
commit f7e2ad7915
2 changed files with 12 additions and 1 deletions

View File

@@ -90,7 +90,7 @@ function M.get_parser(bufnr, lang, opts)
lang = a.nvim_buf_get_option(bufnr, "filetype")
end
if parsers[bufnr] == nil then
if parsers[bufnr] == nil or parsers[bufnr]:lang() ~= lang then
parsers[bufnr] = M._create_parser(bufnr, lang, opts)
end