LuaLS / LuaLS/lua-language-server
Class definitions get confused with same filenames across folders.
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
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Diagnostics/Syntax Checking
Expected Behaviour
I have two files, both named the same but in different paths. Each file has its own class and table structure name, which differs from each other.
class A doesn't have method "MyMethod"
class B does
When creating an instance of the class B, and using MyMethod from class B it says that Class A has undefined field "MyMethod" despite being an instance of class B
Renaming class B's file name to something else stops the undefined field warning.
I expect the classes to have differentiation based on the ---@class ClassName syntax, and not the file name.
Actual Behaviour
As you might expect from my description, it does give that warning until the file is renamed.
Reproduction steps
- Create a file "test/file.lua" with a class that doesn't implement "MyMethod"
- Create a file "file.lua" with a class that does implement "MyMethod"
- In your main file, require both, create an instance of both, and try to use MyMethod from instance from step 2
- Notice warning about class from step 1 not implementing MyMethod, despite not being used.
Additional Notes
In a small scale test, this didn't seem to happen. But in a full project, the program ran the method LLS says is undefined. Renaming the file and nothing else fixed it so it had something to do with that.
Log File
No response
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 l’avertissement avec test/file.lua, file.lua et un fichier main qui requiert les deux, comme indiqué dans les étapes de reproduction. Commencez par examiner les diagnostics et la vérification syntaxique autour de la résolution des classes et des tables ; le travail est terminé lorsque l’instance de file.lua est vérifiée par rapport à sa propre classe plutôt que par rapport à la classe du même nom dans test/file.lua.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua, vscode
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100