LuaLS / LuaLS/lua-language-server

Feature for Lua 5.4 to warn about unused __close metamethods.

Abierto
#2,027 0 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

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

MacOS

What is the issue affecting?

Annotations

Expected Behaviour

I think it would make sense to be able to somehow annotate that a table with a __close metamethod is meant to be used as a local variable with lua 5.4's attribute. This would be useful for raii-like constructs.

Actual Behaviour

No warning.

Reproduction steps

Example:


local function get_resource()
  return 
    setmetatable({}, {
        __close = function ()
          print('close resource')
        end
    })
end


local a<close> = get_resource() -- ok

local b = get_resource() -- not okay, should somehow warn
Additional Notes

No response

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

Comienza con el comportamiento de en Lua 5.4 y la reproducción proporcionada de get_resource. Determina cómo representa el servidor de lenguaje las anotaciones y advertencias, y luego define una forma de identificar los recursos con __close que se asignan sin ; se considera terminado cuando el ejemplo muestra una advertencia para b y acepta a.

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.