SwiftFormat可以幫助開發者自動的糾正一些代碼規范問題,并且可以一定程度的幫助我們優化代碼、統一代碼風格。比如,幫助我們調整空格、縮緊,移除隱式的self調用等等。更加詳細的規則可以參考這里。
一、可以通過以下幾種方式進行安裝
1.1、命令行工具
可以通過HomeBrew來安裝
brew install swiftformat
也可以通過Mint來安裝運行
mint install nicklockwood/SwiftFormat
mint run swiftformat
當然,也可以通過clone代碼,然后手動編譯
git clone https://github.com/nicklockwood/SwiftFormat
cd SwiftFormat
swift build -c release
通過上述方法安裝完成后,進入項目文件夾根目錄,執行命令行:
swiftformat .
那么會重新編排該目錄下的所有文件。當然,更為穩妥的方式是進入需要編排的文件目錄并執行命令。
1.2、擴展Xcode的source editor
通過HomeBrew執行命令:
brew install --cask swiftformat-for-xcode
通過這種方式可以講swiftformat擴展為Xcode的一項功能,可以在Xcode Editor menu中找到并運行。
1.3、通過為Xcode添加運行腳本
通過homebrew安裝了swiftformat后,在Xcode的 Run Script build phase添加以下腳本
if which swiftformat >/dev/null; then
swiftformat .
else
echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat"
fi
或者也可通過Cocoapods進行安裝并添加依賴腳本
“${PODS_ROOT}/SwiftFormat/CommandLineTool/swiftformat” "$SRCROOT"
二、規則添加
同樣的,我們也可以對規則進行添加和修改,通過 --disable
和 --enable
標識。
例如:
--disable redundantSelf,trailingClosures
--enable isEmpty
或者針對多條規則:
--disable indent
--disable linebreaks
--disable redundantSelf
可以這樣表示:
--disable \
indent, \
linebreaks, \
redundantSelf
或者有時我們只需要支持某些rules時:
--rules indent,linebreaks
除此之外,如果在代碼中需要某些規則不對某段代碼生效的話,可以做如下注釋:
// swiftformat:disable <rule1> [<rule2> [rule<3> ...]]
三、規則自定義配置文件
通過上面介紹的規則,我們可以實現自定義的需求,但是更為方便的辦法是通過一個配置文件來統一管理我們的自定義規則。
通過創建一個隱式文件 .swiftformat
,可以在里面根據需求自定義規則。
注意:該文件的位置,一般建議放到項目文件夾的根目錄。因為
.swiftformat文件有相應的作用區間,如果未特別指明path時,則默認作用在當前父目錄下的所有swift文件
# format options
--allman true
--indent tab # tabs FTW!
# file options
--exclude Pods
# rules
--disable elseOnSameLine,semicolons