Loading…

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

کد راست خود را جایگذاری کنید، اندازه تورفتگی یا طول خط را تنظیم کرده و روی "فرمت" کلیک کنید تا خروجی ایدیوماتیک با سبک rustfmt را فوری دریافت کنید. عالی برای Rustaceans که روی کرت‌ها، APIها، میکروسرویس‌ها، CLIها یا پروژه‌های یادگیری کار می‌کنند. بدون ثبت‌نام، بدون جهنم پیکربندی — فقط راست تمیز.

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

  • فرمت‌بندی با سبک rustfmt برای کد راست ایدیوماتیک
  • اندازه تورفتگی قابل تنظیم و حداکثر عرض خط (ستون پیچش)
  • فرمت‌بندی idempotent – فرمت‌بندی مجدد همان فایل نتیجه یکسان می‌دهد
  • تغییرات فقط در چیدمان: تورفتگی، فاصله‌گذاری و شکست خط، نه منطق
  • عالی کار می‌کند با فایل‌های مستقل `.rs` و ماژول‌های کرت
  • کد از طریق بک‌اند فرمت‌بندی امن پردازش می‌شود – بدون اشتراک‌گذاری عمومی یا ایندکس کردن
  • رابط کاربری واکنش‌گرا که با تم‌های تاریک/روشن ویرایشگر به خوبی کار می‌کند

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

1

1. کد Rust خود را پیست یا آپلود کنید

📥 کد Rust خود را در ویرایشگر پیست کنید یا یک فایل `.rs` را از پروژه خود بکشید و رها کنید. ابزار نحو Rust را تشخیص داده و برای بازرسی آسان تر آن را برجسته می‌کند.

2

2. تورفتگی و طول خط را تنظیم کنید

📏 از پنل گزینه‌ها برای انتخاب **اندازه تورفتگی** (مثلاً ۲ یا ۴ فاصله) و **طول خط بسته‌بندی** (برای زنجیره‌های طولانی یا عبارات پیچیده) استفاده کنید. اگر ترجیح می‌دهید عرض خطوط موجود حفظ شود، بسته‌بندی را روی `0` تنظیم کنید.

3

3. روی "فرمت" کلیک کنید

🚀 دکمه **فرمت** را بزنید. کد شما به یک فرمت‌کننده سبک rustfmt ارسال می‌شود که تورفتگی، فاصله‌ها، خطوط خالی و بسته‌بندی را بدون تغییر رفتار نرمال می‌کند.

4

4. بررسی، کپی یا دانلود

📤 قبل/بعد را مقایسه کنید، سپس کد فرمت شده را به ویرایشگر خود برگردانید یا نتیجه را به عنوان یک فایل `.rs` دانلود کنید. آماده برای `cargo build`، `cargo test` و بررسی کد.

مشخصات فنی

موتور فرمت‌دهی و سبک

فرمت‌کننده از فرمت‌دهی سبک rustfmt و نظرگرا پیروی می‌کند، بنابراین کد شما در بین فایل‌ها و مشارکت‌کنندگان شبیه Rust اصیل به نظر می‌رسد.

جنبهرفتاریادداشت‌ها
تورفتگیقابل پیکربندی، معمولاً ۲–۴ فاصله در هر سطحتب‌ها به فاصله نرمال می‌شوند تا با سبک رایج Rust در بسیاری از پروژه‌ها مطابقت داشته باشند.
آکولادها و بلوک‌هاجایگذاری و تورفتگی یکنواخت برای `fn`، `impl`، `match`، `if`، `loop`…به خوانایی کنترل جریان تو در تو و عبارات match کمک می‌کند.
فاصله‌گذاریفاصله‌های اضافی اطراف عملگرها و علائم نگارشی را پاک می‌کندفاصله‌گذاری `let`، `match`، closureها و genericها را استاندارد می‌کند.
خطوط خالیبین آیتم‌ها (توابع، ساختارها، بلوک‌های impl) نرمال شدهجداسازی بصری ماژول‌ها و سطوح API را بهبود می‌بخشد.
همتوانیورودی یکسان → خروجی یکسان وقتی قبلاً فرمت شده باشداجرای مجدد فرمتر همیشه ایمن و پایدار است.

