这个工具的地址https://github.com/square/spacecommander
使用方法:
1. 下载 spacecommander
这里可以cd 到自己指定的文件夹,使用git命令下载;
git clone https://github.com/square/spacecommander.git
也可以直接下载压缩包,然后解压.
2. 安装 spacecommander 到需要格式化代码的项目中
cd到项目根目录,执行setup-repo.sh脚本(注意脚本需要全路径),执行完后会在项目根目录多一个隐藏文件.clang-format ,这是一个替身文件
执行setup-repo.sh脚本
执行完脚本后,项目个目录会多出隐藏文件
3.修改代码格式规则
打开.clang-format替身,指向Space Commander仓库中的.clang-format原本文件,修改里面默认系列代码规则,改成自己所需要的规则
iOS 的可以参考这个http://clang.llvm.org/docs/ClangFormatStyleOptions.html
例如:我的iOS项目修改了几条的设置
# 基于LLVM格式
BasedOnStyle: LLVM
# 大括号之前间断方式
BreakBeforeBraces: Attach
# 声明OC属性后有两行空行
ObjCSpaceAfterProperty: true
4.以上配置已经完成,现在开始使用
这里我故意把代码格式改的很乱,来测试一下效果
格式很乱的代码
当执行git commit 命令后,终端会提示有格式问题
根据提示,执行 >"/Users/YannChee_workMac/spacecommander"/format-objc-files.sh -s ,即可格式化代码,再次commit 时就不会提示代码有格式问题了
顺便总结一下,这几个脚本的作用:
setup-repo.sh 初始化
format-objc-file.sh 格式化单个暂存文件
format-objc-files.sh 格式化所有暂存文件
format-objc-files-in-repo.sh 格式化整个仓库
格式后的代码
使用过程中遇到的问题:
有时候代码命名已经格式化成功,但是git commit 终端还是提示 代码格式有问题,这可能是这个工具的bug,需要在git commit 后面加上 --no-verify修饰下,例如
git commit -m "test" --no-verify
或 git commit --no-verify -m "test"
官方参考:https://clang.llvm.org/docs/ClangFormat.html
其他参考链接如下:
https://www.cnblogs.com/liuyunbin/p/11538267.html
https://blog.csdn.net/softimite_zifeng/article/details/78357898
https://github.com/square/spacecommander.git
https://www.jianshu.com/p/baa4693a7adf
https://juejin.im/post/6844903555866820622
https://juejin.im/post/6844903555866820622