Loading…

درباره فرمت‌دهنده اسکالا فرمت‌دهنده آنلاین کد اسکالا

کد اسکالای خود را جایگذاری کنید، «فرمت» را بزنید و خروجی تمیز، یکدست و سبک scalafmt را فوراً دریافت کنید. ایده‌آل برای سرویس‌های بک‌اند، خطوط داده، کتابخانه‌های FP و مثال‌های کلاسی. بدون نیاز به فایل‌های پیکربندی – فقط فرمت‌بندی مدرن و نظرورزانه اسکالا آماده برای بررسی و کامیت‌های git.

چرا از فرمت‌دهنده اسکالای ما استفاده کنیم

  • فوراً کد اسکالای بدون ساختار یا ناهمتراز را فرمت کنید
  • فاصله‌گذاری اطراف انواع، پارامترها و عملگرها را اصلاح کنید
  • سبک براکت‌ها را برای کلاس‌ها، آبجکت‌ها، صفت‌ها و متدها نرمال کنید
  • شکستن خطوط سبک scalafmt را برای عبارات طولانی و زنجیره‌های متد اعمال کنید
  • از فایل‌های `.scala`، اسکریپت‌های `.sc` و فایل‌های ساخت `.sbt` پشتیبانی می‌کند
  • کد از طریق یک بک‌اند امن فرمت می‌شود – به اشتراک گذاشته یا ایندکس نمی‌شود
  • رابط کاربری ویرایشگر واکنش‌گرا که روی لپ‌تاپ، دسکتاپ و تبلت کار می‌کند

🛠️ نحوه فرمت کردن کد اسکالا به صورت آنلاین for scala-formatter

1

۱. کد اسکالای خود را پیست یا بارگذاری کنید

📥 کد اسکالای خود را در ویرایشگر پیست کنید یا یک فایل `.scala`، `.sc` یا `.sbt` را کشیده و رها کنید. ویرایشگر برجسته‌سازی نحو اسکالا را اعمال می‌کند تا بتوانید به سرعت کد خود را مرور کنید.

2

۲. کلیک کنید "فرمت"

⚙️ دکمه **فرمت** را بزنید. کد شما از طریق HTTPS به یک فرمت‌کننده با سبک scalafmt ارسال می‌شود که فاصله‌ها، تورفتگی‌ها و شکستن خطوط را بدون تغییر معناشناسی بازآرایی می‌کند.

3

۳. نتیجه را مرور کنید

🔍 نسخه تمیز شده را با نسخه اصلی خود مقایسه کنید. آکولادها، فاصله‌ها و خطوط خالی نرمال شده‌اند تا ساختار کد شما آسان‌تر دنبال شود.

4

۴. کپی یا دانلود کنید

📤 کد فرمت شده اسکالا را به IDE خود برگردانید، یا آن را به عنوان یک فایل `.scala` آماده برای commit، بازبینی کد یا استقرار دانلود کنید.

مشخصات فنی

رفتار استایل‌دهی (سبک Scalafmt)

فرمت‌کننده هدفش بازتاب قراردادهای رایج scalafmt است تا کد شما در پروژه‌های مدرن اسکالا اصیل به نظر برسد.

جنبهرفتاریادداشت‌ها
تورفتگی و آکولادهاتورفتگی یکنواخت برای `class`، `object`، `trait`، `def`، `if`، `match` و `for`جریان کنترل تودرتو و تطابق الگو را آسان‌تر برای خواندن می‌کند.
فاصله‌گذاری نوع و پارامترفاصله‌های اطراف دونقطه، فلش‌ها و لیست پارامترها را نرمال می‌کندبرای مثال: `def f(x: Int): String` به جای `def f(x:Int):String`.
واردات و بسته‌هابلوک‌های package و import را ساختارمند و جدا از تعاریف نگه می‌داردپیمایش و یکنواختی در بین فایل‌ها را بهبود می‌بخشد.
خطوط خالیخطوط خالی اطراف تعاریف سطح بالا را استاندارد می‌کندبخش‌های منطقی مانند مدل‌ها، سرویس‌ها و کمک‌کننده‌ها را جدا می‌کند.
هم‌توانیاجرای فرمت‌کردن چندین بار نتیجه یکسانی می‌دهدامن برای قالب‌بندی مجدد به هر تعداد که بخواهید بدون انحراف از سبک.

سازگاری نسخه اسکالا

قالب‌بند برای هر دو نحو اسکالا ۲ و اسکالا ۳ طراحی شده است.

ویژگیپشتیبانییادداشت‌ها
اسکالا ۲.x✅ بلهبا الگوهای رایج مانند implicitها، اشیاء همراه، و for-comprehensionهای کلاسیک کار می‌کند.
اسکالا ۳ (Dotty)✅ بلهgiven/using، متدهای توسعه، enumها و سایر ساختارهای اسکالا ۳ را درک می‌کند.
فایل‌های ساخت SBT✅ بلهفایل‌های `.sbt` مورد استفاده در ساخت‌ها و تعاریف وابستگی را قالب‌بندی می‌کند.

