iOS程式碼規範工具 SwiftLint SwiftFormat

語言: CN / TW / HK

SwiftLint

強制檢查 Swift 程式碼風格和規定的工具,以 Ray Wenderlich's Swift 程式碼風格指南為基礎。

官方文件中文版

安裝

Swift支援全域性安裝和專案安裝,全域性安裝詳見官方文件,下面只貼用到的方式。

1、CocoaPods安裝

pod 'SwiftLint'

2、新增指令碼

"${PODS_ROOT}/SwiftLint/swiftlint"

3、配置 .swiftlint.yml 檔案

建立一個命名為 .swiftlint.yml 的配置檔案,放在 根目錄 即可,執行會遞迴子資料夾

現有的配置檔案裡大部分有註解和說明,預設配置詳見官方連結,規則明細在這裡

4、在程式碼內控制規則開關

當前檔案忽略指定規則,在檔案頂部加入註釋

``` // swiftlint:disable xxxx

xxxx 替換規則名,exmple: // swiftlint:disable file_length ```

通過註釋開關指定規則

// swiftlint:disable function_body_length func testFunction() { // swiftlint:enable function_body_length }

通過新增引數指定程式碼行,開關指定規則

  • :previous,前一行
  • :this ,當前行
  • :next ,後一行

// swiftlint:disable:next cyclomatic_complexity func testFunc() { …… …… }

使用

執行檢查

./Pods/SwiftLint/swiftlint lint

自動修復

./Pods/SwiftLint/swiftlint --fix

SwiftFormat

SwfitFormat 是快捷格式化 Swift 程式碼的工具。

官方文件

可支援格式化規則

安裝

官方給出了多種安裝和使用的方式,最終決定使用全域性安裝的方式,考慮如下:

  • SwiftFormat 其實具備 Lint 功能,但是規則覆蓋度和知名度上不如 SwiftLint;

所以規則選擇使用SwiftLint 限制。

  • 但是 SwiftLint的自動修復不能覆蓋所有問題修復(例如單行長度的限制)

Format 正好可以方便的解決這部分問題,所以選擇雙管齊下

  • Format作為 Lint 的補充和修復工具,所以輕量配置使用一下就行。

全域性安裝

brew install swiftformat

安裝 Xcode 外掛

brew install --cask swiftformat-for-xcode open "/Applications/SwiftFormat For Xcode.app"

開啟 SwiftFormat For Xcode.app 後,

會自動安裝到 Xcode,重啟Xcode生效。

重啟後在 Editor 選單下能看到 SwiftFormat,安裝成功。

配置自動格式化

最簡單的使用就是通過上圖的選單點選即可,官方文件裡還有各種不同的觸發方式。

而作為開發者更希望在日常開發中,可以不知不覺地實現格式化。

使用Automator 可以實現這個操作,這是一款系統軟體。

中文名是自動操作,搜一下就出來了。

工作流程選沒有輸入,位於選擇Xcode

複製指令碼替換

on run {input, parameters} tell application "System Events" tell process "Xcode" set frontmost to true if menu item "Format File" of menu of menu item "SwiftFormat" of menu "Editor" of menu bar 1 exists then click menu item "Format File" of menu of menu item "SwiftFormat" of menu "Editor" of menu bar 1 end if click menu item "Save" of menu "File" of menu bar 1 end tell end tell return input end run

點選build之後程式碼會高亮,接下來儲存下來

回到XcodeServices 選單下看到剛剛儲存填寫的名字SwiftFormat

iShot_2022-11-30_16.41.18.png

系統偏好設定 -> 安全性與隱私 -> 輔助功能 ,新增Xcode控制權限

系統設定裡面給Xcode新增一個和儲存一樣的快捷鍵,這樣就可以在每次儲存的時候自動觸發。

匯出 / 匯入規則檔案

command + S 就可以匯出配置檔案

匯入的時候如果出現找不到可配置的規則,就在配置檔案裡面搜尋關鍵字,然後刪掉