Форматировщик кода Haskell
Форматирование и аккуратная запись исходного кода Haskell: единообразные пробелы вокруг операторов, отсортированные и без дубликатов pragma 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"
}'Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.
Спросите у ИИ-агента
Use the IOTools `haskell-code-formatter` tool (Haskell Code Formatter) on this input:
YOUR_INPUT_HEREВставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.
Виджет для встраивания
<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 с непоследовательными пробелами и получите аккуратно отформатированный модуль: единообразные пробелы вокруг ->, <-, ::, =, операторов сравнения и арифметики; отсортированные и без дубликатов pragma LANGUAGE; блоки import, отсортированные по алфавиту; и сворачивание серий пустых строк. Форматирование ориентировано на соглашения Fourmolu/Ormolu. Быстрая проверка выявляет несбалансированные скобки, незакрытые строки и блочные комментарии. Всё работает локально в вашем браузере.
Как пользоваться
- Вставьте свой исходный код Haskell (
.hs). - Выберите 2 пробела (по умолчанию в Fourmolu) или 4 пробела (по умолчанию в Ormolu) для отступа.
- Задайте максимальную длину строки, по которой в отчёте валидации помечаются слишком длинные строки (100 — значение по умолчанию для Fourmolu/Ormolu).
- При необходимости включите или отключите сортировку import, сортировку и удаление дубликатов pragma LANGUAGE и сворачивание пустых строк.
- Проверьте панель Проверка на наличие ошибок синтаксиса, затем скопируйте или скачайте отформатированный результат.
Что форматируется
- Сигнатуры типов, определения функций, сопоставление с образцом и охранные выражения (guards) с несколькими ветками.
- Блоки
whereиlet, блокиdoи списковые включения. - Записи (records), клаузы
derivingи объявления данных. - Несколько pragma
LANGUAGE— переносятся наверх, по одной на строку, без дубликатов и в отсортированном порядке. - Подряд идущие строки
import— сортируются по имени модуля, при этом квалифицированные импорты группируются после неквалифицированных. - Строчные (
--) и блочные ({- -}, с возможностью вложенности) комментарии, а также pragma-комментарии ({-# ... #-}).
Полностью ли это воспроизводит Fourmolu или Ormolu?
Нет — это лёгкий токенизатор без зависимостей и построчный корректор пробелов, а не полноценный парсер на основе AST GHC. Он исправляет пробелы, порядок pragma и порядок импортов внутри каждой строки, не перестраивая код между строками, поэтому не переносит длинные выражения так, как это сделал бы настоящий pretty-printer. Чтобы получить вывод, полностью совпадающий с Fourmolu/Ormolu побайтно, запускайте настоящий инструмент как часть своей сборки.
Загружается ли мой исходный код куда-либо?
Нет. Токенизация и форматирование выполняются полностью в вашем браузере; ничего не отправляется на сервер.
Нужно отформатировать другой функциональный язык или конфигурацию?
Посмотрите Форматировщик кода Elixir для исходного кода на Elixir или Форматировщик Terraform для конфигураций HCL.