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.
This commit is contained in:
Barrett Ruth 2026-02-22 16:14:10 -05:00 committed by GitHub
parent b4ab166c39
commit 7d410acaf1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 11 deletions

View file

@ -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

View file

@ -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"
}
}

View file

@ -1,4 +1,5 @@
std = 'vim'
exclude = [".direnv/*"]
[lints]
mixed_table = 'allow'