LuaLS / LuaLS/lua-language-server

Undefined global: vim, hs, mp, anything implicitly defined by a parent

Offen
#3,099 1 Kommentar 1 Reaktion 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?

NeoVim

Which OS are you using?

MacOS

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour

LuaLS should have an annotation to assume a global is already defined. I looked in the documentation and didn't see one, but correct me if I'm wrong.

Actual Behaviour

In Neovim, vim is defined as a global in the Lua init file, which LuaLS complains about. This is frequently worked around by adding it as a global setting to LuaLS, but imo this is a monkey patch because non-Neovim Lua code may benefit from a diagnostic for a missing vim global.

It also doesn't help for other programs that embed Lua and define their own globals. HammerSpoon defines hs and mpv defines mp. In these cases the diagnostic can be circumvented with a require but it's not idiomatic in these domains and doesn't work for Neovim.

Reproduction steps
  1. Edit NeoVim, HammerSpoon, or mpv script
  2. Add vim, hs, or mp to the respective script
  3. Run LuaLS on the script
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

Es werden keine Quelldateien oder Tests genannt. Beginne damit, die Diagnosen von LuaLS und die vorhandene Konfiguration für globale Einstellungen nachzuverfolgen, und ermittle dann, wie von übergeordneten Komponenten bereitgestellte globale Variablen deklariert werden sollten; als abgeschlossen gilt die Aufgabe, wenn globale Variablen von Neovim, Hammerspoon und mpv erkannt werden können, ohne Diagnosen zu undefined-global für nicht verwandte Namen zu unterdrücken.

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
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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