Repolode
johnsoncodehk

johnsoncodehk/muggle-string

Библиотека на TypeScript без зависимостей: переписывает исходный текст несколькими авторами правок и сопоставляет результат с исходником через language-server spans и source maps v3.

Звёзды
25
Форки
2
Открытые issues
0
Последний коммит
вчера

Что это?

muggle-string переписывает исходный текст сразу из нескольких мест и сопоставляет изменённый результат с оригиналом. Библиотека создана для vuejs/language-tools: она преобразует Vue single-file components в TypeScript для language server, где несколько плагинов редактируют один блок, а результат должен сохранять возможности редактора — например, просмотр подсказок, автодополнение и переименование.

Правки записываются как добавления в списки отдельных авторов и сортируются только при формировании результата, поэтому для них не нужно искать или копировать текст. У авторов есть ранги, определяющие порядок правок в одной позиции: результат зависит от порядка плагинов, а не от порядка вызовов. Удаления объединяются, а с помощью cut диапазон можно переместить в другое место результата, сохранив его сопоставление с оригиналом.

Из одних и тех же частей результата можно сформировать language-server spans (Verbatim и Atom) или source map v3. Библиотека поставляется только в формате ES modules и не имеет зависимостей.

Ключевые возможности

  • 01Несколько авторов могут редактировать один исходник; порядок правок определяется рангом, а не порядком вызовов.
  • 02Удаления и замены объединяются, не отменяя друг друга.
  • 03Диапазоны, вырезанные с помощью cut, можно перемещать в другое место результата.
  • 04Формирует language-server spans или source map v3 из одних и тех же частей.
  • 05Работает с TypeScript и не имеет зависимостей времени выполнения.

Сценарии использования

  • Создание плагина для language server, который генерирует TypeScript из файлового формата на основе шаблонов.
  • Компиляция шаблонного языка в HTML с сохранением сопоставления с исходными позициями.
  • Создание source map для инструмента преобразования кода, который вносит множество правок в один файл.

В подборках

Темы

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

Частые вопросы

Что такое muggle-string?
Библиотека на TypeScript без зависимостей: переписывает исходный текст несколькими авторами правок и сопоставляет результат с исходником через language-server spans и source maps v3. muggle-string переписывает исходный текст сразу из нескольких мест и сопоставляет изменённый результат с оригиналом. Библиотека создана для vuejs/language-tools: она преобразует Vue single-file components в TypeScript для language server, где несколько плагинов редактируют один блок, а результат должен сохранять возможности редактора — например, просмотр подсказок, автодополнение и переименование.
muggle-string можно использовать бесплатно? Какая у него лицензия?
muggle-string распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
muggle-string всё ещё поддерживается?
Активно поддерживается. Последний коммит в muggle-string — 6 нояб. 2026 г..
Для чего можно использовать muggle-string?
Создание плагина для language server, который генерирует TypeScript из файлового формата на основе шаблонов. Компиляция шаблонного языка в HTML с сохранением сопоставления с исходными позициями. Создание source map для инструмента преобразования кода, который вносит множество правок в один файл.
Где скачать muggle-string?
Исходный код и инструкции по установке — на GitHub: https://github.com/johnsoncodehk/muggle-string

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.

4 тыс.+9 за неделю602JavaApache-2.0Активно поддерживаетсяОбновлён 4 часа назад