Skip to content

lua-language-server --check Fails to Detect Issues in v3.8.0+ #2749

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jeffzi opened this issue Jul 9, 2024 · 2 comments
Closed

lua-language-server --check Fails to Detect Issues in v3.8.0+ #2749

jeffzi opened this issue Jul 9, 2024 · 2 comments

Comments

@jeffzi
Copy link

jeffzi commented Jul 9, 2024

How are you using the lua-language-server?

Command Line

Which OS are you using?

MacOS

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour

The --check command should detect and report issues in the code.

Actual Behaviour

Since v3.8.0, the --check command completes without finding any issues, even when there are known problems.

Reproduction steps

  1. Create test.lua with content:
f() -- in vs-code, undefined-global is detected
  1. Run
lua-language-server --check test.lua

Returns Diagnosis completed, no problems found

I'm expecting a diagnosis with code undefined-global

In 3.7.4, I get
Diagnosis complete, 1 problems found, see /opt/homebrew/Cellar/lua-language-server/3.7.4/libexec/log/check.json

Additional Notes

I'm using lua-language-server in the command line in the context of CI.
Thank you for maintaining lua-language-server. Your work is much appreciated!

Log File

[11:39:48.950][info] [#0:/opt/homebrew/Cellar/lua-language-server/3.9.3/libexec/main.lua:68]: Lua Lsp startup, root: /opt/homebrew/Cellar/lua-language-server/3.9.3/libexec
[11:39:48.951][info] [#0:/opt/homebrew/Cellar/lua-language-server/3.9.3/libexec/main.lua:69]: ROOT: /opt/homebrew/Cellar/lua-language-server/3.9.3/libexec
[11:39:48.951][info] [#0:/opt/homebrew/Cellar/lua-language-server/3.9.3/libexec/main.lua:70]: LOGPATH: /tmp/lls_issue
[11:39:48.951][info] [#0:/opt/homebrew/Cellar/lua-language-server/3.9.3/libexec/main.lua:71]: METAPATH: /Users/jeffzi/.cache/lua-language-server/meta
[11:39:48.951][info] [#0:/opt/homebrew/Cellar/lua-language-server/3.9.3/libexec/main.lua:72]: VERSION:
[11:39:48.982][info] [#0:script/language.lua:137]: VSC language: nil
[11:39:48.982][info] [#0:script/language.lua:138]: LS language: en-us
[11:39:48.982][info] [#0:script/client.lua:657]: Client init {
rootUri = "file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua"
}
[11:39:48.982][info] [#0:script/language.lua:137]: VSC language: nil
[11:39:48.982][info] [#0:script/language.lua:138]: LS language: en-us
[11:39:48.982][info] [#0:script/workspace/workspace.lua:38]: Workspace init root: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:48.982][info] [#0:script/workspace/workspace.lua:42]: Log path: /tmp/lls_issue/file_Users_jeffzi_Projects_personal_lua_llscheck_test.lua.log
[11:39:48.982][info] [#0:script/workspace/workspace.lua:48]: Workspace create: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:48.983][info] [#0:script/provider/provider.lua:36]: Load config from specified /Users/jeffzi/Projects/personal/lua/llscheck/.luarc.json
[11:39:48.983][info] [#0:script/provider/provider.lua:37]: {
["$schema"] = "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
indent_size = "3",
indent_style = "space",
["runtime.version"] = "Lua 5.1",
["workspace.checkThirdParty"] = false,
["workspace.ignoreDir"] = { ".vscode" },
["workspace.library"] = {}
}
[11:39:48.984][info] [#0:script/provider/provider.lua:36]: Load config from specified /Users/jeffzi/Projects/personal/lua/llscheck/.luarc.json
[11:39:48.984][info] [#0:script/provider/provider.lua:37]: {
["$schema"] = "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
indent_size = "3",
indent_style = "space",
["runtime.version"] = "Lua 5.1",
["workspace.checkThirdParty"] = false,
["workspace.ignoreDir"] = { ".vscode" },
["workspace.library"] = {}
}
[11:39:48.984][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:39:48.984][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:39:48.984][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:39:48.984][info] [#0:script/provider/provider.lua:61]: Load config from client fallback
[11:39:48.984][info] [#0:script/provider/provider.lua:62]: nil
[11:39:48.984][warn] [#0:script/config/loader.lua:116]: No config? nil
[11:39:48.984][info] [#0:script/provider/provider.lua:61]: Load config from client fallback
[11:39:48.984][info] [#0:script/provider/provider.lua:62]: nil
[11:39:48.984][info] [#0:script/library.lua:212]: Init builtin library at: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.000][info] [#0:script/library.lua:212]: Init builtin library at: nil
[11:39:49.006][info] [#0:script/workspace/workspace.lua:324]: Preload start: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.006][info] [#0:script/workspace/workspace.lua:330]: Scan files at: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua
[11:39:49.007][info] [#0:script/workspace/workspace.lua:324]: Preload start:
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:353]: Scan library at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua
[11:39:49.008][info] [#0:script/workspace/workspace.lua:379]: Found 11 files at: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.008][info] [#0:script/workspace/loading.lua:161]: Load files from disk: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.008][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua , size = 6.309 KB
[11:39:49.011][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua
[11:39:49.011][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua , size = 2.541 KB
[11:39:49.012][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua
[11:39:49.012][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua , size = 2.699 KB
[11:39:49.013][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua
[11:39:49.013][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua , size = 5.507 KB
[11:39:49.015][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua
[11:39:49.015][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua , size = 6.691 KB
[11:39:49.017][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua
[11:39:49.017][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua , size = 14.849 KB
[11:39:49.022][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua
[11:39:49.022][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua , size = 6.230 KB
[11:39:49.023][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua
[11:39:49.023][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua , size = 0.302 KB
[11:39:49.024][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua
[11:39:49.024][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua , size = 7.911 KB
[11:39:49.027][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua
[11:39:49.027][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua , size = 4.235 KB
[11:39:49.028][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua
[11:39:49.028][info] [#0:script/workspace/loading.lua:101]: Preload file at: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua , size = 0.004 KB
[11:39:49.029][info] [#0:script/workspace/loading.lua:173]: Loaded files takes [0.020] sec: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.029][info] [#0:script/workspace/loading.lua:182]: Compile files takes [0.000] sec: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.029][info] [#0:script/workspace/loading.lua:183]: Loaded finish: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.029][info] [#0:script/workspace/workspace.lua:381]: Preload finish at: file:///Users/jeffzi/Projects/personal/lua/llscheck/test.lua
[11:39:49.030][info] [#0:script/workspace/workspace.lua:379]: Found 10 files at:
[11:39:49.030][info] [#0:script/workspace/loading.lua:161]: Load files from disk:
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/io.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/coroutine.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/package.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/os.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/debug.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/basic.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/string.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/builtin.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/math.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:89]: Skip loaded file: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:113]: ++++As library of: file:///Users/jeffzi/.cache/lua-language-server/meta/Lua%205.1%20en-us%20utf8/table.lua
[11:39:49.030][info] [#0:script/workspace/loading.lua:173]: Loaded files takes [0.000] sec:
[11:39:49.030][info] [#0:script/workspace/loading.lua:182]: Compile files takes [0.000] sec:
[11:39:49.030][info] [#0:script/workspace/loading.lua:183]: Loaded finish:
[11:39:49.030][info] [#0:script/workspace/workspace.lua:381]: Preload finish at:

@tomlau10
Copy link
Contributor

tomlau10 commented Jul 9, 2024

For the --check argument, you need to provide the workspace directory, NOT the file.
i.e. your cmd should be something like this lua-language-server --check=. (which means the current directory)

I haven't used LuaLS <= v3.8, so I cannot judge why it works before by using the file as argument instead of the directory. Maybe it gets changed in some version between. 😕


My team has been using LuaLS in CI recently, and our cmd looks like the following, just as a reference:

${LUALS_PATH}/bin/lua-language-server --check=. --num_threads=2 --checklevel=Error

@jeffzi
Copy link
Author

jeffzi commented Jul 9, 2024

Thanks @tomlau10, passing a workspace directory works perfectly! 🚀

By the way, I’ve created a light tool on top of lua-language-server --check to generate human-friendly reports instead of JSON. It also returns an exit code greater than 0 when issues are detected, making it suitable for CI tools to recognize failures. Additionally, it includes pre-commit support.

If you're interested, you can check it out here: llscheck

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants