इस प्रोजेक्ट के बारे में

GDScript फ़ॉर्मेटर एक कमांड-लाइन टूल है जो Godot 4 के लिए GDScript फ़ाइलों को फ़ॉर्मेट और लिंट करता है। यह Tree-sitter GDScript पार्सर पर बनाया गया है और आधिकारिक GDScript स्टाइल गाइड का पालन करने का लक्ष्य रखता है। परियोजना बताती है कि इसका उपयोग उस पार्सर का परीक्षण और सुधार करने के लिए किया जाता है जो Zed, Helix, Neovim और Emacs जैसे एडिटरों में GDScript समर्थन को शक्ति प्रदान करता है। फ़ॉर्मेटिंग क्षमताओं में एकल फ़ाइलों, फ़ोल्डरों या कई पथों पर चलाना, जगह पर फ़ॉर्मेट करना या stdout पर प्रिंट करना, कॉन्फ़िगर करने योग्य अधिकतम लाइन लंबाई के साथ स्वचालित लाइन रैपिंग, और स्टाइल गाइड से मेल खाने के लिए कोड को पुनः क्रमबद्ध करना (पहले चर, फिर फ़ंक्शन, आदि) शामिल है। एक चेक मोड निकास कोड 1 लौटाता है जब परिवर्तन आवश्यक होते हैं, जो बिल्ड सिस्टम में उपयोग के लिए है। एक सुरक्षित मोड और एक --verify-structure फ़्लैग फ़ॉर्मेट किए गए आउटपुट को फिर से पार्स करते हैं और इसे अस्वीकार करते हैं यदि संरचना इनपुट से भिन्न होती है; README नोट करता है कि यह एक अपूर्ण जाँच है, शब्दार्थ समानता की गारंटी नहीं है। कॉन्फ़िगरेशन रिक्त स्थान बनाम टैब, इंडेंटेशन आकार, परिभाषाओं के आसपास खाली लाइनें, उद्धरण शैली सामान्यीकरण, और अधिक का समर्थन करता है। सेटिंग्स को .editorconfig फ़ाइल के माध्यम से मानक कुंजियों के साथ-साथ gdscript_formatter_ उपसर्ग वाली कुंजियों का उपयोग करके साझा किया जा सकता है; कमांड-लाइन फ़्लैग EditorConfig मानों को ओवरराइड करते हैं। फ़ाइलों या निर्देशिकाओं को --exclude या gdscript_formatter_exclude के माध्यम से बाहर रखा जा सकता है। कोड के अनुभागों को # fmt: off और # fmt: on टिप्पणियों के साथ संरक्षित किया जा सकता है। बंडल किया गया लिंटर शैली और परंपरा मुद्दों की जाँच करता है और filepath:line:rule:severity: description आउटपुट करता है। नियम नामकरण परंपराओं (फ़ंक्शन, कक्षाएं, सिग्नल, चर, तर्क, लूप चर, एनम, स्थिरांक), डुप्लिकेट लोड कॉल, स्टैंडअलोन अभिव्यक्तियाँ, अनावश्यक pass, अप्रयुक्त तर्क, आत्म-तुलना, निजी पहुंच, अधिकतम लाइन लंबाई, और return के बाद अनावश्यक else को कवर करते हैं। नियमों को अक्षम किया जा सकता है, और विशिष्ट लाइनों को gdlint-ignore टिप्पणियों के साथ अनदेखा किया जा सकता है। एक --pretty फ़्लैग अधिक पठनीय आउटपुट प्रदान करता है। स्थापना रिलीज़ पृष्ठ से Windows, macOS और Linux के लिए पूर्व-निर्मित बाइनरी के माध्यम से है, जिसमें Arch Linux (AUR), Windows (Scoop, WinGet) के लिए सामुदायिक पैकेज और एक GitHub Actions सेटअप क्रिया शामिल है। एडिटर में सीधे उपयोग के लिए एक Godot 4 ऐड-ऑन उपलब्ध है, जिसमें EditorConfig के माध्यम से नियंत्रित फ़ॉर्मेट-ऑन-सेव शामिल है। VSCode, Zed, Helix, JetBrains Rider और Sublime Text के लिए एडिटर एकीकरण प्रलेखित हैं। कमिट से पहले फ़ॉर्मेटर और लिंटर चलाने के लिए एक pre-commit हुक कॉन्फ़िगरेशन प्रदान किया गया है। परियोजना Rust में लिखी गई है और cargo के साथ बनाई गई है। इसकी संरचना फ़ॉर्मेटिंग नियमों, रेंडरिंग और लाइन रैपिंग, कोड पुनः क्रमबद्धता, सुरक्षित मोड, EditorConfig समर्थन और लिंटर नियमों को अलग करती है। परीक्षण इनपुट/अपेक्षित फ़ाइल जोड़े का उपयोग करते हैं, और बेंचमार्क और प्रोफाइलिंग स्क्रिप्ट शामिल हैं। README Tree-sitter के साथ पार्सिंग, एक मध्यवर्ती प्रतिनिधित्व बनाने और अंतिम आउटपुट प्रस्तुत करने की तीन-चरणीय पाइपलाइन का दस्तावेजीकरण करता है। परियोजना MIT लाइसेंस प्राप्त है।