diff options
author | Christian Clason <c.clason@uni-graz.at> | 2024-04-28 16:27:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-28 16:27:47 +0200 |
commit | 26b5405d181e8c9e75c4b4ec9aae963cc25f285f (patch) | |
tree | 94526234bb67a08a6d2708f05a7579cc3301773f /runtime/lua/vim/treesitter/languagetree.lua | |
parent | 4625394a767fab311f75ef40f4f15c661156e071 (diff) | |
download | rneovim-26b5405d181e8c9e75c4b4ec9aae963cc25f285f.tar.gz rneovim-26b5405d181e8c9e75c4b4ec9aae963cc25f285f.tar.bz2 rneovim-26b5405d181e8c9e75c4b4ec9aae963cc25f285f.zip |
fix(treesitter): enforce lowercase language names (#28546)
* fix(treesitter): enforce lowercase language names
Problem: On case-insensitive file systems (e.g., macOS), `has_parser`
will return `true` for uppercase aliases, which will then try to inject
the uppercase language unsuccessfully.
Solution: Enforce and assume parser names to be lowercase when
resolving language names.
Diffstat (limited to 'runtime/lua/vim/treesitter/languagetree.lua')
-rw-r--r-- | runtime/lua/vim/treesitter/languagetree.lua | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/runtime/lua/vim/treesitter/languagetree.lua b/runtime/lua/vim/treesitter/languagetree.lua index 990debc77b..e618f29f8f 100644 --- a/runtime/lua/vim/treesitter/languagetree.lua +++ b/runtime/lua/vim/treesitter/languagetree.lua @@ -758,7 +758,6 @@ local has_parser = vim.func._memoize(1, function(lang) end) --- Return parser name for language (if exists) or filetype (if registered and exists). ---- Also attempts with the input lower-cased. --- ---@param alias string language or filetype name ---@return string? # resolved parser name @@ -772,19 +771,10 @@ local function resolve_lang(alias) return alias end - if has_parser(alias:lower()) then - return alias:lower() - end - local lang = vim.treesitter.language.get_lang(alias) if lang and has_parser(lang) then return lang end - - lang = vim.treesitter.language.get_lang(alias:lower()) - if lang and has_parser(lang) then - return lang - end end ---@private @@ -808,7 +798,7 @@ function LanguageTree:_get_injection(match, metadata) -- Lang should override any other language tag if name == 'injection.language' then local text = vim.treesitter.get_node_text(node, self._source, { metadata = metadata[id] }) - lang = resolve_lang(text) + lang = resolve_lang(text:lower()) -- language names are always lower case elseif name == 'injection.filename' then local text = vim.treesitter.get_node_text(node, self._source, { metadata = metadata[id] }) local ft = vim.filetype.match({ filename = text }) |