LuaLS / LuaLS/lua-language-server

@return支持多种类型

Offen
#1,583 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

两个方案,大佬参考:
方案一采用语法`@return ()|()|()`这种
```
---@return (string,number)|(nil, string)
local function foo()
do
return 'foo', 1 --正常
end
do
return nil, 'some error' --正常
end
do
return nil, 1 -- 此处出错
end
end
```
方案二,其实我觉得这种更直观,也便于书写
```
---@return string,number
---@return nil, string
local function foo()
do
return 'foo', 1 --正常
end
do
return nil, 'some error' --正常
end
do
return nil, 1 -- 此处出错
end
end
```
现在的设定,下面两种定义是等效的
```
---@return string,number
local function foo() end

---@return string
---@return number
local function foo() end
```
可见,通过逗号表达式,一条@return语句就可以表达多个值类型,多条连续的@return语法应该留给更重要的多返回类型语法!优雅,简洁!个人愚见,仅供参考

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das bestehende Parsen von @return und die Validierung des Rückgabetyps im Language Server zu überprüfen, und vergleiche anschließend beide vorgeschlagenen Syntaxvarianten mit den Beispielen im Issue. Als abgeschlossen gilt die Aufgabe, wenn eine vereinbarte Syntax mehrere alternative Rückgabesignaturen unterstützt und den im Beispiel gezeigten nicht passenden Rückgabewert ablehnt, mit Abdeckung des bestehenden durch Kommas getrennten Verhaltens.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.