diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/check-queries.lua | 25 | ||||
| -rwxr-xr-x | scripts/install-parsers.lua | 15 | ||||
| -rw-r--r-- | scripts/minimal_init.lua | 5 | ||||
| -rwxr-xr-x | scripts/pre-push | 10 | ||||
| -rwxr-xr-x | scripts/run_tests.sh | 2 | ||||
| -rwxr-xr-x | scripts/update-lockfile.lua (renamed from scripts/write-lockfile.lua) | 13 | ||||
| -rwxr-xr-x | scripts/update-lockfile.sh | 20 | ||||
| -rwxr-xr-x | scripts/update-readme.lua | 14 |
8 files changed, 45 insertions, 59 deletions
diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua index f5d6d463b..fd9d538ac 100755 --- a/scripts/check-queries.lua +++ b/scripts/check-queries.lua @@ -93,17 +93,20 @@ local ok, result = pcall(do_check) local allowed_to_fail = vim.split(vim.env.ALLOWED_INSTALLATION_FAILURES or '', ',', true) for k, v in pairs(require('nvim-treesitter.parsers').configs) do - if #vim.api.nvim_get_runtime_file('parser/' .. k .. '.*', false) == 0 then - -- On CI all parsers that can be installed from C files should be installed - if - vim.env.CI - and not v.install_info.requires_generate_from_grammar - and not vim.list_contains(allowed_to_fail, k) - then - io_print('Error: parser for ' .. k .. ' is not installed') - vim.cmd('cq') - else - io_print('Warning: parser for ' .. k .. ' is not installed') + if v.install_info then + -- skip "query only" languages + if #vim.api.nvim_get_runtime_file('parser/' .. k .. '.*', false) == 0 then + -- On CI all parsers that can be installed from C files should be installed + if + vim.env.CI + and not v.install_info.requires_generate_from_grammar + and not vim.list_contains(allowed_to_fail, k) + then + io_print('Error: parser for ' .. k .. ' is not installed') + vim.cmd('cq') + else + io_print('Warning: parser for ' .. k .. ' is not installed') + end end end end diff --git a/scripts/install-parsers.lua b/scripts/install-parsers.lua new file mode 100755 index 000000000..ab06e538f --- /dev/null +++ b/scripts/install-parsers.lua @@ -0,0 +1,15 @@ +#!/usr/bin/env -S nvim -l + +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) + +vim.wait(6000000, function() + return done +end) diff --git a/scripts/minimal_init.lua b/scripts/minimal_init.lua index c826ddbf2..2af5f8ecb 100644 --- a/scripts/minimal_init.lua +++ b/scripts/minimal_init.lua @@ -2,11 +2,12 @@ vim.opt.runtimepath:append('.') vim.cmd.runtime({ 'plugin/plenary.vim', bang = true }) vim.cmd.runtime({ 'plugin/nvim-treesitter.lua', bang = true }) vim.cmd.runtime({ 'plugin/query_predicates.lua', bang = true }) +vim.cmd.runtime({ 'plugin/filetypes.lua', bang = true }) vim.filetype.add({ extension = { conf = 'hocon', - cmm = 't32', + hurl = 'hurl', ncl = 'nickel', tig = 'tiger', w = 'wing', @@ -20,6 +21,6 @@ require('nvim-treesitter').setup() vim.api.nvim_create_autocmd('FileType', { callback = function(args) pcall(vim.treesitter.start) - vim.bo[args.buffer].indentexpr = 'v:lua.require"nvim-treesitter".indentexpr()' + vim.bo[args.buf].indentexpr = 'v:lua.require"nvim-treesitter".indentexpr()' end, }) diff --git a/scripts/pre-push b/scripts/pre-push deleted file mode 100755 index 8d425b3b6..000000000 --- a/scripts/pre-push +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -# Can be used as a pre-push hook -# Just symlink this file to .git/hooks/pre-push - -echo "Running linter..." -luacheck . - -echo "Checking formatting..." -stylua --check . diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index c6660a7f6..7ae6b22c5 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -4,7 +4,7 @@ HERE="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" cd $HERE/.. run() { - nvim --headless --noplugin -u scripts/minimal_init.lua \ + nvim --headless --noplugin -u scripts/minimal_init.lua \ -c "PlenaryBustedDirectory $1 { minimal_init = './scripts/minimal_init.lua' }" } diff --git a/scripts/write-lockfile.lua b/scripts/update-lockfile.lua index 0b1d0504e..dfd3e933f 100755 --- a/scripts/write-lockfile.lua +++ b/scripts/update-lockfile.lua @@ -1,18 +1,18 @@ #!/usr/bin/env -S nvim -l vim.opt.runtimepath:append('.') +local util = require('nvim-treesitter.util') -- Load previous lockfile local filename = require('nvim-treesitter.install').get_package_path('lockfile.json') -local lockfile = vim.json.decode(require('nvim-treesitter.util').read_file(filename)) +local lockfile = vim.json.decode(util.read_file(filename)) ---@type string? -local skip_lang_string = os.getenv('SKIP_LOCKFILE_UPDATE_FOR_LANGS') +local skip_lang_string = os.getenv('LOCKFILE_SKIP') local skip_langs = skip_lang_string and vim.split(skip_lang_string, ',') or {} vim.print('Skipping languages: ', skip_langs) local sorted_parsers = {} -local configs = require('nvim-treesitter.parsers').configs -for k, v in pairs(configs) do +for k, v in pairs(require('nvim-treesitter.parsers').configs) do table.insert(sorted_parsers, { name = k, parser = v }) end table.sort(sorted_parsers, function(a, b) @@ -42,7 +42,6 @@ for _, v in ipairs(sorted_parsers) do print('Skipping ' .. v.name) end end -vim.print(lockfile) --- write new lockfile -require('nvim-treesitter.util').write_file(filename, vim.json.encode(lockfile)) +lockfile = vim.fn.system('jq --sort-keys', vim.json.encode(lockfile)) +util.write_file(filename, lockfile) diff --git a/scripts/update-lockfile.sh b/scripts/update-lockfile.sh deleted file mode 100755 index d950b321a..000000000 --- a/scripts/update-lockfile.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -make_ignored() { - if [ -n "$1" ] - then - while read -r lang; do - if [ "$lang" != "$1" ] - then - printf "%s," "$lang" - fi - done < <(jq 'keys|@sh' -c lockfile.json) - fi -} - -TO_IGNORE=$(make_ignored $1) - -SKIP_LOCKFILE_UPDATE_FOR_LANGS="$TO_IGNORE" nvim -l ./scripts/write-lockfile.lua -# Pretty print -cp lockfile.json /tmp/lockfile.json -cat /tmp/lockfile.json | jq --sort-keys > lockfile.json diff --git a/scripts/update-readme.lua b/scripts/update-readme.lua index 9dd9f9183..ded0d6bcb 100755 --- a/scripts/update-readme.lua +++ b/scripts/update-readme.lua @@ -1,21 +1,19 @@ #!/usr/bin/env -S nvim -l vim.opt.runtimepath:append('.') - +local util = require('nvim-treesitter.util') +local parsers = require('nvim-treesitter.parsers') ---@class Parser ---@field name string ---@field parser ParserInfo -local parsers = require('nvim-treesitter.parsers').configs local sorted_parsers = {} -for k, v in pairs(parsers) do +for k, v in pairs(parsers.configs) do table.insert(sorted_parsers, { name = k, parser = v }) end table.sort(sorted_parsers, function(a, b) return a.name < b.name end) -local tiers = require('nvim-treesitter.parsers').tiers - local generated_text = [[ Language | Tier | Queries | CLI | NPM | Maintainer -------- |:----:|:-------:|:---:|:---:| ---------- @@ -38,7 +36,7 @@ for _, v in ipairs(sorted_parsers) do end -- tier - generated_text = generated_text .. (p.tier and tiers[p.tier] or '') .. ' | ' + generated_text = generated_text .. (p.tier and parsers.tiers[p.tier] or '') .. ' | ' -- queries generated_text = generated_text @@ -66,7 +64,7 @@ end generated_text = generated_text .. footnotes local readme = 'SUPPORTED_LANGUAGES.md' -local readme_text = require('nvim-treesitter.util').read_file(readme) +local readme_text = util.read_file(readme) local new_readme_text = string.gsub( readme_text, @@ -74,7 +72,7 @@ local new_readme_text = string.gsub( '<!--parserinfo-->\n' .. generated_text .. '<!--parserinfo-->' ) -require('nvim-treesitter.util').write_file(readme, new_readme_text) +util.write_file(readme, new_readme_text) if string.find(readme_text, generated_text, 1, true) then print(readme .. ' is up-to-date\n') |
