Loading…

Giới thiệu về Công cụ Định dạng Scala Công cụ Định dạng Mã Scala Trực tuyến

Dán mã Scala của bạn, nhấn "Định dạng" và ngay lập tức nhận được đầu ra sạch sẽ, nhất quán theo kiểu scalafmt. Lý tưởng cho dịch vụ backend, đường ống dữ liệu, thư viện FP và ví dụ trong lớp học. Không cần tập tin cấu hình – chỉ cần định dạng Scala hiện đại, sẵn sàng cho đánh giá và commit git.

Tại Sao Sử Dụng Công cụ Định dạng Scala của Chúng tôi

  • Định dạng ngay lập tức mã Scala không cấu trúc hoặc lệch hàng
  • Sửa khoảng cách xung quanh kiểu, tham số và toán tử
  • Chuẩn hóa phong cách dấu ngoặc cho lớp, đối tượng, đặc tính và phương thức
  • Áp dụng ngắt dòng kiểu scalafmt cho biểu thức dài và chuỗi phương thức
  • Hỗ trợ tập tin `.scala`, kịch bản `.sc` và tập tin bản dựng `.sbt`
  • Mã được định dạng qua backend bảo mật – không được chia sẻ hoặc lập chỉ mục
  • Giao diện trình soạn thảo đáp ứng hoạt động trên máy tính xách tay, máy tính để bàn và máy tính bảng

🛠️ Cách Định Dạng Mã Scala Trực Tuyến for scala-formatter

1

1. Dán hoặc Tải Mã Scala Của Bạn

📥 Dán mã Scala của bạn vào trình soạn thảo hoặc kéo và thả tệp `.scala`, `.sc`, hoặc `.sbt`. Trình soạn thảo áp dụng tô sáng cú pháp Scala để bạn có thể quét mã nhanh chóng.

2

2. Nhấp "Định Dạng"

⚙️ Nhấn nút **Định dạng**. Mã của bạn được gửi qua HTTPS đến một trình định dạng kiểu scalafmt để sắp xếp lại khoảng trắng, thụt lề và ngắt dòng mà không thay đổi ngữ nghĩa.

3

3. Xem Xét Kết Quả

🔍 So sánh phiên bản đã làm sạch với bản gốc của bạn. Các dấu ngoặc nhọn, khoảng cách và dòng trống được chuẩn hóa để cấu trúc mã của bạn dễ theo dõi hơn.

4

4. Sao Chép hoặc Tải Xuống

📤 Sao chép mã Scala đã định dạng trở lại IDE của bạn, hoặc tải xuống dưới dạng tệp `.scala` sẵn sàng để commit, xem xét mã hoặc triển khai.

Thông Số Kỹ Thuật

Hành Vi Tạo Kiểu (Kiểu Scalafmt)

Trình định dạng nhằm phản ánh các quy ước scalafmt phổ biến để mã của bạn trông giống với các dự án Scala hiện đại.

Khía cạnhHành viGhi chú
Thụt lề & Dấu ngoặc nhọnThụt lề nhất quán cho `class`, `object`, `trait`, `def`, `if`, `match` và `for`Giúp luồng điều khiển lồng nhau và khớp mẫu dễ đọc hơn.
Khoảng cách Kiểu & Tham sốChuẩn hóa khoảng trắng xung quanh dấu hai chấm, mũi tên và danh sách tham sốVí dụ: `def f(x: Int): String` thay vì `def f(x:Int):String`.
Nhập khẩu & GóiGiữ các khối gói và nhập khẩu có cấu trúc và tách biệt với các định nghĩaCải thiện điều hướng và tính nhất quán giữa các tệp.
Dòng TrốngChuẩn hóa các dòng trống xung quanh các định nghĩa cấp cao nhấtTách các phần logic như mô hình, dịch vụ và công cụ hỗ trợ.
Tính Bất BiếnChạy định dạng nhiều lần cho cùng một kết quảAn toàn để định dạng lại bao nhiêu lần tùy thích mà không bị trôi kiểu.

Tương thích Phiên bản Scala

Trình định dạng được thiết kế cho cả cú pháp Scala 2 và Scala 3.

Tính năngHỗ trợGhi chú
Scala 2.x✅ CóHoạt động với các mẫu phổ biến như implicit, đối tượng đồng hành và for-comprehensions cổ điển.
Scala 3 (Dotty)✅ CóHiểu given/using, phương thức mở rộng, enum và các cấu trúc Scala 3 khác.
Tệp xây dựng SBT✅ CóĐịnh dạng các tệp `.sbt` được sử dụng trong xây dựng và định nghĩa phụ thuộc.

Đầu vào được Hỗ trợ & Giới hạn

Tối ưu hóa cho các tệp dự án thực tế, không chỉ các đoạn mã nhỏ.

Tham sốGiới hạn / Hành viGhi chú
Phần mở rộng tệp.scala, .sc, .sbtTệp nguồn, script và định nghĩa xây dựng.
Loại MIMEtext/x-scalaĐược sử dụng nội bộ để tô sáng cú pháp.
Kích thước đầu vào tối đa≈ 2 MB mã nguồnMã được tạo cực lớn nên được định dạng tốt hơn qua scalafmt cục bộ.
Mã hóaKhuyến nghị UTF-8Nội dung không phải UTF-8 nên được chuyển đổi trước khi định dạng.

Thực thi & An toàn

Việc định dạng được thực hiện thông qua một backend riêng tư, được bảo mật thay vì các dịch vụ công cộng của bên thứ ba.

