Порт компилятора и языкового сервера TypeScript 7 на Rust — готовая замена для проверки типов и генерации кода.
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 для инструмента преобразования кода, который вносит множество правок в один файл.
В подборках
Темы
Частые вопросы
- Что такое 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 обновляется ежедневно.
Похожие проекты
Экспериментальный порт компилятора TypeScript 7 на Rust (tsc) с теми же CLI, language server и API, а также встроенной диагностикой Effect.
Инструментарий для разбора, переименования и сжатия JavaScript-кода ES6+; поддерживаемый форк uglify-es для минификации современного JavaScript.
OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.
Инструменты для Vue на базе Volar.js: языковой сервер для редакторов, проверка типов vue-tsc и связанные пакеты.
Официальное расширение Microsoft для C/C++ в VS Code: IntelliSense для редактирования кода и отладка программ на C и C++.