From 7d410acaf129a86c9fdde328f039395b701b05fa Mon Sep 17 00:00:00 2001 From: Barrett Ruth <62671086+barrettruth@users.noreply.github.com> Date: Sun, 22 Feb 2026 16:14:10 -0500 Subject: [PATCH] fix(ci): switch typecheck action to stevearc/nvim-typecheck-action (#26) Problem: mrcjkb/lua-typecheck-action runs lua-language-server in a bare nix sandbox without neovim installed, causing 71 type errors for all vim.* and uv.* types. LuaLS 3.17.x also introduced stricter type checking that flags uv.aliases.fs_types mismatches not present in 3.16.4. The .luarc.json workspace.library entries conflicted with the action's auto-appended luvit-meta, producing duplicate uv type unions. Solution: switch to stevearc/nvim-typecheck-action@v2 (matching upstream), pin LuaLS to 3.16.4, convert .luarc.json to nested format without workspace.library (let the action provide VIMRUNTIME and luvit-meta), and add .direnv/* to selene.toml exclude for local use. --- .github/workflows/quality.yaml | 8 +++----- .luarc.json | 19 +++++++++++++------ selene.toml | 1 + 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/quality.yaml b/.github/workflows/quality.yaml index 9691be9..3bf8b57 100644 --- a/.github/workflows/quality.yaml +++ b/.github/workflows/quality.yaml @@ -62,12 +62,10 @@ jobs: if: ${{ needs.changes.outputs.lua == 'true' }} steps: - uses: actions/checkout@v4 - - name: Run Lua LS Type Check - uses: mrcjkb/lua-typecheck-action@v0 + - uses: stevearc/nvim-typecheck-action@v2 with: - checklevel: Warning - directories: lua - configpath: .luarc.json + path: lua + luals-version: 3.16.4 markdown-format: name: Markdown Format Check diff --git a/.luarc.json b/.luarc.json index f22884c..c0448ca 100644 --- a/.luarc.json +++ b/.luarc.json @@ -1,8 +1,15 @@ { - "runtime.version": "Lua 5.1", - "runtime.path": ["lua/?.lua", "lua/?/init.lua"], - "diagnostics.globals": ["vim", "jit", "bit"], - "workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"], - "workspace.checkThirdParty": false, - "completion.callSnippet": "Replace" + "runtime": { + "version": "LuaJIT", + "pathStrict": true + }, + "workspace": { + "checkThirdParty": false + }, + "type": { + "checkTableShape": true + }, + "completion": { + "callSnippet": "Replace" + } } diff --git a/selene.toml b/selene.toml index ab57300..4fbd4a4 100644 --- a/selene.toml +++ b/selene.toml @@ -1,4 +1,5 @@ std = 'vim' +exclude = [".direnv/*"] [lints] mixed_table = 'allow'