اندازه تورفتگی و شکستن خط

می‌توانید عرض تورفتگی و شکستن خط را متناسب با قراردادهای تیم خود تنظیم کنید.

تنظیممحدوده مقداراثر
indentSize۱–۸ فاصلهمیزان تورفتگی هر بلوک تودرتو را کنترل می‌کند.
wrapLineLength = 0بدون شکستن خط بر اساس طولعرض خط فعلی شما را حفظ می‌کند (برای اصلاحات سریع مفید است).
wrapLineLength = 80–100ترجیحات معمول تیم Rustکد را فشرده نگه می‌دارد در حالی که خوانایی بالایی دارد.
wrapLineLength = 101–120چیدمان بازتربرای مانیتورهای فوق عریض یا کدهای اکتشافی مناسب است.

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

ساخته شده برای گردش کارهای روزمره توسعه Rust.

پارامترمحدودیت / رفتاریادداشت‌ها
پسوند فایل.rsفایل‌های منبع برای crateها، باینری‌ها، ماژول‌ها و مثال‌ها.
انواع MIMEtext/x-rustsrcبرای هایلایت سینتکس و حالت ویرایشگر به صورت داخلی استفاده می‌شود.
حداکثر اندازه ورودی≈ ۲ مگابایت کد منبع Rustفایل‌های بسیار بزرگ یا تولید شده بهتر است از طریق `cargo fmt` روی دستگاه شما پردازش شوند.
رمزگذاریUTF-8 توصیه می‌شودورودی‌های غیر UTF-8 باید قبل از فرمت شدن تبدیل شوند.

اجرا و ایمنی

فرمت‌دهی در یک بک‌اند امن با استفاده از یک فرمتر آگاه از Rust اجرا می‌شود.

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

نمونه‌های CLI rustfmt & cargo fmt

می‌خواهید همان سبک را مستقیماً در ویرایشگر، CI یا ترمینال خود داشته باشید؟ از `rustfmt` یا `cargo fmt` به صورت محلی استفاده کنید:

چندسکویی (از طریق زنجیره ابزار Rust)

قالب‌بندی کل کرت

cargo fmt

rustfmt را روی تمام فایل‌های `.rs` در کرت شما مطابق با `rustfmt.toml` اجرا می‌کند.

قالب‌بندی یک فایل واحد

rustfmt src/main.rs

قوانین rustfmt را روی یک فایل به صورت درجا اعمال می‌کند.

استفاده از حداکثر عرض سفارشی

rustfmt --config max_width=100 src/lib.rs

ستون پیش‌فرض پیچیدن را نادیده می‌گیرد (مشابه طول خط پیچیدن این ابزار).

`cargo fmt` را به CI و هوک‌های پیش‌از کامیت خود اضافه کنید تا هر کامیت در سراسر تیم به صورت یکنواخت قالب‌بندی شود.

موارد استفاده رایج برای قالب‌بند Rust

توسعه کرت و کتابخانه

کرت‌های عمومی، کتابخانه‌های داخلی و میکروسرویس‌های خود را تمیز و یکنواخت نگه دارید.

  • نرمال‌سازی قالب‌بندی قبل از انتشار در crates.io.
  • یکنواخت کردن بصری مشارکت‌های چندین توسعه‌دهنده.
  • اجرای بازآرایی‌های بزرگ و سپس قالب‌بندی خودکار برای پاک‌سازی چیدمان.
pub fn add(a: i32,b:i32)->i32{a+b}
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

ابزارهای CLI و اتوماسیون

ابزارهای CLI مختصر و قابل نگهداری، اسکریپت‌ها و ابزارهای توسعه را قالب‌بندی کنید.

  • قابل خواندن نگه داشتن بلوک‌های تجزیه آرگومان و مدیریت خطا.
  • پاک‌سازی زنجیره‌های طولانی `match` و مدیریت گزینه‌ها.
  • اطمینان از اینکه ابزارهای داخلی با گذشت زمان به راحتی قابل گسترش باقی می‌مانند.

