mirror of
https://github.com/neovim/neovim.git
synced 2026-01-06 19:39:53 +10:00
fix(treesitter): don't trample parsers when filetype!=lang
This allows vim.treesitter.show_tree() to work on buffers where the filetype does not match the parser language name e.g, bash/sh.
This commit is contained in:
@@ -96,11 +96,13 @@ function M.get_parser(bufnr, lang, opts)
|
||||
if bufnr == nil or bufnr == 0 then
|
||||
bufnr = a.nvim_get_current_buf()
|
||||
end
|
||||
if lang == nil then
|
||||
lang = a.nvim_buf_get_option(bufnr, 'filetype')
|
||||
end
|
||||
|
||||
if parsers[bufnr] == nil or parsers[bufnr]:lang() ~= lang then
|
||||
if parsers[bufnr] == nil then
|
||||
lang = lang or a.nvim_buf_get_option(bufnr, 'filetype')
|
||||
parsers[bufnr] = M._create_parser(bufnr, lang, opts)
|
||||
elseif lang and parsers[bufnr]:lang() ~= lang then
|
||||
-- Only try to create a new parser if lang is provided
|
||||
-- and it doesn't match the stored parser
|
||||
parsers[bufnr] = M._create_parser(bufnr, lang, opts)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user