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, таких як перерахування, given/using, методи розширення тощо, разом із класичним кодом Scala 2.

🔒Чи надсилається мій Scala-код на публічний сервер?

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

⚙️Чи змінить форматування поведінку моєї Scala-програми?

Форматувальник розроблений для зміни лише пробілів та макету, а не семантики. Тим не менш, як і при будь-якій великій зміні форматування, рекомендується запустити ваш набір тестів після цього.

Pro Tips

Best Practice

Зберігайте файл `.scalafmt.conf` у вашому репозиторії, щоб ваш редактор, CI та `sbt scalafmt` використовували однаковий стиль.

Best Practice

Виконуйте окремий коміт "лише форматування" перед рефакторингом, щоб подальші різниці зосереджувалися на реальних змінах коду, а не на пробілах.

Best Practice

Використовуйте послідовну максимальну ширину рядка в команді, щоб уникнути зайвих різниць і конфліктуючих стилів.

Best Practice

Під час навчання спочатку показуйте безладний Scala, а потім відформатовану версію, щоб підкреслити, як макет покращує читабельність.

Additional Resources

Other Tools