প্রকল্প সম্পর্কে
SwiftFormat হলো macOS, Linux বা Windows-এ Swift কোড পুনর্বিন্যাস করার জন্য একটি কোড লাইব্রেরি এবং কমান্ড-লাইন টুল। সাধারণ হোয়াইটস্পেস সমন্বয়ের বাইরেও, এটি অন্তর্নিহিত `self` সন্নিবেশ বা অপসারণ করতে পারে, অপ্রয়োজনীয় বন্ধনী অপসারণ করতে পারে এবং স্ট্যান্ডার্ড Swift ইডিয়ম থেকে আরও অনেক বিচ্যুতি সংশোধন করতে পারে।
প্রকল্পটির ঘোষিত প্রেরণা হলো একটি সাধারণ কোডিং স্টাইলে সম্মত হওয়া সহযোগিতায় সহায়তা করে, কিন্তু এটি ম্যানুয়ালি প্রয়োগ করা ক্লান্তিকর এবং ত্রুটিপূর্ণ। একটি স্বয়ংক্রিয় ফরম্যাটার দলগুলিকে উপস্থাপনার বদলে কোডের আচরণে মনোযোগ দিতে দেয়।
এটি ব্যবহারের উপায়:
- কমান্ড-লাইন টুল, ম্যানুয়ালি বা একটি টুলচেইনের অংশ হিসেবে চালান
- Xcode Source Editor Extension, Editor > SwiftFormat মেনুর মাধ্যমে আহ্বান করা হয়
- Xcode বিল্ড ফেজ, প্রতিটি বিল্ডে চালানো হয়
- Git প্রি-কমিট হুক, কমিটের আগে পরিবর্তিত ফাইল ফরম্যাট করা
- Swift Package Manager কমান্ড প্লাগইন (Swift 5.6+)
- VSCode (Run on Save-এর মাধ্যমে), Sublime Text, এবং Nova-র জন্য ইন্টিগ্রেশন
- GitHub Actions, CI-তে Danger, Bazel, Docker, এবং AppleScript
ইনস্টলেশনের বিকল্পগুলির মধ্যে রয়েছে Homebrew (`brew install swiftformat`), Mint, Nix/nixpkgs, CocoaPods, Package.swift-এ একটি বাইনারি artifactbundle, অথবা `swift build -c release` দিয়ে ম্যানুয়ালি বিল্ড করা। Xcode এক্সটেনশনটি একটি Homebrew cask হিসেবে বা GitHub Releases থেকে পাওয়া যায়।
মৌলিক ব্যবহার হলো `swiftformat .` যা বর্তমান ডিরেক্টরির Swift ফাইলগুলি ফরম্যাট করে। README সতর্ক করে যে এটি ফাইলগুলি সরাসরি ওভাররাইট করে, তাই ব্যবহারকারীদের প্রথমে পরিবর্তনগুলি কমিট করা উচিত; `--infer-options` একটি বিদ্যমান প্রকল্পের স্টাইলের সাথে মেলে এমন সেটিংস সুপারিশ করতে পারে। স্ট্যান্ডার্ড ইনপুট/আউটপুট পাইপিং সমর্থিত, যার মধ্যে ফাইলের অবস্থান প্রসঙ্গ সরবরাহের জন্য `--stdin-path` অন্তর্ভুক্ত।
কনফিগারেশন অপশন, নিয়ম, Swift সংস্করণ, একটি `.swiftformat` কনফিগ ফাইল, গ্লোব, লিন্টিং মোড, ত্রুটি কোড, ক্যাশিং, ফাইল হেডার এবং Markdown ফরম্যাটিং কভার করে। README-তে একটি FAQ, পরিচিত সমস্যা, একটি টিপ জার এবং কৃতিত্বও রয়েছে। প্রকল্পটি MIT লাইসেন্সের অধীনে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.