From c42c38a8346dd9edda96477b774d3e086cd73650 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Tue, 14 Jul 2020 16:17:00 +0200 Subject: Add workflow for checking query files --- .github/workflows/check_query_files.yml | 30 ++++++++++++++++++++++++++++++ scripts/check-queries.lua | 25 +++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 .github/workflows/check_query_files.yml create mode 100755 scripts/check-queries.lua diff --git a/.github/workflows/check_query_files.yml b/.github/workflows/check_query_files.yml new file mode 100644 index 000000000..45019dab6 --- /dev/null +++ b/.github/workflows/check_query_files.yml @@ -0,0 +1,30 @@ +name: Check loading of syntax files + +on: [push, pull_request] + +jobs: + luacheck: + name: Check Query Files + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + + - name: Prepare + run: | + sudo apt-get update + sudo add-apt-repository universe + wget https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage + chmod u+x nvim.appimage + mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start + ln -s $(pwd) ~/.local/share/nvim/site/pack/nvim-treesitter/start + + - name: Compile parsers + run: ./nvim.appimage --headless -c "TSInstallSync all" -c "q" + + - name: Check query files + run: ./nvim.appimage --headless -c "luafile ./scripts/check-queries.lua" -c "q" + + - uses: actions/upload-artifact@v2 + with: + name: parsers + path: parser/* diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua new file mode 100755 index 000000000..c5baf6f24 --- /dev/null +++ b/scripts/check-queries.lua @@ -0,0 +1,25 @@ +-- Execute as `nvim --headless -c "luafile ./scripts/check-queries.lua"` +local function do_check() + local parsers = require 'nvim-treesitter.parsers'.available_parsers() + local queries = require 'nvim-treesitter.query' + local query_types = {'highlights', 'locals'} + + for _, lang in pairs(parsers) do + for _, query_type in pairs(query_types) do + print('Checking '..lang..' '..query_type) + queries.get_query(lang, query_type) + end + end +end + + +local ok, err = pcall(do_check) +if ok then + print('Check successful!\n') + vim.cmd('q') +else + print('Check failed:') + print(err) + print('\n') + vim.cmd('cq') +end -- cgit v1.2.3-70-g09d2