Чому варто використовувати наш форматувальник Scala
- Миттєво форматуйте неструктурований або неправильно вирівняний код Scala
- Виправте пробіли навколо типів, параметрів та операторів
- Нормалізуйте стиль фігурних дужок для класів, об'єктів, трейтів та методів
- Застосуйте перенесення рядків у стилі scalafmt для довгих виразів та ланцюжків методів
- Підтримує `.scala`, `.sc` скрипти та `.sbt` файли збірки
- Код форматується через захищений бекенд – не зберігається та не індексується
- Адаптивний інтерфейс редактора, що працює на ноутбуці, комп'ютері та планшеті
🛠️ Як форматувати код Scala онлайн for scala-formatter
1. Вставте або завантажте ваш код Scala
📥 Вставте ваш код Scala у редактор або перетягніть файл `.scala`, `.sc` або `.sbt`. Редактор застосовує підсвічування синтаксису Scala, щоб ви могли швидко переглянути ваш код.
2. Натисніть "Форматувати"
⚙️ Натисніть кнопку **Форматувати**. Ваш код надсилається через HTTPS до форматувальника у стилі scalafmt, який реорганізує пробіли, відступи та розриви рядків без зміни семантики.
3. Перегляньте результат
🔍 Порівняйте очищену версію з вашою оригінальною. Фігурні дужки, інтервали та порожні рядки нормалізуються, щоб структура вашого коду була зрозумілішою.
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Провалює збірку, якщо файли не відформатовані належним чином.
Поширені випадки використання
Бекенд та 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 3?
🔒Чи надсилається мій Scala-код на публічний сервер?
HTTPS до приватного серверу форматування, призначеного для цього інструменту, і не поширюється та не індексується. Для висококонфіденційного або власницького коду ви можете запустити scalafmt локально.⚙️Чи змінить форматування поведінку моєї Scala-програми?
Pro Tips
Зберігайте файл `.scalafmt.conf` у вашому репозиторії, щоб ваш редактор, CI та `sbt scalafmt` використовували однаковий стиль.
Виконуйте окремий коміт "лише форматування" перед рефакторингом, щоб подальші різниці зосереджувалися на реальних змінах коду, а не на пробілах.
Використовуйте послідовну максимальну ширину рядка в команді, щоб уникнути зайвих різниць і конфліктуючих стилів.
Під час навчання спочатку показуйте безладний Scala, а потім відформатовану версію, щоб підкреслити, як макет покращує читабельність.
Additional Resources
Other Tools
- Прикрашувач CSS
- Прикрашувач HTML
- Прикрашувач JavaScript
- Прикрашувач PHP
- Вибір кольору
- Екстрактор спрайтів
- Декодер Base64
- Кодувальник Base64
- Форматувальник C#
- Форматувальник CSV
- Dockerfile Formatter
- Форматувальник Elm
- Форматувальник ENV
- Форматувальник Go
- Форматувальник GraphQL
- Форматувальник HCL
- Форматувальник INI
- Форматувальник JSON
- Форматувальник LaTeX
- Форматувальник Markdown
- Форматувальник Objective-C
- Php Formatter
- Форматувальник Proto
- Форматувальник Python
- Форматувальник Ruby
- Форматувальник Rust
- Форматувальник shell-скриптів
- Форматувальник SQL
- Форматер SVG
- Форматер Swift
- Форматер TOML
- Typescript Formatter
- Форматер XML
- Форматер YAML
- Форматер Yarn
- Мініфікатор CSS
- Html Minifier
- Javascript Minifier
- Мініфікатор JSON
- Мініфікатор XML
- Переглядач HTTP-заголовків
- PDF у текст
- Тестер регулярних виразів
- Перевірка позицій у SERP
- Пошук Whois