Mengapa Menggunakan Formatter Scala Kami
- Format kode Scala yang tidak terstruktur atau tidak sejajar secara instan
- Perbaiki spasi di sekitar tipe, parameter, dan operator
- Normalkan gaya kurung untuk kelas, objek, trait, dan metode
- Terapkan pembungkus baris gaya scalafmt untuk ekspresi panjang dan rantai metode
- Mendukung file `.scala`, skrip `.sc`, dan file build `.sbt`
- Kode diformat melalui backend yang diamankan β tidak dibagikan atau diindeks
- Antarmuka editor responsif yang berfungsi di laptop, desktop, dan tablet
π οΈ Cara Memformat Kode Scala Secara Online for scala-formatter
1. Tempel atau Muat Kode Scala Anda
π₯ Tempelkan kode Scala Anda ke editor atau seret-dan-lepas file `.scala`, `.sc`, atau `.sbt`. Editor menerapkan penyorotan sintaks Scala sehingga Anda dapat memindai kode dengan cepat.
2. Klik "Format"
βοΈ Tekan tombol **Format**. Kode Anda dikirim melalui HTTPS ke pemformat bergaya scalafmt yang mengatur ulang spasi, indentasi, dan jeda baris tanpa mengubah semantik.
3. Tinjau Hasilnya
π Bandingkan versi yang telah dibersihkan dengan aslinya. Kurung kurawal, spasi, dan baris kosong dinormalisasi sehingga struktur kode lebih mudah diikuti.
4. Salin atau Unduh
π€ Salin kode Scala yang telah diformat kembali ke IDE Anda, atau unduh sebagai file `.scala` yang siap untuk komit, tinjauan kode, atau penyebaran.
Spesifikasi Teknis
Perilaku Penataan Gaya (Bergaya Scalafmt)
Pemformat bertujuan meniru konvensi scalafmt umum sehingga kode Anda terlihat idiomatis dalam proyek Scala modern.
| Aspek | Perilaku | Catatan |
|---|---|---|
| Indentasi & Kurung Kurawal | Indentasi konsisten untuk `class`, `object`, `trait`, `def`, `if`, `match`, dan `for` | Membuat alur kontrol bersarang dan pencocokan pola lebih mudah dibaca. |
| Spasi Tipe & Parameter | Menormalisasi spasi di sekitar titik dua, panah, dan daftar parameter | Contohnya: `def f(x: Int): String` alih-alih `def f(x:Int):String`. |
| Impor & Paket | Menjaga blok paket dan impor terstruktur dan terpisah dari definisi | Meningkatkan navigasi dan konsistensi antar file. |
| Baris Kosong | Membakukan baris kosong di sekitar definisi tingkat atas | Memisahkan bagian logis seperti model, layanan, dan pembantu. |
| Idempotensi | Menjalankan pemformatan beberapa kali menghasilkan hasil yang sama | Aman untuk diformat ulang sesering yang Anda inginkan tanpa penyimpangan gaya. |
Kompatibilitas Versi Scala
Formatter ini dirancang untuk sintaks Scala 2 dan Scala 3.
| Fitur | Dukungan | Catatan |
|---|---|---|
| Scala 2.x | β Ya | Bekerja dengan pola umum seperti implisit, objek pendamping, dan for-comprehensions klasik. |
| Scala 3 (Dotty) | β Ya | Memahami given/using, metode ekstensi, enum, dan konstruk Scala 3 lainnya. |
| File build SBT | β Ya | Memformat file `.sbt` yang digunakan dalam build dan definisi dependensi. |
Input & Batasan yang Didukung
Dioptimalkan untuk file proyek dunia nyata, bukan hanya cuplikan kecil.
| Parameter | Batas / Perilaku | Catatan |
|---|---|---|
| Ekstensi file | .scala, .sc, .sbt | File sumber, skrip, dan definisi build. |
| Tipe MIME | text/x-scala | Digunakan secara internal untuk penyorotan sintaks. |
| Ukuran input maksimum | β 2 MB kode sumber | Kode yang dihasilkan sangat besar lebih baik diformat melalui scalafmt lokal. |
| Pengodean | UTF-8 direkomendasikan | Konten non-UTF-8 harus dikonversi sebelum pemformatan. |
Eksekusi & Keamanan
Pemformatan dilakukan melalui backend pribadi yang diamankan, bukan layanan publik pihak ketiga.
| Aspek | Perilaku | Catatan |
|---|---|---|
| Transportasi | Panggilan HTTPS ke API pemformatan Scala | Kode Anda dikirimkan dengan aman dan tidak diekspos secara publik. |
| Batas Waktu | ~25 detik per permintaan | Mencegah pekerjaan pemformatan yang berjalan lama atau macet pada input patologis. |
| Semantik | Transformasi tata letak saja | Formatter mengubah spasi dan tata letak, bukan logika program Anda. |
Gunakan Scalafmt dalam Alur Kerja Lokal Anda
Untuk kontrol penuh dan pemformatan di seluruh repositori, instal scalafmt dan integrasikan ke dalam build atau pipeline CI Anda:
Universal (via sbt)
Tambahkan scalafmt ke proyek Anda
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")Menambahkan plugin sbt sehingga Anda dapat menjalankan scalafmt dari shell sbt.
Format semua sumber
sbt scalafmtAllMemformat semua file Scala dan sbt di proyek Anda menggunakan `.scalafmt.conf`.
Periksa pemformatan di CI
sbt scalafmtCheckAllMenggagalkan build jika file tidak diformat dengan benar.
Kasus Penggunaan Umum
Backend & Layanan FP
Jaga backend Scala besar dan basis kode FP tetap konsisten dan mudah ditinjau.
- Standarisasi gaya di seluruh proyek Akka, ZIO, Cats Effect, atau Play.
- Bersihkan kode sebelum membuka pull request atau berbagi contoh.
- Normalisasi format setelah refaktor besar atau migrasi pustaka.
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Pembelajaran & Pengajaran Scala
Fokus pada konsep dan tipe fungsional alih-alih perdebatan spasi.
- Format otomatis kiriman siswa sebelum meninjau logika dan pola.
- Tunjukkan contoh sebelum/sesudah pemformatan saat mengajar gaya Scala.
- Siapkan cuplikan kode bersih untuk slide, dokumen, dan posting blog.
Skrip Build & Perkakas
Jaga file build `.sbt` dan skrip Scala kecil tetap rapi.
- Format pengaturan sbt dan blok dependensi untuk pemeliharaan yang lebih mudah.
- Bersihkan skrip bantu yang digunakan untuk migrasi atau alat internal.
β Frequently Asked Questions
βApa itu scalafmt dan bagaimana alat ini terkait dengannya?
π§Bisakah saya menyesuaikan semua aturan scalafmt di sini?
πApakah mendukung sintaks Scala 3?
πApakah kode Scala saya dikirim ke server publik?
HTTPS ke backend pemformatan pribadi yang dikhususkan untuk alat ini dan tidak dibagikan atau diindeks. Untuk kode yang sangat rahasia atau proprietary, Anda dapat menjalankan scalafmt secara lokal sebagai gantinya.βοΈApakah pemformatan akan mengubah cara program Scala saya berperilaku?
Pro Tips
Simpan file `.scalafmt.conf` di repo Anda agar editor, CI, dan `sbt scalafmt` semua menggunakan gaya yang sama.
Jalankan komitmen "hanya format" khusus sebelum refaktor sehingga diff selanjutnya fokus pada perubahan kode nyata, bukan spasi.
Gunakan lebar baris maksimum yang konsisten di seluruh tim Anda untuk menghindari diff yang berisik dan gaya yang bertentangan.
Saat mengajar, tunjukkan Scala yang berantakan terlebih dahulu, lalu versi yang diformat untuk menyoroti bagaimana tata letak meningkatkan keterbacaan.
Additional Resources
Other Tools
- Pemerindah CSS
- Pemerindah HTML
- Pemerindah Javascript
- Pemerindah PHP
- Pemilih Warna
- Ekstraktor Sprite
- Dekoder Base64
- Encoder Base64
- Pemformat Csharp
- Pemformat CSV
- Dockerfile Formatter
- Pemformat Elm
- Pemformat ENV
- Pemformat Go
- Pemformat GraphQL
- Pemformat HCL
- Pemformat INI
- Pemformat JSON
- Pemformat Latex
- Pemformat Markdown
- Pemformat ObjectiveC
- Php Formatter
- Pemformat Proto
- Pemformat Python
- Pemformat Ruby
- Pemformat Rust
- Pemformat Skrip Shell
- Pemformat SQL
- Pemformat SVG
- Pemformat Swift
- Pemformat TOML
- Typescript Formatter
- Pemformat XML
- Pemformat YAML
- Pemformat Yarn
- Pengecil CSS
- Html Minifier
- Javascript Minifier
- Pengecil JSON
- Pengecil XML
- Penampil Header HTTP
- PDF Ke Teks
- Penguji Regex
- Pemeriksa Peringkat SERP
- Pencarian Whois