یادگیری و آموزش Rust

Rust ایدئوماتیک را بدون بحث‌های بی‌ثمر درباره سبک به دانش‌آموزان نشان دهید.

  • قالب‌بندی مثال‌ها قبل از اشتراک‌گذاری در اسلایدها یا آموزش‌ها.
  • مقایسه کدهای نامرتب و قالب‌بندی شده Rust برای آموزش بهترین روش‌ها.
  • قالب‌بندی خودکار ارسال‌های دانش‌آموزان قبل از بررسی منطق.
fn fibonacci(n:u32)->u32{if n<2{n}else{fibonacci(n-1)+fibonacci(n-2)}}
fn fibonacci(n: u32) -> u32 {
    if n < 2 {
        n
    } else {
        fibonacci(n - 1) + fibonacci(n - 2)
    }
}

❓ Frequently Asked Questions

آیا این قالب‌بند Rust رفتار کد من را تغییر می‌دهد؟

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

📏چگونه باید طول خط را انتخاب کنم؟

بسیاری از تیم‌های Rust از 80 یا 100 کاراکتر به عنوان تعادل خوبی بین خوانایی و فشردگی استفاده می‌کنند. شما می‌توانید هر مقداری بین 0 تا 120 را در این ابزار انتخاب کنید. مهم‌ترین بخش این است که یک مقدار را انتخاب کرده و به طور یکسان در پروژه خود استفاده کنید.

🧹آیا قالب‌بند فضاهای خالی انتهایی را حذف می‌کند؟

بله، قالب‌بندی معمول به سبک rustfmt فضاهای خالی انتهایی را حذف کرده و فاصله‌گذاری را نرمال می‌کند. این کار diffهای شما را تمیز نگه می‌دارد و از نویزهای غیرضروری در درخواست‌های pull جلوگیری می‌کند.

🔒آیا قالب‌بندی کد Rust تولیدی در اینجا امن است؟

کد شما به صورت امن به یک بک‌اند قالب‌بندی ارسال می‌شود و منتشر یا فهرست‌بندی نمی‌شود. با این حال، برای سیستم‌های بسیار حساس یا اختصاصی، ممکن است ترجیح دهید `rustfmt` یا `cargo fmt` را روی زیرساخت خود اجرا کنید.

⚙️این ابزار چگونه به rustfmt و cargo fmt مرتبط است؟

این قالب‌بند آنلاین هدفش مطابقت با رفتار rustfmt است تا بتوانید قالب‌بندی را نمونه‌سازی کرده و سپس برای کل پایگاه کد خود به `cargo fmt` محلی یا در CI تکیه کنید. برای بهترین نتایج، تنظیمات `rustfmt.toml` خود را با گزینه‌هایی که در اینجا استفاده می‌کنید هماهنگ کنید.

Pro Tips

Best Practice

یک `rustfmt.toml` در ریشه crate خود اضافه کنید تا `cargo fmt` محلی و این قالب‌بند آنلاین در عرض و فاصله‌گذاری هماهنگ بمانند.

CI Tip

این ابزار را با یک کار CI که `cargo fmt -- --check` را اجرا می‌کند ترکیب کنید تا از ورود کدهای قالب‌بندی نشده به شاخه اصلی جلوگیری کنید.

Best Practice

قبل از بازآرایی‌های بزرگ، یک commit (یا PR) اختصاصی برای قالب‌بندی اجرا کنید تا diffهای آینده بر تغییرات منطقی واقعی متمرکز شوند.

Best Practice

برای آموزش و مستندسازی از طول خطوط کوتاه‌تر (90-80) استفاده کنید؛ در ابزارهای داخلی اگر تیم شما ترجیح می‌دهد کمی پهن‌تر بروید.

Additional Resources

Other Tools