feat(treesitter)!: add default fallback to ft_to_lang lookups

Problem: Language names are only registered for filetype<->language
lookups when parsers are actually loaded; this means users cannot rely
on `vim.treesitter.language.get_lang()` or `get_filetypes()` to return
the correct value when language and filetype coincide and always need to
add explicit fallbacks.

Solution: Always return the language name as valid filetype in
`get_filetypes()`, and default to the filetype in `get_lang()`. Document
this behavior.
This commit is contained in:
Christian Clason
2024-09-14 13:27:44 +02:00
parent e40314811e
commit 041d98fe8d
5 changed files with 31 additions and 17 deletions

View File

@@ -95,7 +95,7 @@ function M.get_parser(bufnr, lang, opts)
end
if not valid_lang(lang) then
lang = M.language.get_lang(vim.bo[bufnr].filetype) or vim.bo[bufnr].filetype
lang = M.language.get_lang(vim.bo[bufnr].filetype)
end
if not valid_lang(lang) then