name: Check loading of syntax files

on:
  pull_request:
  schedule:
    - cron: '0 0 * * *' # every day at midnight

jobs:
  luacheck:
    name: Check Query Files
    runs-on: ubuntu-latest
    env:
      NVIM_TAG: stable
      APPIMAGE: nvim-linux-x86_64.appimage
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3

      - name: Install tree-sitter CLI
        run: npm i -g tree-sitter-cli

      - name: Prepare
        env:
          NVIM_TAG: stable
          APPIMAGE: nvim-linux-x86_64.appimage
        run: |
          sudo apt-get update && sudo apt-get install libfuse2
          sudo add-apt-repository universe
          wget https://github.com/neovim/neovim/releases/download/${NVIM_TAG}/${APPIMAGE}
          chmod u+x ${APPIMAGE}
          mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter-textobject/start
          ln -s $(pwd) ~/.local/share/nvim/site/pack/nvim-treesitter-textobject/start
          mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start
          cd ~/.local/share/nvim/site/pack/nvim-treesitter/start
          git clone https://github.com/nvim-treesitter/nvim-treesitter.git

      - name: Compile parsers
        run: ./${APPIMAGE} --headless -c "TSInstallSync all" -c "q"

      - name: Check query files
        run: ./${APPIMAGE} --headless -c "luafile ./scripts/check-queries.lua" -c "q"
