Formatador de Código Haskell
Formate e deixe bonito código-fonte Haskell — espaçamento consistente de operadores, pragmas LANGUAGE ordenados e sem duplicatas, blocos de import ordenados e recolhimento de linhas em branco, seguindo as convenções do Fourmolu/Ormolu. Inclui validação básica de sintaxe e relatório de linhas longas. Roda inteiramente no seu navegador.
Entrada
Saída
| Problema |
|---|
| No data yet |
Mais formas de usar esta ferramenta
API REST
curl -X POST https://api.iotools.cloud/v1/tool/haskell-code-formatter \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"haskellInput": "{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAG…",
"indentSize": "2",
"maxLineLength": "100",
"sortImports": "true",
"sortPragmas": "true",
"collapseBlankLines": "true"
}'Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.
Peça a um agente de IA
Use the IOTools `haskell-code-formatter` tool (Haskell Code Formatter) on this input:
YOUR_INPUT_HERECole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.
Widget para incorporar
<iframe
src="https://iotools.cloud/embed/haskell-code-formatter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Formatador de Código Haskell — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Coloque isso na sua própria página — grátis, sem chave, só um link de volta.
| Custo por chamada de API/MCP | A partir de 5 créditos |
|---|---|
| Precisa de mais créditos? | Ver preços |
Também disponível via
Guias
Cole código Haskell com espaçamento inconsistente e receba um módulo bem formatado — espaçamento consistente de operadores em torno de ->, <-, ::, =, operadores de comparação e aritmética, pragmas LANGUAGE ordenados e sem duplicatas, blocos de import em ordem alfabética e redução de sequências de linhas em branco — aproximando as convenções do Fourmolu/Ormolu. Uma validação rápida sinaliza parênteses desbalanceados e strings ou comentários de bloco não fechados. Tudo roda localmente no seu navegador.
Como usar
- Cole o seu código-fonte Haskell (
.hs). - Escolha 2 espaços (padrão do Fourmolu) ou 4 espaços (padrão do Ormolu) para a indentação.
- Defina o comprimento máximo da linha, usado para marcar linhas longas no relatório de validação (100 é o padrão do Fourmolu/Ormolu).
- Ative ou desative ordenar imports, ordenar/remover duplicatas dos pragmas LANGUAGE e reduzir linhas em branco, conforme necessário.
- Confira o painel Validação para problemas de sintaxe e, em seguida, copie ou baixe o resultado formatado.
O que é formatado
- Assinaturas de tipo, definições de função, casamento de padrões e guardas com múltiplos casos.
- Blocos
whereelet, blocosdoe list comprehensions. - Registros, cláusulas
derivinge declarações de dados. - Vários pragmas
LANGUAGE— movidos para o topo, separados um por linha, sem duplicatas e em ordem. - Linhas
importconsecutivas — ordenadas alfabeticamente pelo nome do módulo, com os imports qualificados agrupados após os não qualificados. - Comentários de linha (
--) e de bloco ({- -}, aninháveis), além de comentários de pragma ({-# ... #-}).
Isso replica totalmente o Fourmolu ou o Ormolu?
Não — trata-se de um tokenizador leve, sem dependências, e de um reformatador de espaçamento baseado em linhas, e não de um parser completo construído sobre a AST do GHC. Ele reformata espaçamento, ordem dos pragmas e ordem dos imports dentro de cada linha, sem reorganizar o código entre linhas, por isso não quebra expressões longas como faria um pretty-printer de verdade. Para obter uma saída idêntica, byte a byte, à do Fourmolu/Ormolu, execute a ferramenta real como parte do seu build.
O meu código-fonte é enviado para algum lugar?
Não. A tokenização e a formatação rodam inteiramente no seu navegador; nada é enviado a um servidor.
Preciso formatar outra linguagem funcional ou de configuração?
Veja o Formatador de Código Elixir para código Elixir ou o Formatador do Terraform para configurações em HCL.