LuaLS / LuaLS/lua-language-server
@constraint Annotation for types/aliases
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
I was working with Annotations for documenting my code and wanted to add a warning if the user used a function that didn't fall under a specific pattern (`"0x%x%x%x%x%x%x%x%x"`) and tried finding a workaround. I'm not 100% fluent with .lua and don't have the confidence to PR, so take my idea instead.
My idea for the annotation would be as follows:
```lua
--- @constraint con_color (string.find(T , "^0x%x%x%x%x%x%x%x%x$") or string.find(T , "^%x%x%x%x%x%x$"))
--- @alias color string
--- @param col1 color
--- @param col2 color
local function set_col(col1, col2)
...
end
```
Obviously syntax could use work, but the basic idea would be to add a constraint, and have `T` or whatever variable name be the entry. This way you can give a warning to users about unsupported string or a number being too low/high being used. If there is already something like this please enlighten me as I couldn't find anything
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
Empieza revisando el manejo existente de anotaciones para @alias y @param en el servidor de lenguaje, ya que el issue no especifica archivos ni pruebas concretos. Determina cómo una sintaxis @constraint propuesta podría validar alias y generar advertencias, y define la sintaxis y el comportamiento esperado antes de la implementación; se considera terminado cuando las restricciones documentadas funcionan para el ejemplo de color y se diagnostican los valores no válidos.
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
- Necesita aclaración
- Aptitud para principiantes
- 25/100