منصوبے کے بارے میں

GDScript Formatter ایک کمانڈ لائن ٹول ہے جو Godot 4 کے لیے GDScript فائلوں کو فارمیٹ اور لنٹ کرتا ہے۔ یہ Tree-sitter GDScript پارسر پر بنایا گیا ہے اور سرکاری GDScript اسٹائل گائیڈ کی پیروی کرنے کا ہدف رکھتا ہے۔ پروجیکٹ کے مطابق یہ اس پارسر کو جانچنے اور بہتر بنانے کے لیے استعمال ہوتا ہے جو Zed، Helix، Neovim اور Emacs جیسے ایڈیٹرز میں GDScript سپورٹ فراہم کرتا ہے۔ فارمیٹنگ کی صلاحیتوں میں ایک فائل، فولڈر یا متعدد راستوں پر چلانا، اپنی جگہ فارمیٹ کرنا یا stdout پر پرنٹ کرنا، قابل ترتیب زیادہ سے زیادہ لائن لمبائی کے ساتھ خودکار لائن ریپنگ، اور اسٹائل گائیڈ کے مطابق کوڈ کی دوبارہ ترتیب (پہلے ویری ایبلز، پھر فنکشنز وغیرہ) شامل ہیں۔ ایک چیک موڈ تبدیلیوں کی ضرورت ہونے پر exit code 1 واپس کرتا ہے، جو بلڈ سسٹمز میں استعمال کے لیے ہے۔ ایک سیف موڈ اور --verify-structure فلیگ فارمیٹ شدہ آؤٹ پٹ کو دوبارہ پارس کرتے ہیں اور اگر ساخت ان پٹ سے مختلف ہو تو مسترد کر دیتے ہیں؛ README نوٹ کرتا ہے کہ یہ ایک نامکمل چیک ہے، معنوی برابری کی ضمانت نہیں۔ کنفیگریشن اسپیسز بمقابلہ ٹیبز، انڈینٹیشن سائز، تعریفات کے ارد گرد خالی لائنیں، کوٹ اسٹائل کی نارملائزیشن اور مزید کو سپورٹ کرتی ہے۔ سیٹنگز کو .editorconfig فائل کے ذریعے شیئر کیا جا سکتا ہے، معیاری کیز کے علاوہ gdscript_formatter_ پریفکس والی کیز کے ساتھ؛ کمانڈ لائن فلیگز EditorConfig اقدار کو اوور رائیڈ کرتے ہیں۔ فائلوں یا ڈائریکٹریز کو --exclude یا gdscript_formatter_exclude کے ذریعے خارج کیا جا سکتا ہے۔ کوڈ کے حصوں کو # fmt: off اور # fmt: on کمنٹس کے ذریعے محفوظ رکھا جا سکتا ہے۔ شامل لنٹر اسٹائل اور کنونشن کے مسائل کی جانچ کرتا ہے اور filepath:line:rule:severity: description آؤٹ پٹ دیتا ہے۔ قواعد میں نام رکھنے کے کنونشنز (فنکشنز، کلاسز، سگنلز، ویری ایبلز، آرگیومنٹس، لوپ ویری ایبلز، اینمز، کانسٹنٹس)، ڈپلیکیٹ load کالز، اسٹینڈ ا لون ایکسپریشنز، غیر ضروری pass، غیر استعمال شدہ آرگیومنٹس، خود سے موازنہ، پرائیویٹ ایکسیس، زیادہ سے زیادہ لائن لمبائی، اور return کے بعد غیر ضروری else شامل ہیں۔ قواعد کو غیر فعال کیا جا سکتا ہے، اور مخصوص لائنوں کو gdlint-ignore کمنٹس کے ذریعے نظر انداز کیا جا سکتا ہے۔ ایک --pretty فلیگ زیادہ پڑھنے کے قابل آؤٹ پٹ فراہم کرتا ہے۔ انسٹالیشن ریلیزز پیج سے Windows، macOS اور Linux کے لیے پہلے سے بنی بائنریز کے ذریعے ہے، Arch Linux (AUR)، Windows (Scoop، WinGet) کے لیے کمیونٹی پیکجز اور ایک GitHub Actions سیٹ اپ ایکشن کے ساتھ۔ ایک Godot 4 ایڈ آن براہ راست ایڈیٹر میں استعمال کے لیے دستیاب ہے، جس میں EditorConfig کے ذریعے کنٹرول ہونے والا format-on-save شامل ہے۔ ایڈیٹر انٹیگریشنز VSCode، Zed، Helix، JetBrains Rider اور Sublime Text کے لیے دستاویزی ہیں۔ کمیٹ سے پہلے فارمیٹر اور لنٹر چلانے کے لیے ایک pre-commit hook کنفیگریشن فراہم کی گئی ہے۔ پروجیکٹ Rust میں لکھا گیا ہے اور cargo کے ساتھ بنایا گیا ہے۔ اس کی ساخت فارمیٹنگ قواعد، رینڈرنگ اور لائن ریپنگ، کوڈ کی دوبارہ ترتیب، سیف موڈ، EditorConfig سپورٹ اور لنٹر قواعد کو الگ کرتی ہے۔ ٹیسٹس ان پٹ/متوقع فائل جوڑوں کا استعمال کرتے ہیں، اور بینچ مارکس اور پروفائلنگ اسکرپٹس شامل ہیں۔ README تین مرحلوں والے پائپ لائن کی دستاویز کرتا ہے: Tree-sitter کے ساتھ پارسنگ، ایک انٹرمیڈیٹ ریپریزنٹیشن بنانا، اور حتمی آؤٹ پٹ رینڈر کرنا۔ پروجیکٹ MIT لائسنس یافتہ ہے۔