LuaLS / LuaLS/lua-language-server
Undefined global `var` in a function which has injected `var` into env
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 4.4k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
**Describe the bug**
`luv -v`: `LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/`
```lua
local A = {}
function A.sync(executor)
local env = getfenv(executor)
env.await = A.wait
-- ......
executor()
end
function A.wait(promise)
print('go')
end
A.sync(function()
await() -- Undefined global `await`.
end)
return A
```
**Expected behavior**
No `Undefined global`
If it's hard to fix, how can I trick the server into treating `awati` as a global variable but not become an item in completion outside the `executor` function.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le rapport avec l’exemple Lua dans un serveur de langage Lua en cours d’exécution et examinez la manière dont l’analyseur gère getfenv, les membres d’environnement injectés et les diagnostics globaux. Comme aucun fichier source ni aucun test n’est nommé dans l’issue, localisez d’abord les points d’entrée pertinents de l’analyse globale et de l’autocomplétion. Le travail est terminé lorsque await n’est pas signalé comme indéfini dans l’executor, tout en restant absent de l’autocomplétion en dehors de celui-ci.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100