Haskell 代码格式化工具
格式化并美化 Haskell 源代码:统一运算符间距,对 LANGUAGE 编译指示排序并去重,对 import 块排序,合并连续空行,贴近 Fourmolu/Ormolu 的代码风格。包含基础语法校验和超长行报告。完全在浏览器中运行。
输入
输出
格式化后的 Haskell
校验
| 问题 |
|---|
| No data yet |
这对您有帮助吗?
使用此工具的更多方式
REST API
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"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `haskell-code-formatter` tool (Haskell Code Formatter) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/haskell-code-formatter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="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>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
粘贴间距不统一的 Haskell 源代码,即可得到整理好的模块:统一 ->、<-、::、=、比较运算符和算术运算符周围的间距,对 LANGUAGE 编译指示排序并去重,按字母顺序排列 import 块,并合并连续的空行,整体贴近 Fourmolu/Ormolu 的代码风格。快速校验会标出不平衡的括号以及未闭合的字符串或块注释。所有处理都在您的浏览器本地完成。
使用方法
- 粘贴您的 Haskell(
.hs)源代码。 - 缩进选择 2 个空格(Fourmolu 默认)或 4 个空格(Ormolu 默认)。
- 设置 最大行长,校验报告中会据此标记过长的行(100 是 Fourmolu/Ormolu 的默认值)。
- 根据需要开启或关闭 导入排序、LANGUAGE 编译指示排序与去重以及 空行合并。
- 在 校验 面板中检查语法问题,然后复制或下载格式化后的结果。
格式化范围
- 类型签名、函数定义、模式匹配以及多分支守卫。
where和let绑定、do块以及列表推导式。- 记录、
deriving子句和数据声明。 - 多个
LANGUAGE编译指示 —— 移到顶部,每行一个,去除重复项并排序。 - 连续的
import行 —— 按模块名字母排序,限定导入(qualified)放在非限定导入之后。 - 行注释(
--)和块注释({- -},可嵌套),以及编译指示注释({-# ... #-})。
是否完全复刻了 Fourmolu 或 Ormolu?
没有。这是一个轻量、无依赖的分词器和基于行的间距调整工具,而不是基于 GHC 抽象语法树构建的完整解析器。它只在每一行内调整间距、编译指示顺序和导入顺序,不会跨行重排代码,因此不会像真正的代码美化器那样折行长表达式。若需要与 Fourmolu/Ormolu 的输出逐字节一致,请在构建流程中运行真正的工具。
我的源代码会被上传吗?
不会。分词和格式化完全在您的浏览器中运行,不会向服务器发送任何内容。
需要格式化其他函数式或配置语言?
Elixir 源代码可以试试 Elixir 代码格式化工具,HCL 配置文件可以试试 Terraform 格式化工具。
haskellformatterfourmoluormoludeveloper