LuaLS / LuaLS/lua-language-server

Feature request: Infer overload annotations for subsequent overloads

Offen
#2,309 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

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

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

Neue Issues direkt in Ihr Postfach

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