প্রকল্প সম্পর্কে

GDScript Formatter হল একটি কমান্ড-লাইন টুল যা 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 লাইসেন্সযুক্ত।