LuaLS / LuaLS/lua-language-server
Lazy load workspace libraries
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
I'm using sumneko_lua with Neovim and I wanted to have completions from the Lua plugins I have installed, so I inserted all the paths to the plugins that I have into Lua.workspace.library
But the problem is that it that sumneko_lua loads all the files inside those libraries right on startup, causing a massive increase to my RAM usage. Normally sumneko_lua only takes up 100-200 MB, but after adding 40+ library paths, sumneko now takes up to 600-700 MB.
Is it possible to load the libraries into the workspace, only when it is needed?
For example, I don't believe the library needs to be loaded when you're only completing a require statement:
local foobar = require("foob|
sumneko_lua only needs to scan the directories listed in Lua.workspace.library to find the correct files.
Once the require statement is completed, and its return value is interacted with:
local foobar = require("foobar")
foobar.call_functi|
sumneko_lua can now then load the library in order to produce the completions.
Is it possible for something like this to be implemented?
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
Commencez par suivre comment les chemins de Lua.workspace.library sont chargés et comment la complétion des instructions require trouve les fichiers correspondants. Examinez ensuite à quel moment la bibliothèque requise devient disponible pour la complétion des membres. Le travail est terminé lorsque les chemins des bibliothèques sont recherchés sans charger tous les fichiers au démarrage, tout en conservant le fonctionnement des complétions telles que require("foobar") et foobar.call_function.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua, neovim
- Domaine
- devtools, performance
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100