LuaLS / LuaLS/lua-language-server
Better global recognizing for loadfile
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
In some cases you might need to make the plugin recognize a specific local variable as global, without declaring that variable as an actual global, one of these cases are using `load` and `loadfile` were you can pass an `env` variable that represents the chunk environment.
*mainFile.lua
```lua
local env = setmetatable(
{foo = function(a, b) return a == b end},
{__index = _G}
)
loadfile('./secondFile.lua', 't', env)
```
*secondFile.lua
```lua
foo(1, 2) -- Undefined global `foo` . Lua Diagnostics.(undefined-global)
```
So i would suggest better recognizing for `load`/`loadfile`/`loadstring` environment or/and a custom emmylua annotations `--- @global` that marks the local var as a global one.
Thanks in advance.
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
Comienza rastreando cómo el servidor de lenguaje informa del diagnóstico `undefined-global` y cómo gestiona los entornos de `load`, `loadfile` y `loadstring`. Compara ese comportamiento con el ejemplo `mainFile.lua` y `secondFile.lua`, y determina después si el reconocimiento del entorno o una anotación `@global` es el alcance previsto. Se considera terminado cuando el ejemplo ya no informa de `foo` como indefinido con el comportamiento elegido.
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
- 25/100