Loading…

О форматтере Scala Онлайн-форматтер кода Scala

Вставьте свой код Scala, нажмите «Форматировать» и мгновенно получите чистый, последовательный вывод в стиле scalafmt. Идеально для бэкенд-сервисов, данныхых конвейеров, FP-библиотек и учебных примеров. Файлы конфигурации не требуются – просто современное форматирование Scala, готовое к проверке и коммитам в git.

Почему стоит использовать наш форматтер Scala

  • Мгновенно форматируйте неструктурированный или неправильно выровненный код Scala
  • Исправляйте пробелы вокруг типов, параметров и операторов
  • Нормализуйте стиль скобок для классов, объектов, трейтов и методов
  • Применяйте переносы строк в стиле scalafmt для длинных выражений и цепочек методов
  • Поддерживает файлы `.scala`, `.sc` скрипты и `.sbt` сборки
  • Код форматируется через защищенный бэкенд – не передается и не индексируется
  • Адаптивный интерфейс редактора, работающий на ноутбуке, настольном компьютере и планшете

🛠️ Как форматировать код Scala онлайн for scala-formatter

1

1. Вставьте или загрузите ваш код Scala

📥 Вставьте ваш код Scala в редактор или перетащите файл `.scala`, `.sc` или `.sbt`. Редактор применяет подсветку синтаксиса Scala, чтобы вы могли быстро просмотреть ваш код.

2

2. Нажмите «Форматировать»

⚙️ Нажмите кнопку **Форматировать**. Ваш код отправляется по HTTPS в форматер в стиле scalafmt, который реорганизует пробелы, отступы и переносы строк без изменения семантики.

3

3. Просмотрите результат

🔍 Сравните очищенную версию с вашей оригинальной. Скобки, пробелы и пустые строки нормализованы, чтобы структура вашего кода была легче для восприятия.

4

4. Скопируйте или скачайте

📤 Скопируйте отформатированный код Scala обратно в вашу IDE или скачайте его как файл `.scala`, готовый к коммиту, ревью кода или развертыванию.

Технические характеристики

Поведение стилизации (в стиле Scalafmt)

Форматер стремится отражать общие соглашения scalafmt, чтобы ваш код выглядел идиоматично в современных проектах Scala.

АспектПоведениеПримечания
Отступы и скобкиЕдинообразные отступы для `class`, `object`, `trait`, `def`, `if`, `match` и `for`Делает вложенные потоки управления и сопоставления с образцом более читаемыми.
Пробелы в типах и параметрахНормализует пробелы вокруг двоеточий, стрелок и списков параметровНапример: `def f(x: Int): String` вместо `def f(x:Int):String`.
Импорты и пакетыСохраняет структуру пакетов и блоков импорта, отделяя их от определенийУлучшает навигацию и согласованность между файлами.
Пустые строкиСтандартизирует пустые строки вокруг определений верхнего уровняРазделяет логические разделы, такие как модели, сервисы и вспомогательные компоненты.
ИдемпотентностьМногократное выполнение форматирования дает одинаковый результатБезопасно переформатировать так часто, как вам угодно, без смещения стиля.

Совместимость с версиями Scala

Форматтер разработан для синтаксиса как Scala 2, так и Scala 3.

ФункцияПоддержкаПримечания
Scala 2.x✅ ДаРаботает с распространёнными паттернами, такими как имплиситы, объекты-компаньоны и классические for-выражения.
Scala 3 (Dotty)✅ ДаПонимает given/using, методы расширения, перечисления и другие конструкции Scala 3.
Файлы сборки SBT✅ ДаФорматирует файлы `.sbt`, используемые в сборках и определениях зависимостей.

Поддерживаемые входные данные и ограничения

Оптимизировано для файлов реальных проектов, а не только для небольших фрагментов.

ПараметрОграничение / ПоведениеПримечания
Расширения файлов.scala, .sc, .sbtИсходные файлы, скрипты и определения сборки.
MIME-типыtext/x-scalaИспользуется внутренне для подсветки синтаксиса.
Максимальный размер входных данных≈ 2 МБ исходного кодаСлишком большие сгенерированные коды лучше форматировать через локальный scalafmt.
КодировкаРекомендуется UTF-8Содержимое не в UTF-8 следует преобразовать перед форматированием.

Выполнение и безопасность

Форматирование выполняется через приватный, защищённый бэкенд, а не через публичные сторонние сервисы.

