LuaLS / LuaLS/lua-language-server

Feature for Lua 5.4 to warn about unused __close metamethods.

Offen
#2,027 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Lua
Sterne
4.4k
Forks
442
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Lua-5.4-Verhalten von und der bereitgestellten get_resource-Reproduktion. Ermittle, wie der Sprachserver Annotationen und Warnungen darstellt, und definiere anschließend eine Möglichkeit, Ressourcen mit __close zu identifizieren, die ohne zugewiesen werden; als erledigt gilt die Aufgabe, wenn das Beispiel für b eine Warnung ausgibt und a akzeptiert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
lua
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.