LuaLS / LuaLS/lua-language-server

Request: Support `@field` in both enum and table definitions.

Abierto
#2,960 8 comentarios 0 reacciones 0 asignados Ver en GitHub

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

Request: Allow adding a field type to tables and enum definitions using the @field annotation.

This is useful for generating meta files from C code where there is no Lua table literal to copy.

See current behaviour below:

@class

✅ Using @field
---@class Foo
---@field myField 5
Foo = {}
✅ Using literal code
---@class Foo
Foo = {
  myField = 5,
}
✅ Using type annotation
---@class Foo
Foo = {
  ---@type 5
  myField = nil,
}

@enum

❌ Using field
---@enum Foo
---@field myField 5
Foo = {}

Error: The field must be defined after the class.Lua Diagnostics.(doc-field-no-class)

✅ Using literal code
---@enum Foo
Foo = {
  myField = 5,
}
✅ Using type annotation
---@enum Foo
Foo = {
  ---@type 5
  myField = nil,
}

Untyped table

❌ Using field
---@field myField 5
Foo = {}

Error: The field must be defined after the class.Lua Diagnostics.(doc-field-no-class)

✅ Using literal code
Foo = {
  myField = 5,
}
✅ Using type annotation
Foo = {
  ---@type 5
  myField = nil,
}

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza siguiendo el manejo de @field asociado al diagnóstico doc-field-no-class; el issue proporciona ejemplos de Lua para @class, @enum y tablas sin tipo. Se considera terminado cuando las definiciones de @field funcionan para definiciones de enum y de tablas como en los ejemplos sin ese diagnóstico, mientras se mantiene la compatibilidad con el comportamiento existente de las clases.

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
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.