LuaLS / LuaLS/lua-language-server

VSCode - Language Server Diagnostics Not Loading Default Libraries

オープン
#3,145 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
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:

```Lua
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

1. Open VSCode.
2. Ensure Sumneko's Lua extension is installed and enabled.
3. Create a new lua file.
4. 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

[service.log](https://github.com/user-attachments/files/19528644/service.log)

[workspace.log](https://github.com/user-attachments/files/19528650/workspace.log)

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、添付された service.log と workspace.log を Lua.workspace.library 設定と併せて確認します。特に、手動で設定された LLS-Addon を確認してください。type()、pairs()、および any アノテーションを使用して新しい Lua ファイルで問題を再現します。組み込み関数とアノテーションによって undefined-global または undefined-doc-name の診断が発生しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
lua, vscode
領域
tooling
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。