LuaLS / LuaLS/lua-language-server
[Suggestion] Add ability to define an enum without using a table
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### 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?
Annotations, Type Checking, Completion
### Suggestion
For existing codebases where enums are defined like this:
```
OPERATING_SYSTEM_WINDOWS = 1
OPERATING_SYSTEM_MAC = 2
KEY_A = 1
KEY_B = 2
```
it would be nice to be able to define all lines that follow (until the next blank line) as part of an enum without changing anything by introducing a table: i.e.
```
@enum OPERATING_SYSTEM
OPERATING_SYSTEM_WINDOWS = 1
OPERATING_SYSTEM_MAC = 2
@enum KEY
KEY_A = 1
KEY_B = 2
```
This would be convenient for type annotating when the values are passed as parameters and what-not. I'm not able to find any existing ways to designate these values as a "group" (or union) that maintains their use as global constants.
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, die Einstiegspunkte für Annotationen, Typprüfung und Vervollständigung zu lokalisieren, die globale Konstanten verarbeiten. Vergleiche die vorgeschlagenen @enum-Blöcke mit der vorhandenen Annotierungssyntax und bestimme, wie die Enum-Zugehörigkeit die Parametertypisierung beeinflussen sollte, während die Verwendung globaler Konstanten erhalten bleibt. Als abgeschlossen gilt die Aufgabe, wenn aufeinanderfolgende Konstanten bis zu einer Leerzeile gruppiert und von Annotationen, Typprüfung und Vervollständigung konsistent erkannt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100