在Xcode中配置clang-format
1. 通過brew安裝 clang-format
brew install clang-format
查看是否安裝成功
clang-format --version
clang-format version 14.0.6
說明安裝成功了
2. 添加自動化服務(wù)
-
打開自動操作如下圖
-
打開"Automator" 選擇 "Quick Action"/"快捷操作"
- 按照下圖添加 shell 腳本
# 腳本具體內(nèi)容
export PATH=/usr/local/bin:$PATH
clang-format
3. 保存命名為 xcode_format (后邊會用到)
4. 配置文件 在當(dāng)前用戶的根目錄 ~ 放置一個 .clang-format 文件
cd ~/
touch ~/.clang-format
-
.clnag-format
文件的示例 (更多的選項可以查看clang-format可選項)
我的 .clnag-format 文件配置如下
# 工具 https://github.com/mapbox/XcodeClangFormat(需要添加簽名使用)
# 函數(shù)名詳細地址 英文 http://clang.llvm.org/docs/ClangFormatStyleOptions.html
# 函數(shù)名詳細地址 中文 https://www.cnblogs.com/PaulpauL/p/5929753.html
# OC語言
Language: ObjC
# 基于LLVM格式
# BasedOnStyle: LLVM
# 對齊注釋
AlignTrailingComments: true
# 指針和引用的對齊方式
PointerAlignment: Right
# 用于縮進的列數(shù)
IndentWidth: 4
# 針對OC的block的縮進寬度
ObjCBlockIndentWidth: 4
# OC的block嵌套參數(shù)不換行
ObjCBreakBeforeNestedBlockParam: false
# switch的case縮進
IndentCaseLabels: true
# OC里面,在@property后加空格
ObjCSpaceAfterProperty: true
# 括號中的(),{},[]代碼對齊方式
AlignAfterOpenBracket: Align
#ContinuationIndentWidth: 0
# 賦值=對齊
AlignConsecutiveAssignments: true
# 聲明參數(shù)對齊
AlignConsecutiveDeclarations: false
# 運算符位置
BreakBeforeBinaryOperators: None
# 如果為真(true), 三元運算符將被放置在換行后
BreakBeforeTernaryOperators: false
# 總是在逗號和對齊逗號跟冒號前把構(gòu)造函數(shù)初始化式換行
BreakConstructorInitializersBeforeComma: false
# 允許短的函數(shù)放在同一行
#AllowShortFunctionsOnASingleLine: None
# 允許case在同一行
AllowShortCaseLabelsOnASingleLine: false
# OC里面粮彤,在Protocol前后加空格
ObjCSpaceBeforeProtocolList: true
# 單行注釋前的空格數(shù)
SpacesBeforeTrailingComments: 1
# 連續(xù)的空行保留幾行
MaxEmptyLinesToKeep: 1
# 保留block里面的空行
KeepEmptyLinesAtTheStartOfBlocks: false
# 每行字符的限制汤功,0表示沒有限制
ColumnLimit: 0
# []中添加空格
SpacesInSquareBrackets: false
# ()中添加空格
SpacesInParentheses : false
# @[]里面兩邊空格,默認(rèn)true
SpacesInContainerLiterals: false
# 賦值運算符前加空格
SpaceBeforeAssignmentOperators: true
# 在空括號中加空格
SpaceInEmptyParentheses: false
# 在<>中間插入空格
SpacesInAngles: false
# 換行的時候?qū)R操作符
AlignOperands: true
# 允許if在同一行
AllowShortIfStatementsOnASingleLine: true
# 允許while在同一行
AllowShortLoopsOnASingleLine: false
# 允許將簡單的語句塊放到同一行
AllowShortBlocksOnASingleLine: true
#縮進函數(shù)名
IndentWrappedFunctionNames: false
# 形參 如果為false要么都在同一行弃理,要么各有一行
BinPackParameters: false
# 實參 如果為false要么都在同一行溃论,要么各有一行
BinPackArguments: false
# 大括號換行
BreakBeforeBraces: Custom
BraceWrapping:
# class定義后面
AfterClass: true
# 控制語句后面
AfterControlStatement: false
# enum定義后面
AfterEnum: false
# 函數(shù)定義后面
AfterFunction: false
# 命名空間定義后面
AfterNamespace: false
# struct定義后面
AfterStruct: false
# union定義后面
AfterUnion: false
# catch之前
BeforeCatch: false
5. 在Xcode中使用
command + A 全選 ==> 右鍵(雙指按壓觸摸板) 如下圖選擇 Services ==> xcode_format(剛剛創(chuàng)建的腳本)
- 查看腳本文件保存的路徑
open ~/Library/Services
6. 設(shè)置快捷鍵
系統(tǒng)偏好->鍵盤->快捷鍵->app快捷鍵->選擇Xcode->設(shè)置快捷鍵按鈕
7. 如果報如下錯誤
- 查看 /usr/local/bin 文件夾下是否存在 clang-format 可執(zhí)行文件
cd /usr/local/bin
如果不存在,
嘗試如下命令
查找clang-format的具體路徑
image.png
然后將clang-format 軟連接到/usr/local/bin 路徑下
ln -s /opt/homebrew/bin/clang-format /usr/local/bin
上邊不行的話再嘗試如下操作.
1 . 訪問LLVM下載頁
2 .選擇需要的LLVM版本進行下載,我這里選擇了最新的版本 15.0.2
3 . 選擇mac對應(yīng)的架構(gòu) 我的電腦是M1 選擇了arm64架構(gòu)
4 . 把解壓文件夾中bin目錄下的clang-format文件復(fù)制到usr/local/bin文件夾里,sudo mv (解壓之后的路徑)/bin/clang-format /usr/local/bin/clang-format
這樣 clang-format, bash 命令未找到。的問題就解決了