mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 11:06:54 -04:00
feat(install)!: generate from json instead of requiring node
Problem: Many parsers require node/npm to evaluate the `grammar.js` before being able to generate a parser from it. Solution: Generate from `grammar.json` instead, which is fully resolved. Drops `node` and `npm` as (optional) requirements for nvim-treesitter. Note that this requires parsers to commit the generated json iff the grammar requires evaluation (which is currently the case for all tracked languages).
This commit is contained in:
parent
8f8cf7144d
commit
5a38df5627
10 changed files with 502 additions and 484 deletions
|
|
@ -1,14 +1,28 @@
|
|||
#!/usr/bin/env -S nvim -l
|
||||
|
||||
local generate = false
|
||||
local parsers = {}
|
||||
for i = 1, #_G.arg do
|
||||
if _G.arg[i] == '--generate' then
|
||||
generate = true
|
||||
else
|
||||
parsers[#parsers + 1] = _G.arg[i]
|
||||
end
|
||||
end
|
||||
|
||||
vim.opt.runtimepath:append('.')
|
||||
|
||||
-- needed on CI
|
||||
vim.fn.mkdir(vim.fn.stdpath('cache'), 'p')
|
||||
|
||||
local done = false
|
||||
require('nvim-treesitter.install').install('all', {}, function()
|
||||
done = true
|
||||
end)
|
||||
require('nvim-treesitter.install').install(
|
||||
#parsers > 0 and parsers or 'all',
|
||||
{ force = true, generate = generate },
|
||||
function()
|
||||
done = true
|
||||
end
|
||||
)
|
||||
|
||||
vim.wait(6000000, function()
|
||||
return done
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ table.sort(sorted_parsers, function(a, b)
|
|||
end)
|
||||
|
||||
local generated_text = [[
|
||||
Language | Tier | Queries | CLI | NPM | Maintainer
|
||||
-------- |:----:|:-------:|:---:|:---:| ----------
|
||||
Language | Tier | Queries | CLI | Maintainer
|
||||
-------- |:----:|:-------:|:---:| ----------
|
||||
]]
|
||||
local footnotes = ''
|
||||
|
||||
|
|
@ -59,12 +59,7 @@ for _, v in ipairs(sorted_parsers) do
|
|||
|
||||
-- CLI
|
||||
generated_text = generated_text
|
||||
.. (p.install_info and p.install_info.requires_generate_from_grammar and '✓' or '')
|
||||
.. ' | '
|
||||
|
||||
-- NPM
|
||||
generated_text = generated_text
|
||||
.. (p.install_info and p.install_info.generate_requires_npm and '✓' or '')
|
||||
.. (p.install_info and p.install_info.generate and '✓' or '')
|
||||
.. ' | '
|
||||
|
||||
-- Maintainer
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue