標籤:ios 格式化
雖然在項目建立和團隊組建的初期,我們就把公用約定以及一些規範定下來了,並且由於我們的代碼是通過Git來做版本控制的,web上直接就支援Markdown格式的readme檔案,可以隨時看到最新的版本,但是這種規範只能依靠個人的意識,或者通過代碼Review來解決,而且做代碼Review的時候,你也不好意思總是寫上一堆諸如“這裡要加個空格”、“那裡要加上換行”的評論吧?如果不管,久而久之,會因為每個人的習慣不同,代碼呈現出多種風格,看起來也不像一個成熟團隊做出來的產品。
為了彌補Xcode代碼格式化的短板,我們選擇了引入一個第三方的外掛程式:CLangFormat。
具體流程:
1. 先安裝Package Manager(也可以跳過,看第2步)
官網地址:https://github.com/supermarin/Alcatraz
安裝方法:在終端輸入:curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
安裝成功後在Xcode的Window裡能看到“Package Manager”
2. 安裝CLangFormat
GitHub地址:https://github.com/travisjeffery/ClangFormat-Xcode
安裝方法:直接在Package Manager裡搜尋並安裝,如果不想安裝Package Manager的話,就直接把上面那個GitHub中的代碼Clone下來,在Xcode中編譯、運行,然後重啟Xcode即可。
3. 配置CLangFormat
雖然CLangFormat本身就內建了一些標準化的代碼格式化方案,但是同樣可以自訂,我們就採用了自訂的方法。
具體的,在工程目錄或者workspace目錄下建立一個".clang-format"檔案,添加類似於以下內容的參數:
# 基礎樣式BasedOnStyle: LLVM# 縮排寬度IndentWidth: 4# 圓括弧的換行方式BreakBeforeBraces: Attach# 支援一行的ifAllowShortIfStatementsOnASingleLine: true# switch的case縮排IndentCaseLabels: true# 針對OC的block的縮排寬度ObjCBlockIndentWidth: 4# 針對OC,屬性名稱後加空格ObjCSpaceAfterProperty: true# 每行字元的長度ColumnLimit: 0# 注釋對齊AlignTrailingComments: true# 括弧後加空格SpaceAfterCStyleCast: true
然後在Xcode的“Edit”->“CLang Format”中選中“File”,並讓倒數第二行顯示“Disable Format On Save”(後面這個看實際情況,需不需要在檔案隨時儲存的時候格式化)。
附上CLangFormat的所有可用參數文檔:http://clang.llvm.org/docs/ClangFormatStyleOptions.html
iOS 代碼格式化管理