АспектПоведениеПримечания
ТранспортHTTPS-вызовы к API форматирования ScalaВаш код передаётся безопасно и не раскрывается публично.
Таймаут~25 секунд на запросПредотвращает долго выполняющиеся или зависшие задания форматирования на проблемных входных данных.
СемантикаТолько преобразования макетаФорматтер изменяет пробелы и макет, а не логику вашей программы.

Используйте Scalafmt в вашем локальном рабочем процессе

Для полного контроля и форматирования всего репозитория установите scalafmt и интегрируйте его в вашу сборку или CI-пайплайн:

Универсальный (через sbt)

Добавьте scalafmt в ваш проект

addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")

Добавляет sbt-плагин, чтобы вы могли запускать scalafmt из sbt-оболочки.

Отформатировать все исходники

sbt scalafmtAll

Форматирует все Scala и sbt файлы в вашем проекте с использованием `.scalafmt.conf`.

Проверить форматирование в CI

sbt scalafmtCheckAll

Прерывает сборку, если файлы неправильно отформатированы.

Зафиксируйте файл `.scalafmt.conf`, чтобы ваша команда, CI и интеграции редакторов были согласованы с одним стилем Scala.

Типичные сценарии использования

Бэкенд и FP-сервисы

Поддерживайте согласованность и удобство проверки больших Scala-бэкендов и FP-кодовых баз.

  • Стандартизируйте стиль в проектах Akka, ZIO, Cats Effect или Play.
  • Очищайте код перед открытием pull request'ов или демонстрацией примеров.
  • Нормализуйте формат после больших рефакторингов или миграций библиотек.
object A{def main(args:Array[String]){println("hi")}}
object A {
  def main(args: Array[String]): Unit = {
    println("hi")
  }
}

Изучение и преподавание Scala

Сосредоточьтесь на функциональных концепциях и типах вместо споров о пробелах.

  • Автоформатирование студенческих работ перед проверкой логики и паттернов.
  • Показывайте примеры до/после форматирования при обучении стилю Scala.
  • Подготавливайте чистые фрагменты кода для слайдов, документации и постов в блогах.

Сборка и инструментальные скрипты

Поддерживайте порядок в `.sbt` файлах сборки и небольших Scala-скриптах.

  • Форматируйте настройки sbt и блоки зависимостей для удобства поддержки.
  • Очищайте вспомогательные скрипты, используемые для миграций или внутренних инструментов.

❓ Frequently Asked Questions

Что такое scalafmt и как этот инструмент связан с ним?

Scalafmt — это стандартный форматировщик кода для Scala. Данный онлайн-форматировщик стремится следовать поведению scalafmt, чтобы расположение, которое вы видите здесь, было близко к тому, что вы получаете при запуске scalafmt или sbt-scalafmt в вашем собственном проекте.

🔧Можно ли настроить все правила scalafmt здесь?

Этот инструмент ориентирован на разумный, предустановленный профиль, а не на предоставление доступа к каждой настройке scalafmt. Для полного контроля создайте файл `.scalafmt.conf` в вашем проекте и запустите scalafmt через sbt или вашу IDE.

🌐Поддерживается ли синтаксис Scala 3?

Да. Форматировщик разработан для работы с современными возможностями Scala 3, такими как перечисления (enums), given/using, методы расширения и другие, наряду с классическим кодом Scala 2.

🔒Отправляется ли мой код Scala на публичный сервер?

Ваш код передается по HTTPS на приватный сервер форматирования, предназначенный только для этого инструмента, и не передается третьим лицам и не индексируется. Для высококонфиденциального или проприетарного кода вы можете запустить scalafmt локально.

⚙️Изменит ли форматирование поведение моей программы на Scala?

Форматировщик предназначен для изменения только пробелов и расположения, а не семантики. Тем не менее, как и при любом значительном изменении форматирования, рекомендуется запустить тесты после его применения.

Pro Tips

Best Practice

Храните файл `.scalafmt.conf` в вашем репозитории, чтобы ваш редактор, CI и `sbt scalafmt` использовали один и тот же стиль.

Best Practice

Создавайте отдельный коммит «только форматирование» перед рефакторингом, чтобы последующие diff'ы фокусировались на реальных изменениях кода, а не на пробелах.

Best Practice

Используйте единую максимальную ширину строки в вашей команде, чтобы избежать шумных diff'ов и конфликтующих стилей.

Best Practice

При обучении сначала показывайте неотформатированный код Scala, а затем отформатированную версию, чтобы подчеркнуть, как расположение улучшает читаемость.

Additional Resources

Other Tools