mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-17 19:00:02 -04:00
fix: expand tiers in ignore_install
This commit is contained in:
parent
49dd75859f
commit
ba05f949b8
1 changed files with 17 additions and 13 deletions
|
|
@ -91,14 +91,12 @@ end
|
||||||
function M.norm_languages(languages, skip)
|
function M.norm_languages(languages, skip)
|
||||||
if not languages then
|
if not languages then
|
||||||
return {}
|
return {}
|
||||||
end
|
elseif type(languages) == 'string' then
|
||||||
local parsers = require('nvim-treesitter.parsers')
|
|
||||||
|
|
||||||
-- Turn into table
|
|
||||||
if type(languages) == 'string' then
|
|
||||||
languages = { languages }
|
languages = { languages }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local parsers = require('nvim-treesitter.parsers')
|
||||||
|
|
||||||
if vim.list_contains(languages, 'all') then
|
if vim.list_contains(languages, 'all') then
|
||||||
if skip and skip.missing then
|
if skip and skip.missing then
|
||||||
return M.installed_parsers()
|
return M.installed_parsers()
|
||||||
|
|
@ -107,18 +105,24 @@ function M.norm_languages(languages, skip)
|
||||||
end
|
end
|
||||||
--TODO(clason): skip and warn on unavailable parser
|
--TODO(clason): skip and warn on unavailable parser
|
||||||
|
|
||||||
for i, tier in ipairs(parsers.tiers) do
|
-- keep local to avoid leaking parsers module
|
||||||
if vim.list_contains(languages, tier) then
|
local function expand_tiers(list)
|
||||||
languages = vim.iter.filter(function(l)
|
for i, tier in ipairs(parsers.tiers) do
|
||||||
return l ~= tier
|
if vim.list_contains(list, tier) then
|
||||||
end, languages) --[[@as string[] ]]
|
list = vim.iter.filter(function(l)
|
||||||
vim.list_extend(languages, parsers.get_available(i))
|
return l ~= tier
|
||||||
|
end, list) --[[@as string[] ]]
|
||||||
|
vim.list_extend(list, parsers.get_available(i))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return list
|
||||||
end
|
end
|
||||||
|
|
||||||
--TODO(clason): support skipping tiers
|
languages = expand_tiers(languages)
|
||||||
|
|
||||||
if skip and skip.ignored then
|
if skip and skip.ignored then
|
||||||
local ignored = config.ignore_install
|
local ignored = expand_tiers(config.ignore_install)
|
||||||
languages = vim.iter.filter(function(v)
|
languages = vim.iter.filter(function(v)
|
||||||
return not vim.list_contains(ignored, v)
|
return not vim.list_contains(ignored, v)
|
||||||
end, languages) --[[@as string[] ]]
|
end, languages) --[[@as string[] ]]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue