Un port en Rust del compilador y el servidor de lenguaje de TypeScript 7, como reemplazo directo para la comprobación de tipos y la generación de código.
johnsoncodehk/muggle-string
Biblioteca de TypeScript sin dependencias para reescribir texto fuente desde varios escritores y mapear el resultado mediante spans de language server y source maps v3.
- Estrellas
- 25
- Forks
- 2
- Issues abiertos
- 0
- Último commit
- hace 23 horas
¿Qué es?
muggle-string reescribe texto fuente desde varios lugares a la vez y mapea el resultado reescrito al texto original. Se creó para vuejs/language-tools, para convertir componentes Vue de un solo archivo a TypeScript para el language server, donde varios plugins editan el mismo bloque y el resultado debe conservar funciones del editor como hover, autocompletado y renombrado.
Las ediciones se registran como inserciones en listas por escritor y solo se ordenan al renderizar, así que nunca se busca ni se copia texto. Los escritores tienen rangos que determinan el orden en una misma posición, por lo que el resultado depende del orden de los plugins y no del orden de las llamadas. Las eliminaciones se combinan, y un corte permite mover un rango a otra parte del resultado sin perder su mapeo.
Las mismas piezas renderizadas producen spans de language server (Verbatim y Atom) o un source map v3. La biblioteca se distribuye únicamente como módulos ES y no tiene dependencias.
Funciones clave
- 01Varios escritores editan el mismo texto fuente y el orden se determina por rango, no por el orden de las llamadas.
- 02Las eliminaciones y sustituciones se combinan sin deshacer unas a otras.
- 03Los rangos cortados se pueden mover a otra posición del resultado.
- 04Genera spans de language server o un source map v3 a partir de las mismas piezas.
- 05Funciona con TypeScript y no tiene dependencias en tiempo de ejecución.
Casos de uso
- Crear un plugin de language server que genere TypeScript a partir de un formato de archivo basado en plantillas.
- Compilar un lenguaje de plantillas a HTML conservando un mapeo a las posiciones originales.
- Generar un source map para una herramienta de transformación de código que realiza muchas ediciones en un mismo archivo.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es muggle-string?
- Biblioteca de TypeScript sin dependencias para reescribir texto fuente desde varios escritores y mapear el resultado mediante spans de language server y source maps v3. muggle-string reescribe texto fuente desde varios lugares a la vez y mapea el resultado reescrito al texto original. Se creó para vuejs/language-tools, para convertir componentes Vue de un solo archivo a TypeScript para el language server, donde varios plugins editan el mismo bloque y el resultado debe conservar funciones del editor como hover, autocompletado y renombrado.
- ¿muggle-string es gratuito? ¿Qué licencia tiene?
- muggle-string es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿muggle-string sigue mantenido?
- Mantenimiento activo. El último commit de muggle-string fue el 6 nov 2026.
- ¿Para qué puedo usar muggle-string?
- Crear un plugin de language server que genere TypeScript a partir de un formato de archivo basado en plantillas. Compilar un lenguaje de plantillas a HTML conservando un mapeo a las posiciones originales. Generar un source map para una herramienta de transformación de código que realiza muchas ediciones en un mismo archivo.
- ¿Dónde consigo muggle-string?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/johnsoncodehk/muggle-string
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un port experimental en Rust del compilador TypeScript 7 (tsc), con la misma CLI, el mismo servidor de lenguaje y la misma API, además de diagnósticos de Effect integrados.
Herramientas para analizar, renombrar y comprimir JavaScript ES6+, un fork mantenido de uglify-es para minificar JavaScript moderno.
Motor de refactorización automatizada de código abierto que aplica recetas al código fuente en numerosos repositorios para migrar frameworks y corregir problemas de seguridad.
Herramientas de lenguaje para Vue basadas en Volar.js, con servidor de lenguaje para editores, el verificador de tipos vue-tsc y paquetes relacionados.
Extensión oficial de Microsoft para C/C++ en VS Code, con edición mediante IntelliSense y herramientas de depuración para código C y C++.