Форматтер кода Scala (стиль Scalafmt)
Гид
Форматтер кода Scala (стиль Scalafmt)
Вставьте исходный код на Scala в поле ввода и получите отформатированный код в стиле Scalafmt — отступы в 2 пробела, сбалансированные фигурные скобки, нормализованные интервалы операторов, отсортированные импорты и единообразные завершающие запятые. Результат является детерминированным, поэтому один и тот же вход всегда приводит к одному и тому же результату, что упрощает сравнение изменений в обзоре кода и устраняет споры по поводу отступов.
Как использовать
- Вставьте свой код на Scala в поле ввода или загрузите пример, чтобы увидеть, как это работает.
- Выберите стиль отступов (по умолчанию 2 пробела) и максимальную ширину столбца (80, 100, 120 или 160).
- Включите нужные опции: завершающие запятые в многострочных списках, отсортированные/группированные импорты, интервалы операторов, сохранение комментариев и сжатие пустых строк.
- Нажмите Формат. Скопируйте результат с помощью кнопки копирования или скачайте его как
.scalaфайл.
Возможности
- Стиль по умолчанию Scalafmt — Отражает конвенции, используемые официальной утилитой scalafmt, включая отступы, обработку фигурных скобок и интервалы операторов.
- Настраиваемое форматирование отступов — Выберите 2 пробела, 4 пробела или табуляцию, чтобы соответствовать стилю руководства проекта.
- Максимальная ширина столбца — Выберите 80, 100, 120 или 160, чтобы соответствовать политике обтекания вашей команды.
- Отсортированные и группированные импорты — Сортирует импорты по алфавиту и группирует их в корзины стандартной библиотеки, сторонних библиотек и локальных импортов, с пустыми строками между группами.
- Завершающие запятые — Добавляет завершающие запятые к многострочным спискам аргументов и параметров для более чистых изменений в системе контроля версий.
- Сохранение комментариев — Сохраняет строковые комментарии, блочные комментарии и Scaladoc, при этом всё же улучшает форматирование окружающего кода.
- Безопасный для строк и интерполяций — При форматировании не изменяются содержимое строк, литералов символов, тройных кавычек и интерполяций.
s"..."/f"..."интерполяций. - Дружелюбный к Scala 3 — Понимает современные ключевые слова Scala 3, такие как
given,using,then,enumиderives. - Работает полностью в браузере — Нет загрузки, нет кругохода на сервере, нет сбора данных. Ваш код никогда не покидает вашу машину.
Распространенные случаи использования
- Подготовьте краткий фрагмент кода перед тем, как вставить его в чат Slack, ответ на Stack Overflow или техническую статью.
- Нормализуйте форматирование в устаревших проектах, которые пока не имеют конфигурации scalafmt, проверенной в репозитории.
- Предварительно отформатируйте сгенерированный код (выход из макросов, классы, полученные из схем и т.д.), чтобы он выглядел как вручную написанный Scala.
- Стандартизируйте стиль в файлах с разными авторами, где каждый участник использовал немного отличающиеся настройки IDE.
- Проверьте небольшую перестройку без запуска sbt или Scala-пайплайна.
Часто задаваемые вопросы
-
Что такое Scalafmt и почему важно единое форматирование Scala?
Scalafmt — это фактически стандартный форматировщик для экосистемы Scala. Он обеспечивает единый, детерминированный стиль в рамках всего кода, что устраняет обсуждения форматирования в обзорах кода, снижает шум в изменениях из-за отступов и помогает новым участникам интегрироваться в проект. Единое форматирование также упрощает просмотр незнакомого кода, потому что отступы и интервалы всегда имеют одинаковое значение.
-
Почему Scalafmt по умолчанию использует максимальную ширину столбца 80?
Традиция 80-столбцов уходит корнями в ранние терминалы и карточки, но она сохраняется сегодня, потому что более узкие строки легче читаются в сравнениях строк, инструментах обзора кода и разделённых панелях редактора. Ограничение 80 столбцов также стимулирует более короткие имена, менее вложенные выражения и более частое извлечение вспомогательных методов. Многие команды расслабляют это до 100 или 120 столбцов, поэтому современные форматеры позволяют настраивать это значение.
-
Что такое завершающие запятые и зачем они полезны?
Завершающая запятая — это запятая после последнего элемента многострочного списка, списка аргументов или списка параметров. Они стали популярны в форматерах, потому что делают сравнения по строкам чище: добавление нового элемента добавляет только одну строку вместо изменения предыдущей строки для добавления запятой. Завершающие запятые также упрощают перестановку строк, поскольку каждый элемент заканчивается одинаково. Scala поддерживает завершающие запятые в списках аргументов и параметров с версии 2.12.2.
-
Почему импорты обычно группируются по стандартной библиотеке, сторонним библиотекам и локальным?
Группировка импортов по происхождению — это устоявшаяся конвенция, заимствованная из языков, таких как Go и Python (с isort). Она делает происхождение зависимостей видимым сразу: импорты стандартной библиотеки идут первыми, затем сторонние библиотеки, затем код из самого проекта. Пустые строки между группами служат визуальными ориентирами, чтобы ревьюеры могли быстро заметить, когда изменение вводит новую внешнюю зависимость, что часто является сигналом, требующим обсуждения.
-
Какова разница между синтаксическим и семантическим форматированием кода?
Синтаксический форматировщик перестраивает пробелы, переносы строк и отступы исключительно на основе исходного текста — он не нуждается в понимании типов, разрешении символов или запуске компилятора. Семантический форматировщик, напротив, может переименовывать идентификаторы, перестраивать методы на основе их использования или удалять ненужные импорты, потому что он имеет доступ к представлению программы компилятора. Scalafmt в основном синтаксический, что делает его быстрым и безопасным для выполнения на неполных или несуществующих кодах.
Установите наши расширения
Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска
恵 Табло результатов прибыло!
Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!
Подписаться на новости
все Новые поступления
всеОбновлять: Наш последний инструмент was added on Июн 26, 2026
