Haskellコードフォーマッター
Haskellのソースコードを整形して見やすく出力します。演算子の間隔の統一、LANGUAGEプラグマの並べ替えと重複削除、importブロックの並べ替え、連続する空行の圧縮に対応し、Fourmolu/Ormoluの慣習に沿って整形します。基本的な構文チェックと長い行のレポートも含みます。すべてブラウザ内で動作します。
入力
出力
| 問題 |
|---|
| 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_HEREIOTools 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 1回あたりの費用 | 5クレジットから |
|---|---|
| クレジットが足りませんか? | 料金を見る |
次の方法でも利用可能
ガイド
空白の揃っていないHaskellのソースを貼り付けるだけで、きれいに整形されたモジュールを取得できます。->、<-、::、=、比較演算子や算術演算子の周りの間隔を統一し、LANGUAGEプラグマを並べ替えて重複を削除し、importブロックをアルファベット順に並べ、連続する空行をまとめます。Fourmolu/Ormoluの慣習に近い整形を行います。簡単な検証では、括弧の対応が取れていない箇所や閉じられていない文字列・ブロックコメントを検出します。すべての処理はブラウザ内でローカルに実行されます。
使い方
- Haskell(
.hs)のソースコードを貼り付けます。 - インデントに 2スペース(Fourmoluの既定値)か 4スペース(Ormoluの既定値)を選びます。
- 最大行長を設定します。検証レポートでこの長さを超える行に警告を表示します(100はFourmolu/Ormoluの既定値です)。
- 必要に応じて import文の並べ替え、LANGUAGEプラグマの並べ替えと重複削除、空行の圧縮のオン・オフを切り替えます。
- 検証パネルで構文の問題を確認し、整形結果をコピーまたはダウンロードします。
整形の対象
- 型シグネチャ、関数定義、パターンマッチ、複数の分岐を持つガード。
whereとletの束縛、doブロック、リスト内包表記。- レコード、
deriving節、データ宣言。 - 複数の
LANGUAGEプラグマ — 先頭にまとめ、1行に1つずつ分け、重複を削除して並べ替えます。 - 連続する
import行 — モジュール名でアルファベット順に並べ、修飾インポート(qualified)は非修飾インポートの後にまとめます。 - 行コメント(
--)、ネスト可能なブロックコメント({- -})、プラグマコメント({-# ... #-})。
Fourmolu や Ormolu を完全に再現しますか?
いいえ。これはGHCのASTに基づく本格的なパーサーではなく、依存関係のない軽量なトークナイザーと行単位の間隔調整ツールです。各行の中で間隔、プラグマの順序、importの順序を整えますが、行をまたいでコードを組み直すことはないため、本物の整形ツールのように長い式を折り返すことはありません。Fourmolu/Ormoluの出力とバイト単位で完全に一致させたい場合は、ビルドの一部として本物のツールを実行してください。
ソースコードがどこかにアップロードされますか?
いいえ。トークン化と整形はすべてブラウザ内で実行され、サーバーには何も送信されません。
別の関数型言語や設定言語を整形したい場合は?
ElixirのソースにはElixirコードフォーマッターを、HCLの設定ファイルにはTerraformフォーマッターをお使いください。