Uma implementação em Rust do compilador e do servidor de linguagem do TypeScript 7, que substitui diretamente as ferramentas de verificação de tipos e geração de saída.
johnsoncodehk/muggle-string
Biblioteca TypeScript sem dependências para reescrever texto-fonte com vários escritores e mapear o resultado de volta usando spans de language server e source maps v3.
- Estrelas
- 25
- Forks
- 2
- Issues abertas
- 0
- Último commit
- há 23 horas
O que é?
muggle-string reescreve um texto-fonte a partir de vários pontos ao mesmo tempo e mapeia o resultado de volta para o código original. Foi criada para vuejs/language-tools, para converter componentes single-file do Vue em TypeScript para o language server, em que vários plugins editam o mesmo bloco e o resultado precisa manter recursos do editor, como hover, completion e rename.
As edições são registradas como adições a listas de cada escritor e só são ordenadas na hora de renderizar, então nunca é preciso buscar nem copiar texto. Os escritores têm ranks que definem a ordem quando as edições ocorrem na mesma posição; assim, a ordem dos plugins, e não a ordem das chamadas, determina o resultado. Remoções se combinam, e um recorte permite mover um intervalo para outro ponto do resultado, preservando o mapeamento.
As mesmas partes renderizadas geram spans de language server (Verbatim e Atom) ou um source map v3. A biblioteca é distribuída somente como módulos ES e não tem dependências.
Recursos principais
- 01Vários escritores editam a mesma fonte, com ordenação por rank em vez da ordem das chamadas.
- 02Remoções e substituições se combinam sem desfazer umas às outras.
- 03Intervalos recortados podem ser movidos para outra posição no resultado.
- 04Gera spans de language server ou um source map v3 a partir das mesmas partes.
- 05Funciona com TypeScript e não tem dependências em runtime.
Casos de uso
- Criar um plugin de language server que gera TypeScript a partir de um formato de arquivo baseado em templates.
- Compilar uma linguagem de templates para HTML, preservando o mapeamento para as posições originais.
- Gerar um source map para uma ferramenta de transformação de código que faz muitas edições em um único arquivo.
Em coleções
Tópicos
Perguntas frequentes
- O que é muggle-string?
- Biblioteca TypeScript sem dependências para reescrever texto-fonte com vários escritores e mapear o resultado de volta usando spans de language server e source maps v3. muggle-string reescreve um texto-fonte a partir de vários pontos ao mesmo tempo e mapeia o resultado de volta para o código original. Foi criada para vuejs/language-tools, para converter componentes single-file do Vue em TypeScript para o language server, em que vários plugins editam o mesmo bloco e o resultado precisa manter recursos do editor, como hover, completion e rename.
- muggle-string é gratuito? Qual é a licença?
- muggle-string é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- muggle-string ainda é mantido?
- Manutenção ativa. O último commit de muggle-string foi em 6 de nov. de 2026.
- Para que posso usar muggle-string?
- Criar um plugin de language server que gera TypeScript a partir de um formato de arquivo baseado em templates. Compilar uma linguagem de templates para HTML, preservando o mapeamento para as posições originais. Gerar um source map para uma ferramenta de transformação de código que faz muitas edições em um único arquivo.
- Onde consigo muggle-string?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/johnsoncodehk/muggle-string
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma port experimental em Rust do compilador TypeScript 7 (tsc), com a mesma CLI, o mesmo servidor de linguagem e a mesma API, além de diagnósticos integrados do Effect.
Toolkit de parser, renomeação e compactação de JavaScript para código ES6+, mantido como fork do uglify-es para minificar JavaScript moderno.
Mecanismo open source de refatoração automatizada que aplica recipes ao código-fonte em vários repositórios, incluindo migrações de frameworks e correções de segurança.
Ferramentas de linguagem para Vue baseadas no Volar.js, com o servidor de linguagem para editores, o verificador de tipos vue-tsc e pacotes relacionados.
Extensão oficial da Microsoft para C/C++ no VS Code, com IntelliSense para edição e recursos de depuração.