LuaLS / LuaLS/lua-language-server

Error "Undefined field" on _G if global is declared by Lua.diagnostics.globals

Abierto
#2,064 2 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement
Lenguaje dominante
Lua
Estrellas
4.4k
Forks
442
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Linux

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour
local extract0 = bit32 and bit32.extract -- Lua 5.2/Lua 5.3 in compatibility mode
local extract = _G.bit32 and _G.bit32.extract -- Lua 5.2/Lua 5.3 in compatibility mode

Expected: No error

Actual Behaviour

Error on 2nd line:

(global) _G.bit32: unknown
Undefined field bit32.Lua Diagnostics.(undefined-field)

Reproduction steps
  1. Add 'bit32' to globals;
  2. Errors on 1st line disappeared; but errors on 2nd line persists.
Additional Notes

sumneko.lua-3.6.18-linux-x64

Real global variables does not trigger errors. Only Lua.diagnostics.globals items lead to errors.

Additional question: how to mute errors for this pattern?

if _G.bit then -- LuaJIT
    local shl, shr, band = _G.bit.lshift, _G.bit.rshift, _G.bit.band
...
end

@diagnostic disable: mute too much, but @diagnostic disable-line: mute too little.

Log File

No response

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

Reproduce el problema de diagnóstico en la extensión de Visual Studio Code usando Lua.diagnostics.globals con bit32, comparando el acceso directo con el acceso mediante _G.bit32. Rastrea el procesamiento de diagnósticos para los globals configurados; el trabajo está terminado cuando _G.bit32 ya no informa de un campo indefinido, mientras que los diagnósticos de campos indefinidos no relacionados y el comportamiento de supresión a nivel de línea permanecen intactos.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
lua
Área
devtools
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.