跳到主要内容

Haskell 代码格式化工具

API reference

格式化并美化 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 的代码风格。快速校验会标出不平衡的括号以及未闭合的字符串或块注释。所有处理都在您的浏览器本地完成。

使用方法

  1. 粘贴您的 Haskell(.hs)源代码。
  2. 缩进选择 2 个空格(Fourmolu 默认)或 4 个空格(Ormolu 默认)。
  3. 设置 最大行长,校验报告中会据此标记过长的行(100 是 Fourmolu/Ormolu 的默认值)。
  4. 根据需要开启或关闭 导入排序、LANGUAGE 编译指示排序与去重以及 空行合并。
  5. 在 校验 面板中检查语法问题,然后复制或下载格式化后的结果。

格式化范围

  • 类型签名、函数定义、模式匹配以及多分支守卫。
  • where 和 let 绑定、do 块以及列表推导式。
  • 记录、deriving 子句和数据声明。
  • 多个 LANGUAGE 编译指示 —— 移到顶部,每行一个,去除重复项并排序。
  • 连续的 import 行 —— 按模块名字母排序,限定导入(qualified)放在非限定导入之后。
  • 行注释(--)和块注释({- -},可嵌套),以及编译指示注释({-# ... #-})。

是否完全复刻了 Fourmolu 或 Ormolu?

没有。这是一个轻量、无依赖的分词器和基于行的间距调整工具,而不是基于 GHC 抽象语法树构建的完整解析器。它只在每一行内调整间距、编译指示顺序和导入顺序,不会跨行重排代码,因此不会像真正的代码美化器那样折行长表达式。若需要与 Fourmolu/Ormolu 的输出逐字节一致,请在构建流程中运行真正的工具。

我的源代码会被上传吗?

不会。分词和格式化完全在您的浏览器中运行,不会向服务器发送任何内容。

需要格式化其他函数式或配置语言?

Elixir 源代码可以试试 Elixir 代码格式化工具,HCL 配置文件可以试试 Terraform 格式化工具。

haskellformatterfourmoluormoludeveloper

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。