Repolode
johnsoncodehk

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

#source-map#code-transformation#typescript#language-server#compiler

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