Xcode 中配置 clang-format 格式化 C++ 程式碼
Xcode 自帶的程式碼格式化功能(control + I)很有限,其 “格式化” 僅限於設定縮排,程式碼裡面的格式是不會處理的。所以需要藉助額外的工具來完成程式碼的美化。 clang-format 便是可選的工具之一,它可用來格式化 C/C++/Java/JavaScript/Objective-C/Protobuf/C# 等程式碼。 其內建了多種預設的程式碼風格,分別有 LLVM, Google, Chromium, Mozilla, WebKit。 可通過新增 .clang-format 檔案。
一個配置檔案的示例: BasedOnStyle: LLVM IndentWidth: 4 所有可用的配置引數可在其文件 Clang-Format Style Options 中檢視。一般指定一個喜歡的預設風格即可。 clang-format 的安裝$ brew install clang-format 檢查安裝: $ clang-format --version clang-format version 8.0.0 (tags/google/stable/2019-01-18) 雖然安裝好了,但它是命令列工具,要在 Xcode 中使用,還需要藉助 macOS 自帶的 Automator 工具。 新增 Automator 服務開啟 Automator 選擇 "Quick Action"。  通過 Automator 建立 "Quick Action" 左側 Library 中搜索 "Run Shell Script" 並拖動到右側。在指令碼編輯框中輸入以下內容: export PATH=/usr/local/bin:$PATH clang-format
通過執行指令碼實現 clang-format 服務的新增 同時記得勾選上 "Output replaces selected text",然後儲存並輸入儲存的名稱,比如 至此一個服務便已新增好。 使用在當前使用者的根目錄 .clang-format 檔案,
$ touch ~/.clang-format 在其中指定 C++ 格式化相關的配置,比如: BasedOnStyle: Google IndentWidth: 2 當然,除了配置檔案,clang-format 的格式化引數也可通過 shell 的方式傳遞,比如上面在新增服務時輸入的指令碼中,帶上格式化的引數: export PATH=/usr/local/bin:$PATH clang-format -style="{IndentWidth: 4, TabWidth: 4, UseTab: Never, BreakBeforeBraces: Stroustrup}" 開啟 Xcode,選中需要格式化的程式碼並右鍵喚出選單。選擇
通過選單進行格式化 新增快捷鍵顯然右鍵這種方式不夠便捷,進一步新增快捷鍵來實現更加方便的程式碼格式化。因為 Xcode 中格式化程式碼預設的快捷鍵為 control + I,不防我們就設定 開啟系統的首選項設定(可通過在 SpotLight 中搜索 "system preference"),然後開啟鍵盤設定 "Kyeboard" 並切換到 "Shortcuts" 標籤。 選中左側 "App Shortcuts" 然後為 "Xcode" 繫結 control + I 執行
為 `clang-format` 新增系統快捷鍵 然後便可通過快捷鍵方便地進行程式碼格式化了。
通過快捷鍵進行格式化 其他工具存在一些其他以外掛形式的工具,同樣能達到使用 clang-format 格式化程式碼的目的,比如 travisjeffery/ClangFormat-Xcode,但不支援 Xcode 9+,可安裝其替代版 V5zhou/ZZClang-format 該外掛安裝好後,支援在檔案儲存時自動格式化,比較方便。 但因為是來自社群的外掛,需要先將 Xcode 去掉簽名 (unsign),參見 inket/update_xcode_plugins。 相關資源
|