Tidak suka iklan? Pergi Bebas Iklan Hari ini

Pengaturan Kode Haskell (Gaya Fourmolu / Ormolu)

PengembangTeks
IKLAN · HAPUS?
MEMASUKKAN

Atau
Baris yang lebih panjang dari ukuran ini akan ditandai dalam laporan (default Ormolu/Fourmolu adalah 100).
IKLAN · HAPUS?

Memandu

Formatter Kode Haskell (Gaya Fourmolu / Ormolu)

Pengaturan Kode Haskell (Gaya Fourmolu / Ormolu)

Tempel kode sumber Haskell secara mentah dan dapatkan kode yang telah diatur ke gaya yang deterministik, terinspirasi oleh Fourmolu/Ormolu — dengan jarak operator yang konsisten, pragma LANGUAGE yang diurutkan, import yang dikelompokkan, dan tab yang diubah menjadi spasi. Semua proses berjalan secara lokal di browser Anda, sehingga kode sumber Anda tidak pernah meninggalkan mesin Anda.

Cara Penggunaan

  1. Upload .hs file atau tempel kode Haskell Anda ke kotak masukan (gunakan tautan "Coba contoh" untuk contoh cepat).
  2. Pilih ukuran indentasi — 2 spasi (default Fourmolu) atau 4 spasi (default Ormolu).
  3. Atur panjang maksimum baris yang digunakan untuk menandai baris yang terlalu panjang dalam ringkasan validasi (default 100).
  4. Beralih Urutkan impor, Urutkan & hapus duplikat pragma LANGUAGEdan Kompres baris kosong untuk sesuai dengan gaya proyek Anda.
  5. Output yang telah diatur muncul secara otomatis dengan penekanan sintaks; gunakan Copy atau Download untuk mengambil hasilnya.

Fitur

  • Pengaturan yang deterministik — menambahkan spasi standar di sekitar =, ::, ->, <-, =>, $, ++, operator perbandingan, dan kombinator Applicative/Monad seperti <$>, <*>, >>=.
  • Normalisasi pragma — memindahkan setiap {-# LANGUAGE ... #-} pragma ke bagian atas file, membagi pragma yang digabungkan menjadi satu ekstensi per baris, mengurutkannya secara alfabetis, dan menghapus duplikat.
  • Pengurutan impor — mengurutkan pernyataan berurutan secara alfabetis berdasarkan nama modul sambil mempertahankan konvensi kelompok yang diberi nama dan tidak diberi nama. import pernyataan secara alfabetis berdasarkan nama modul sambil mempertahankan konvensi pengelompokan tidak terkualifikasi/terkualifikasi.
  • Aman terhadap layout — mempertahankan indentasi awal pengguna (aturan layout Haskell sangat penting) sambil mengubah tab menjadi spasi menggunakan lebar indent yang dipilih.
  • Tokenizer yang aman terhadap komentar — menangani komentar baris (--), komentar blok yang saling bersarang ({- ... -}), pragma, string dengan escape, dan literal karakter sehingga karakter operator di dalamnya tidak terganggu.
  • Validasi tanda kurung dan blok — menandai tanda kurung, kurung, kurung kurung, dan komentar blok yang tidak ditutup dengan nomor baris.
  • Laporan panjang baris — menyoroti baris apa pun yang melebihi lebar maksimum yang dikonfigurasi sehingga Anda dapat menyesuaikan sebelum disetujui.
  • 100% sisi klien — kode Anda diproses secara penuh di browser; tidak ada yang diunggah, dicatat, atau disimpan.

Tanya Jawab Umum

  1. Perbedaan antara Ormolu dan Fourmolu?

    Ormolu adalah formatter Haskell yang ketat dan berpendapat dengan hampir tidak ada konfigurasi — setiap proyek yang diformat oleh Ormolu terlihat sama. Fourmolu adalah cabang dari Ormolu yang menampilkan sejumlah pengaturan gaya (ukuran indentasi, posisi koma, koma di awal atau akhir, jarak kurung pada record) untuk tim yang ingin gaya yang konsisten namun tidak identik dengan Ormolu asli. Keduanya menggunakan parser yang sama dan pendekatan berbasis AST, sehingga menghasilkan kode Haskell yang valid secara konsisten.

  2. Mengapa penyusunan kode Haskell sulit bagi AI umum?

    Haskell menggunakan aturan off-side — indentasi memiliki makna secara semantik dan menentukan tempat blok seperti let, where, do, dan case ... of mulai dan berakhir. Sebuah formatter harus memahami pohon parse, bukan hanya aliran token, untuk mengatur ulang indentasi secara aman tanpa mengubah makna program. Model bahasa umum berpikir tentang kode sebagai teks dan secara rutin menghasilkan indentasi yang berbeda dari input, terutama untuk klausa where yang bersarang dan lambda multi-baris.

  3. Apa itu pragma LANGUAGE?

    Pragma LANGUAGE adalah direktif berbentuk {-# LANGUAGE ExtensionName #-} yang ditempatkan di bagian atas file sumber Haskell untuk mengaktifkan ekstensi GHC untuk modul tersebut — misalnya OverloadedStrings, ScopedTypeVariables, atau TypeApplications. Pragma dapat digabungkan ({-# LANGUAGE A, B, C #-}) tetapi kebanyakan panduan gaya menyarankan satu ekstensi per baris dan pengurutan alfabetis untuk memudahkan perbedaan perubahan.

  4. Mengapa import yang diberi nama biasanya dikelompokkan secara terpisah?

    Konvensi mengelompokkan import yang diberi nama (import qualified Data.Map as M) setelah import biasa (import Data.List) sehingga pembaca dapat memperhatikan nama tanpa nama terlebih dahulu dan melihat secara langsung modul mana yang diakses melalui alias. Ini adalah tata letak yang dihasilkan oleh stylish-haskell, Ormolu, dan Fourmolu secara default, dan menjaga konflik penggabungan lokal ketika proyek menambahkan atau menghapus alias yang diberi nama.

Ingin bebas iklan? Bebas Iklan Hari Ini

Instal Ekstensi Kami

Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat

Ke Ekstensi Chrome Ke Ekstensi Tepi Ke Ekstensi Firefox Ke Ekstensi Opera

Papan Skor Telah Tiba!

Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!

IKLAN · HAPUS?
IKLAN · HAPUS?
IKLAN · HAPUS?

Pojok Berita dengan Sorotan Teknologi

Terlibat

Bantu kami untuk terus menyediakan alat gratis yang berharga

Belikan aku kopi
IKLAN · HAPUS?