Khía cạnhHành viGhi chú
Truyền tảiGọi HTTPS đến API định dạng ScalaMã của bạn được truyền an toàn và không bị công khai.
Thời gian chờ~25 giây mỗi yêu cầuNgăn chặn các công việc định dạng chạy lâu hoặc bị kẹt trên các đầu vào bất thường.
Ngữ nghĩaChỉ biến đổi bố cụcTrình định dạng thay đổi khoảng trắng và bố cục, không thay đổi logic chương trình của bạn.

Sử dụng Scalafmt trong Quy trình Làm việc Cục bộ

Để kiểm soát hoàn toàn và định dạng toàn bộ kho lưu trữ, hãy cài đặt scalafmt và tích hợp nó vào quy trình xây dựng hoặc CI của bạn:

Phổ quát (qua sbt)

Thêm scalafmt vào dự án của bạn

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

Thêm plugin sbt để bạn có thể chạy scalafmt từ shell sbt.

Định dạng tất cả nguồn

sbt scalafmtAll

Định dạng tất cả các tệp Scala và sbt trong dự án của bạn bằng `.scalafmt.conf`.

Kiểm tra định dạng trong CI

sbt scalafmtCheckAll

Làm hỏng bản dựng nếu các tệp không được định dạng đúng cách.

Cam kết tệp `.scalafmt.conf` để giữ cho nhóm, tích hợp CI và trình chỉnh sửa của bạn đồng bộ về cùng một kiểu Scala.

Các Trường hợp Sử dụng Phổ biến

Dịch vụ Backend & FP

Giữ cho các backend Scala lớn và codebase FP nhất quán và dễ xem xét.

  • Chuẩn hóa kiểu trên các dự án Akka, ZIO, Cats Effect, hoặc Play.
  • Dọn dẹp mã trước khi mở pull request hoặc chia sẻ ví dụ.
  • Chuẩn hóa định dạng sau các lần tái cấu trúc lớn hoặc di chuyển thư viện.
object A{def main(args:Array[String]){println("hi")}}
object A {
  def main(args: Array[String]): Unit = {
    println("hi")
  }
}

Học & Dạy Scala

Tập trung vào khái niệm và kiểu hàm thay vì tranh cãi về khoảng cách.

  • Tự động định dạng bài nộp của sinh viên trước khi xem xét logic và mẫu.
  • Hiển thị ví dụ trước/sau khi định dạng khi dạy kiểu Scala.
  • Chuẩn bị các đoạn mã sạch cho slide, tài liệu và bài đăng blog.

Kịch bản Xây dựng & Công cụ

Giữ các tệp xây dựng `.sbt` và kịch bản Scala nhỏ gọn gàng.

  • Định dạng cài đặt sbt và khối phụ thuộc để bảo trì dễ dàng hơn.
  • Dọn dẹp kịch bản hỗ trợ được sử dụng cho di chuyển hoặc công cụ nội bộ.

❓ Frequently Asked Questions

Scalafmt là gì và công cụ này liên quan như thế nào?

Scalafmt là trình định dạng mã chuẩn cho Scala. Trình định dạng trực tuyến này nhằm tuân theo hành vi kiểu scalafmt để bố cục bạn thấy ở đây gần với những gì bạn nhận được khi chạy scalafmt hoặc sbt-scalafmt trong dự án của riêng bạn.

🔧Tôi có thể tùy chỉnh tất cả quy tắc scalafmt ở đây không?

Công cụ này tập trung vào một hồ sơ hợp lý, có quan điểm thay vì tiết lộ mọi nút điều chỉnh scalafmt. Để kiểm soát hoàn toàn, hãy tạo tệp `.scalafmt.conf` trong dự án của bạn và chạy scalafmt qua sbt hoặc IDE của bạn.

🌐Nó có hỗ trợ cú pháp Scala 3 không?

Có. Trình định dạng được thiết kế để xử lý các tính năng hiện đại của Scala 3 như enum, given/using, phương thức mở rộng và hơn thế nữa, cùng với mã Scala 2 cổ điển.

🔒Mã Scala của tôi có được gửi đến máy chủ công cộng không?

Mã của bạn được gửi qua HTTPS đến một backend định dạng riêng tư dành riêng cho công cụ này và không được chia sẻ hoặc lập chỉ mục. Đối với mã bảo mật cao hoặc độc quyền, bạn có thể chạy scalafmt cục bộ thay thế.

⚙️Định dạng có thay đổi cách chương trình Scala của tôi hoạt động không?

Trình định dạng được thiết kế để chỉ thay đổi khoảng trắng và bố cục, không phải ngữ nghĩa. Tuy nhiên, như với bất kỳ thay đổi định dạng lớn nào, việc chạy bộ kiểm tra của bạn sau đó là một thực hành tốt.

Pro Tips

Best Practice

Giữ tệp `.scalafmt.conf` trong kho của bạn để trình soạn thảo, CI và `sbt scalafmt` đều sử dụng cùng một phong cách.

Best Practice

Thực hiện một commit "chỉ định dạng" chuyên dụng trước khi tái cấu trúc để các diff sau tập trung vào thay đổi mã thực sự, không phải khoảng trắng.

Best Practice

Sử dụng chiều rộng dòng tối đa nhất quán trong nhóm của bạn để tránh diff ồn ào và phong cách xung đột.

Best Practice

Khi giảng dạy, hãy hiển thị Scala lộn xộn trước, sau đó là phiên bản đã định dạng để làm nổi bật cách bố cục cải thiện khả năng đọc.

Additional Resources

Other Tools