Oxfmt Beta
Temos o prazer de anunciar que o Oxfmt chegou à fase beta.
O Oxfmt é um formatador de código em Rust, compatível com o Prettier, feito para o ecossistema JavaScript. Foi pensado para oferecer compatibilidade total com ferramentas modernas e melhorar muito o desempenho.
Nos benchmarks, o Oxfmt é mais de 30× mais rápido que o Prettier e 3× mais rápido que o Biome na primeira execução sem cache. Veja os resultados completos do benchmark.
Desde o alpha de dezembro, ampliamos o suporte a mais formatos de arquivo, adicionamos formatação de linguagens embutidas, introduzimos ordenação de imports, integramos o Tailwind CSS e entregamos várias melhorias de estabilidade e compatibilidade.
O Oxfmt já teve adoção ampla. Projetos que o utilizam incluem: openclaw/openclaw, vuejs/core, vercel/turborepo, huggingface/huggingface.js, getsentry/sentry-javascript, npmx-dev/npmx.dev e muitos outros.
Primeiros passos
Instale oxfmt como dependência de desenvolvimento:
pnpm add -D oxfmtAdicione scripts ao package.json:
{
"scripts": {
"fmt": "oxfmt",
"fmt:check": "oxfmt --check"
}
}Formate os arquivos:
pnpm run fmtVerifique a formatação sem gravar arquivos:
pnpm run fmt:checkMigrando do Prettier
Instale, migre a config e reformate em um único comando:
pnpm add -D oxfmt && pnpm oxfmt --migrate prettier && pnpm oxfmtGuia completo de migração: Migrar do Prettier.
Prompt de migração com IA
Como alternativa, copie este prompt para o assistente de código migrar o projeto:
Migre este projeto do Prettier para o Oxfmt seguindo a documentação em /pt/guide/usage/formatter.html:
1. Instale o oxfmt e execute `oxfmt --migrate prettier`
2. Atualize os scripts do package.json para usar o oxfmt
3. Atualize os workflows de CI para usar `oxfmt --check`
4. Atualize o lint-staged para usar `oxfmt --no-error-on-unmatched-pattern`
5. Execute o oxfmt para reformatar todos os arquivos
6. Desinstale o prettier e pacotes relacionados
7. Atualize as configurações do editor para o oxfmt
8. Atualize CONTRIBUTING.md, AGENTS.md ou CLAUDE.md se mencionarem prettierInstruções mais detalhadas na documentação do Oxfmt.
Destaques dos novos recursos desde o alpha
100% de compatibilidade com o Prettier
O Oxfmt agora passa em 100% dos testes de conformidade JavaScript e TypeScript do Prettier. Para as poucas inconsistências restantes, reportamos à equipe do Prettier e colaboramos para convergir ao comportamento esperado.
Isso permite migrar do Prettier para o Oxfmt com confiança de que o código ficará formatado da mesma forma. Casos não cobertos podem ser reportados.
Formatos adicionais de arquivo
O Oxfmt agora formata JavaScript, JSX, TypeScript, TSX, JSON, JSONC, JSON5, YAML, TOML, HTML, Angular, Vue, CSS, SCSS, Less, Markdown, MDX, GraphQL, Ember e Handlebars — um único formatador para o projeto inteiro.
Integração Tailwind CSS
Ordenação automática de classes Tailwind CSS em arquivos JS/TS e não JS/TS. A funcionalidade do prettier-plugin-tailwindcss vem embutida; o plugin deixa de ser necessário.
Ordenação de imports
Ordenação de imports embutida e configurável:
ignoreCase— ordenação sem diferenciar maiúsculas/minúsculassortSideEffects— ordenar imports de efeito colateralnewlinesBetween— controlar linhas em branco entre grupos de importsgroups— ordem personalizada de gruposcustomGroups— regras de agrupamento personalizadas
Mais opções na referência completa.
Ordenação de package.json
Ordenação de campos do package.json ativada por padrão, mantendo os arquivos organizados.
Formatação de linguagens embutidas
Formate código em literais de template:
- CSS-in-JS com sintaxes no estilo styled-components,
styled-jsxe suporte a CSS prop - Template e estilos do
@Componentdo Angular
API Node.js
API programática disponível:
import { format, type FormatOptions } from "oxfmt";
const input = `let a=42;`;
const options: FormatOptions = {
semi: false,
};
const { code } = await format("a.js", input, options);
console.log(code); // "let a = 42"Mudanças na CLI
--init— criar arquivo de configuração--migrate prettier— migrar config do Prettier--migrate biome— migrar config do Biome--stdin-filepath— caminho do arquivo para entrada via stdin- Expansão de globs —
oxfmt './packages/**/*.{js,jsx}'
Mudanças na config
overrides— opções diferentes por padrão de arquivoinsertFinalNewline— controlar newline final- Suporte a
.editorconfigparainsert_final_newline
Suporte a editores
O Oxfmt funciona nos editores suportados: VS Code, Cursor, Zed, IntelliJ IDEA, WebStorm, Neovim e qualquer editor com LSP.
Roteiro
Continuamos evoluindo o Oxfmt rumo ao lançamento estável:
- Suporte a plugins do Prettier
- Melhorar formatação xxx-in-js
- Estabilidade
- Otimizações de desempenho
Próximos passos
Guia de instalação completo na documentação do Oxfmt.
Reportar problemas
Diferenças de formatação: discussão sobre diferenças de formatação.
Comunidade
Queremos seu feedback sobre o Oxfmt:
- Discord: servidor da comunidade
- GitHub: feedback no RFC do formatador
- Issues: bugs ou pedidos de recurso no rastreador de issues


