Formatter — Formatação Automática
Jade DSL inclui um formatter embutido que padroniza o estilo do código automaticamente, sem alterar o comportamento do programa.
Como usar
Via CLI
# Exibe o código formatado no terminal (não altera o arquivo)
jadec programa.jd --format
# Formata e sobrescreve o arquivo
jadec programa.jd --format-writeVia VS Code
Com a extensão Jade DSL instalada, o formatter é executado automaticamente ao salvar o arquivo (Format on Save). Você também pode invocar manualmente com Shift+Alt+F (ou Cmd+Shift+F no macOS).
Seguro por design
Se o arquivo contiver erros de sintaxe, o formatter não faz nada — nunca corrompe seu código.
Regras de formatação
Indentação
O formatter usa 2 espaços de indentação em todos os blocos:
servico estoqueService
funcao calcularValor(preco: decimal, qtd: numero) -> decimal
retornar preco * qtd
fim
fimLinha em branco entre declarações
Uma linha em branco separa declarações de nível superior:
entidade Produto
id: id
nome: texto
fim
entidade Categoria
id: id
nome: texto
fim
servico estoqueService
funcao listar() -> lista<Produto>
retornar listarTodos()
fim
fimImportações agrupadas no topo
As importações são sempre movidas para o início do arquivo:
importar modelos/Produto
importar modelos/Categoria
servico estoqueService
funcao listar() -> lista<Produto>
retornar EntityManager.buscar(Produto)
fim
fimEspaçamento em operadores
Sempre um espaço antes e depois de operadores:
// ✅ Formatado
variavel total = preco * quantidade + frete
// ❌ Antes de formatar
variavel total=preco*quantidade+freteExpressões binárias aninhadas
Subexpressões binárias recebem parênteses para deixar a precedência explícita:
// Entrada
variavel resultado = a + b * c
// Saída
variavel resultado = a + (b * c)Quebra de linha ao final
O arquivo sempre termina com exatamente uma quebra de linha.
Idempotência
Formatar um arquivo já formatado não altera nada — é seguro executar --format-write múltiplas vezes ou integrar ao CI:
# Verificar se todos os arquivos estão formatados
for f in **/*.jd; do
jadec "$f" --format | diff - "$f" || echo "Não formatado: $f"
done