LuaLS / LuaLS/lua-language-server
[Feature Request] @mixin - @class specific syntax to define applied mixins
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Lua
- Estrellas
- 4.4k
- Forks
- 442
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
What
A way to indicate that the members of a @class type are applied to a subject @class outside of the inheritance chain
Technical
@mixin type, ...
Adds the values of type, ... to the subject class' definition. Mixins are applied in the order they are specified; values of the same key are overwrote as each mixin is processed
Example
This:
---@class Mixin1
---@field foo number
---@field bar number
---@class Mixin2
---@field bar string
---@field baz string
---@class Subject
---@field key boolean
---@field foo boolean
---@mixin Mixin1, Mixin2
Would get interpreted as
---@class Subject
---@field key boolean (defined by field; wasn't altered by mixins)
---@field foo number (defined by field, overwrote by mixin1, not overwrite by mixin2)
---@field bar string (defined by mixin1, overwrite by mixin2)
---@field baz string (defined by mixin2)
Use case
I currently have sub-classes that get assigned valves from reusable dictionary tables outside their inheritance chain. The only way to document those modifications is to statically define the fields each time a mixin is applied
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
No se especifican archivos ni pruebas. Empieza rastreando cómo el language server analiza las anotaciones @class existentes y la herencia; después, determina dónde encajarían la aplicación ordenada de @mixin y la sobrescritura de campos. Se considera terminado cuando la sintaxis se analiza con las reglas de precedencia indicadas y está cubierta por pruebas para múltiples mixins y colisiones.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua
- Área
- devtools
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100