LuaLS / LuaLS/lua-language-server
@return支持多种类型
Dieses Issue hat noch niemand übernommen.
- 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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