LuaLS / LuaLS/lua-language-server
Lazy load workspace libraries
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Lua
- Estrellas
- 4.4k
- Forks
- 442
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza trazando cómo se cargan las rutas de Lua.workspace.library y cómo la finalización de sentencias require encuentra los archivos coincidentes. Después, examina cuándo la biblioteca requerida está disponible para las finalizaciones de miembros. Se considera terminado cuando las rutas de las bibliotecas se buscan sin cargar todos los archivos al iniciar, mientras las finalizaciones como require("foobar") y foobar.call_function siguen funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua, neovim
- Área
- devtools, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100