microsoft / microsoft/TypeScript
Consider some way of serializing open projects in tsserver, potentially leveraging `.tsbuildinfo` files
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
One thing that users often hit is that file navigation might trigger opening an entire project. Opening an entire project involves
- File loading
- Scanning/parsing
- Resolving dependencies
- Keep repeating file loading on dependencies until no new files are found
This is a lot of work! If a user jumps back and forth from this file, it can re-trigger this work even if nothing has changed!
A .tsbuildinfo file is used to save time on cold compiler invocations doing this exact set of work, and to reduce work when something actually has changed. It would be interesting to see whether generating a .tsbuildinfo file after project loads could help cut down on this work.
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
Comienza investigando cómo tsserver abre proyectos y cómo se generan y consumen los archivos .tsbuildinfo. Compara las cargas repetidas de proyectos cuando los archivos no han cambiado y determina si la serialización puede reducir ese trabajo sin cambiar el comportamiento. Se considerará terminado cuando exista un diseño acordado y evidencias de que los proyectos sin cambios evitan cargas, análisis sintáctico y resolución de dependencias innecesarios.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- devtools
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100