ورودی‌های پشتیبانی‌شده و محدودیت‌ها

بهینه‌شده برای فایل‌های پروژه واقعی، نه فقط قطعات کد کوچک.

پارامترمحدودیت / رفتاریادداشت‌ها
پسوند فایل‌ها.scala, .sc, .sbtفایل‌های منبع، اسکریپت‌ها و تعاریف ساخت.
انواع MIMEtext/x-scalaبرای برجسته‌سازی نحو به صورت داخلی استفاده می‌شود.
حداکثر اندازه ورودی≈ ۲ مگابایت کد منبعکدهای بسیار بزرگ تولیدشده بهتر است از طریق scalafmt محلی قالب‌بندی شوند.
رمزگذاریUTF-8 توصیه می‌شودمحتوای غیر UTF-8 باید قبل از قالب‌بندی تبدیل شود.

اجرا و امنیت

قالب‌بندی از طریق یک بک‌اند خصوصی و امن به جای سرویس‌های عمومی و شخص ثالث انجام می‌شود.

جنبهرفتاریادداشت‌ها
انتقالتماس‌های HTTPS با API قالب‌بندی اسکالاکد شما به صورت امن منتقل می‌شود و به صورت عمومی در معرض دید قرار نمی‌گیرد.
زمان‌اتمام~۲۵ ثانیه برای هر درخواستاز اجرای طولانی‌مدت یا گیر کردن کارهای قالب‌بندی روی ورودی‌های مشکل‌دار جلوگیری می‌کند.
معناشناسیتبدیل‌های فقط مربوط به چیدمانقالب‌بند فقط فاصله‌های سفید و چیدمان را تغییر می‌دهد، نه منطق برنامه شما.

استفاده از 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 یا به اشتراک‌گذاری مثال‌ها.
  • نرمال‌سازی قالب پس از بازطراحی‌های بزرگ یا مهاجرت‌های کتابخانه.
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 فرمت‌کننده استاندارد کد برای اسکالا است. این فرمت‌کننده آنلاین هدفش دنبال کردن رفتار scalafmt است تا چیدمانی که اینجا می‌بینید نزدیک به چیزی باشد که هنگام اجرای scalafmt یا sbt-scalafmt در پروژه خودتان دریافت می‌کنید.

🔧آیا می‌توانم تمام قوانین scalafmt را اینجا سفارشی کنم؟

این ابزار بر روی یک پروفایل منطقی و نظرمحور تمرکز دارد به جای آشکار کردن تمام تنظیمات scalafmt. برای کنترل کامل، یک فایل `.scalafmt.conf` در پروژه خود ایجاد کنید و scalafmt را از طریق sbt یا IDE خود اجرا کنید.

🌐آیا از سینتکس اسکالا ۳ پشتیبانی می‌کند؟

بله. این فرمت‌کننده برای مدیریت ویژگی‌های مدرن اسکالا ۳ مانند enumها، given/using، متدهای extension و موارد بیشتر، در کنار کد کلاسیک اسکالا ۲ طراحی شده است.

🔒آیا کد اسکالای من به سرور عمومی ارسال می‌شود؟

کد شما از طریق HTTPS به یک بک‌اند فرمت‌کننده خصوصی که مختص این ابزار است ارسال می‌شود و به اشتراک گذاشته یا ایندکس نمی‌شود. برای کدهای بسیار محرمانه یا اختصاصی، می‌توانید scalafmt را به صورت محلی اجرا کنید.

⚙️آیا فرمت‌کردن رفتار برنامه اسکالای من را تغییر می‌دهد؟

این فرمت‌کننده طراحی شده تا فقط فاصله‌ها و چیدمان را تغییر دهد، نه معناشناسی را. با این حال، مانند هر تغییر فرمت بزرگ دیگری، خوب است که پس از آن مجموعه تست خود را اجرا کنید.

Pro Tips

Best Practice

یک فایل `.scalafmt.conf` در مخزن خود نگه دارید تا ویرایشگر، CI و `sbt scalafmt` شما همه از یک سبک استفاده کنند.

Best Practice

قبل از بازآرایی‌ها، یک کامیت اختصاصی "فقط فرمت" اجرا کنید تا diffهای بعدی بر روی تغییرات واقعی کد متمرکز شوند، نه فاصله‌ها.

Best Practice

از یک عرض خط حداکثر ثابت در تیم خود استفاده کنید تا از diffهای پرسر و صدا و سبک‌های متضاد جلوگیری کنید.

Best Practice

هنگام تدریس، ابتدا اسکالای به هم ریخته را نشان دهید، سپس نسخه فرمت شده را برای برجسته کردن چگونگی بهبود خوانایی توسط چیدمان.

Additional Resources

Other Tools