LuaLS / LuaLS/lua-language-server
VSCode - Language Server Diagnostics Not Loading Default Libraries
還沒有人認領這個 Issue。
- 主要語言
- Lua
- 星號
- 4.4k
- 分支
- 442
- PR 合併指標
- 30 天內沒有已合併 PR
描述
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Diagnostics/Syntax Checking
Expected Behaviour
No errors on the following code:
Core = {
Shared = {
Functions = {}
}
}
---Makes a deep copy of a given object.
---Does NOT handle metatables or recursive tables.
---@param Obj any The object to be copied.
---@return any Cpy The copied object.
function Core.Shared.Functions.DeepCopy(Obj)
if Obj then
local Cpy = nil
if type(Obj) == "table" then
Cpy = {}
for K, V in pairs(Obj) do
Cpy[Core.Shared.Functions.DeepCopy(K)] = Core.Shared.Functions.DeepCopy(V)
end
else
Cpy = Obj
end
return Cpy
else
return nil
end
end
Actual Behaviour
Both the any annotation type, as well as both the type() and pairs() functions, display an error through the diagnostics. However, they are still seemingly recognized internally on all other fronts, as hovering works just fine on the functions, and the any annotation will be properly recognized for the type it is, displaying an error if missing a return and not displaying an error if all returns are present.
This only seems to affect the undefined-global and undefined-doc-name diagnostics. Other than that, I have no idea what caused this...
Reproduction steps
- Open VSCode.
- Ensure Sumneko's Lua extension is installed and enabled.
- Create a new lua file.
- Attempt to use any built-in functions or annotations. The error should appear.
Additional Notes
I have spent all 12 hours of my day today trying to figure this out. I'm tired, frustrated, and at a complete loss as to why this is even happening, especially considering it was working just fine as little as last week. My extension has been updated to the most recent version pretty much since the most recent version released.
I'm sure, absolutely positive that I messed something up. But I don't know what. I heard the use of system links can cause issues, but for one the only system links I have are junctions pointing to the install directory of VSCode. Beyond that, from briefly looking at the logs at least, it does not seem like the LS is even using my system links, electing instead to use the full path from my A drive instead of the shortened one on my C drive. Not to mention I've been using system links for well over a year now with absolutely zero issues.
All I did, and I swear all I did, was manually define Lua.workspace.library to an LLS-Addon. That's when the issues started happening. I tried restarting VSCode, restarting the language server, restarting my computer, even reinstalling the extension. Made sure it cleanly uninstalled and everything, even cleaned up my entire user data directory for VSCode for good measure. The issue was still there.
Again, I am sure, almost positive I just...changed a setting or something and forgot about it. But I've been through the configuration settings well over a dozen times at this point, and everything to even remotely do with diagnositics or libraries is at it's default setting.
Log File
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
先檢查隨附的 service.log 和 workspace.log,以及 Lua.workspace.library 設定,尤其是手動設定的 LLS-Addon。在新的 Lua 檔案中使用 type()、pairs() 和 any 註解重現問題;當內建函式和註解不再觸發 undefined-global 或 undefined-doc-name 診斷時,即表示完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- lua, vscode
- 領域
- tooling
- Issue 類型
- 缺陷
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 需要釐清
- 新手友好度
- 25/100