🐞 Language Server Requests Should Timeout
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Empieza localizando en CodeEdit el manejo de las solicitudes al language server y del apagado; después, reproduce el problema con el binario sourcekit-lsp incluido en Xcode 16. Define el comportamiento del tiempo de espera para solicitudes ordinarias, de larga duración e inmediatas; el trabajo estará terminado cuando las solicitudes ya no esperen indefinidamente y el caso de salida permita salir.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
There is a chance that language servers (maliciously or due to a bug) may not respond to requests made by the client (CodeEdit). This can cause problems, for example:
- Memory build up as syntax token requests pile up with no responses.
- App refusing to quit before the language server exits, but the language server does not respond to the
exitmessage. - UI hanging forever after a request (eg for a definition search).
In each of these cases one solution would be to time out the request. I think our LSP requests should have a default timeout length.
This has the caveat for requests that may take a long time. Those requests will need to be overridable so they can take longer. The same goes for requests that need immediate response (like the exit message), which will need to be shorter.
To Reproduce
The sourcekit-lsp binary that ships with Xcode 16 is bugged, and will not respond to the exit message. This leaves CodeEdit hanging when quitting the app and requires a force quit.
The same LSP does not respond to semantic token requests (despite declaring the capability, this is a bug with sourcekit-lsp). This may cause cached request handlers to build up over time.
Expected Behavior
Each language server request should have a timeout parameter. This likely means creating a new LanguageServer connection type that passes messages through to another type, but provides a timeout handler for requests. This may be something we can contribute back to the LanguageServer package.
Version Information
CodeEdit: 0.3.3
Additional Context
No response
Screenshots
No response
- Lenguaje dominante
- Swift
- Estrellas
- 23k
- Forks
- 1.2k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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.
Más de CodeEditApp/CodeEdit
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CodeEditApp/CodeEdit#2190 ·
-
Is this project dead? Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 15/100
CodeEditApp/CodeEdit#2195 · 5 reacciones ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
CodeEditApp/CodeEdit#2185 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
CodeEditApp/CodeEdit#2181 ·
-
creashes on starting Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
CodeEditApp/CodeEdit#2180 ·
Todos los issues de CodeEditApp/CodeEdit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
maxgoedjen/secretive#840 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
manaflow-ai/cmux#13763 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
openwallet-foundation/multipaz#2028 ·