LuaLS / LuaLS/lua-language-server
Treat class field as special function (such as `type`)
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 4.4k
- Forks
- 442
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
In Factorio, all the API classes have a object_name field (not function!), which identifies their class name, much like type() does for base types. We're currently handling this with a plugin that rewrites this from obj.object_name to look like __object_name(obj) which is then tagged as
"Lua.runtime.special": {
"__object_name": "type"
},
, to get it to work properly in type-tests, but it would be nice to be able to indicate that a class field "acts like type" in this way directly.
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 Plugin-Rewrite von obj.object_name zu __object_name(obj) und das Mapping von Lua.runtime.special auf type zu überprüfen. Verfolge, wie type-Tests dieses Mapping verwenden, und überprüfe anschließend, dass eine direkte Klassenfeldd eklaration dasselbe Verhalten ohne das Rewrite beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100