LuaLS / LuaLS/lua-language-server
Feature request: Infer overload annotations for subsequent overloads
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
It would be useful for subsequent function overload definitions to use prior annotations unless a new annotation is provided.
Such as:
---An example function
---@param a integer
---@param b string
---@param c function Some documentation about c
---@return boolean
---@overload fun(c)
---@overload fun(a): nil
function foo(a, b, c) end
being equivalent to
---An example function
---@param a integer
---@param b string
---@param c function Some documentation about c
---@return boolean
function foo(a, b, c) end
---An example function
---@param c function Some documentation about c
---@return boolean
function foo(c)
---An example function
---@param a integer
---@return nil
function foo(a)
With auto-generated documentation this isn't so much of a problem, but it's a bit of a chore when it's something to be done by hand.
Appreciate all the work you've done! This makes writing Lua so much more confident.
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
In der Issue werden keine Dateien oder Tests genannt. Beginne damit, die Verarbeitung von @overload sowie von Parameter-/Rückgabeannotationen zu lokalisieren, und füge anschließend eine gezielte Abdeckung dafür hinzu, dass vorherige Annotationen übernommen und überschrieben werden, wenn ein Overload neue bereitstellt. Fertig ist die Änderung, wenn die beiden Overloads im Beispiel die dokumentierten übernommenen und expliziten Annotationen erhalten, ohne die ursprüngliche Definition zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100