Formatação de Código Scala (Estilo Scalafmt)
Guia
Formatação de Código Scala (Estilo Scalafmt)
Cole o código Scala bruto e obtenha o código formatado segundo o estilo padrão do Scalafmt — indentação de 2 espaços, chaves equilibradas, espaçamento normalizado dos operadores, imports ordenados e vírgulas no final consistentes. A saída é determinística, ou seja, a mesma entrada sempre produz o mesmo resultado, o que significa diffs mais limpos em revisões de código e elimina a necessidade de debates sobre espaços em branco.
Como usar
- Cole seu código Scala no campo de entrada ou carregue o exemplo para ver como funciona.
- Escolha um estilo de indentação (2 espaços é o padrão do Scalafmt) e uma largura máxima da coluna (80, 100, 120 ou 160).
- Ative as opções desejadas: vírgulas no final em listas multilinhas, imports ordenados/agrupados, espaçamento de operadores, preservação de comentários e compactação de linhas em branco.
- Clique Formatar. Copie o resultado com o botão de cópia ou baixe-o como um
.scalaarquivo.
Características
- estilo padrão do Scalafmt – Reflete as convenções usadas pela ferramenta oficial scalafmt, incluindo indentação, tratamento de chaves e espaçamento de operadores binários.
- Indentação configurável – Escolha 2 espaços, 4 espaços ou tabs para corresponder à guia de estilo do seu projeto.
- Largura máxima da coluna – Escolha 80, 100, 120 ou 160 para se adequar à política de quebra de linhas da sua equipe.
- Imports ordenados e agrupados – Reorganiza os imports alfabeticamente e os agrupa em buckets de biblioteca padrão, terceiros e locais, com linhas em branco entre os grupos.
- Vírgulas no final – Adiciona vírgulas no final em listas de argumentos e parâmetros multilinhas para diffs mais limpos no controle de versão.
- Preservação de comentários – Mantém os comentários de linha, comentários de bloco e Scaladoc inteiros, enquanto ainda organiza o código ao redor.
- Seguro para strings e interpolação – A formatação nunca modifica o conteúdo de strings, literais de caracteres, strings com três aspas ou
s"..."/f"..."interpolações. - Amigável ao Scala 3 – Entende palavras-chave modernas do Scala 3 como
given,using,then,enume, ederives. - Executa totalmente no navegador – Sem upload, sem rotação de servidor, sem coleta de dados. Seu código nunca sai da sua máquina.
Casos de uso comuns
- Ajuste rapidamente um snippet de código antes de colá-lo em uma thread no Slack, uma resposta no Stack Overflow ou um post em um blog técnico.
- Normalize a formatação em projetos antigas que ainda não possuem uma configuração do scalafmt salva.
- Antecipe a formatação de código gerado (saídas de macro, classes de caso derivadas de esquema, etc.) para que ele pareça escrito à mão em Scala.
- Padronize o estilo em arquivos mistos onde cada contribuidor usava configurações levemente diferentes no IDE.
- Faça uma verificação rápida de uma pequena refatoração sem precisar iniciar o sbt ou a pipeline de build do Scala.
Perguntas frequentes
-
O que é o Scalafmt e por que a formatação consistente do Scala é importante?
O Scalafmt é a ferramenta de formatação padrão para o ecossistema do Scala. Ele impõe um único estilo determinístico em todo o repositório, o que remove a formatação das discussões em revisão de código, reduz diffs ruídos causados por mudanças de espaços em branco e ajuda novos contribuidores a se integrarem com o resto do projeto. A formatação consistente também torna mais fácil escanear código desconhecido, pois a indentação e o espaçamento sempre carregam o mesmo significado.
-
Por que o Scalafmt escolhe 80 como largura máxima da coluna por padrão?
A convenção de 80 colunas remonta aos terminais e cartões perfurados iniciais, mas persiste hoje porque linhas mais estreitas são mais fáceis de ler em diffs lado a lado, ferramentas de revisão de código e painéis divididos do editor. Um limite de 80 colunas também incentiva identificadores mais curtos, expressões menos aninhadas e a extração mais frequente de métodos auxiliares. Muitas equipes relaxam esse limite para 100 ou 120 colunas, o que é a razão pelas quais os formateadores modernos permitem que você configure esse valor.
-
O que são vírgulas no final e por que são úteis?
Uma vírgula no final é uma vírgula após o último elemento de uma lista multilinha, lista de argumentos ou lista de parâmetros. Elas se tornaram comuns nos formateadores porque tornam os diffs baseados em linhas mais limpos: adicionar um novo elemento apenas adiciona uma linha, em vez de modificar a linha anterior para adicionar uma vírgula. As vírgulas no final também facilitam a reorganização de linhas, já que cada elemento termina da mesma forma. O Scala suporta vírgulas no final em listas de argumentos e parâmetros desde a versão 2.12.2.
-
Por que os imports são geralmente agrupados em biblioteca padrão, terceiros e locais?
O agrupamento dos imports por origem é uma convenção antiga adotada de linguagens como Go e Python (com isort). Isso torna a origem das dependências visível de imediato: os imports da biblioteca padrão vêm primeiro, seguidos pelos bibliotecas terceiras e pelo código do próprio projeto. As linhas em branco entre os grupos atuam como pontos de referência visuais, permitindo que os revisores identifiquem rapidamente quando uma mudança introduz uma nova dependência externa, o que muitas vezes é um sinal importante para discussão.
-
Qual a diferença entre formatação sintática e semântica?
Um formatação sintática reorganiza espaços, quebras de linha e indentação com base apenas no texto de entrada — não precisa entender tipos, resolver símbolos ou executar o compilador. Uma formatação semântica, por outro lado, pode renomear identificadores, reorganizar métodos com base no uso ou remover imports desnecessários porque tem acesso à visão do compilador do programa. O Scalafmt é principalmente sintático, o que o torna rápido e seguro para ser executado em códigos incompletos ou não compilados.
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em 16 de junho de 2026
