前言
组内代码格式不统一,每当我review的时候,总发现各种规范问题,比如代码行缩进不一致, 操作数和运算符之间空格时有时无,对于代码洁癖的人这是很难忍受。
那么就只能用工具了,鉴于Windows下编码大部分时候使用vscode,所以就找到了clang-format插件,而且在Linux下clang-format还可以集成到git hook里。
我抽空研究了一下,然后形成配置文档,让组里的同事照着配置一下。
下面描述了在windows下vscode+clang-format和linux下git+clang-format的配置,记录以供后续查询,也可以跟大家交流一下。
vscode下配置clang-format
以下在Windows环境下配置。
1. 进行插件安装,查找clang-format,选择安装人数比较多的那个
2. 下载LLVM-17.0.6-win64并安装
LLVM自带clang-format.exe, 我选择安装到d:\Program Files\LLVM目录。
LLVM文件大小为332MB, 下载比较慢,可以从我分享的百度网盘下载(目前还是有效的):
链接: https://pan.baidu.com/s/1Q8ntN13JlPHdaJJt9Cdm_g?pwd=smvd 提取码: smvd
3. 创建.clang-format规则文件
规则内容则是从linux-6.1拷贝过来,在linux内核源码根目录下有一个.clang-format文件,仅将行数修改为120行。
保存路径为D:\Program Files\LLVM\clang-format.txt
4. 配置扩展插件
Vscode 文件->首选项->设置->扩展->Clang-Format configuration :
主要是选择Executalbe为 clang-format,Fallback Style LLVM, 还有就是Style的路径配置为D:\Program Files\LLVM\clang-format.txt。
好了,这样每次保存C语言文件时,就会自动格式化代码了。
git commit 自动调用clang-format格式化提交的代码文件
以下在Ubuntu环境下配置。
1. 安装clang-format工具
执行命令安装。
1 | apt install clang-format |
2. 配置.clang-format规则文件
从linux 6.1 根目录下.clang-format拷贝而来,删除了2行不支持的规则,行数修改为120行,放到工程根目录下,命名为.clang-format。
下面是.clang-format的一个链接:
1 | https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/.clang-format |
3. 配置git提交格式化脚本
将下面内容保存到你的工程的.git/hooks/pre-commit 文件中,记得chmod +x pre-commit。
1 | !/bin/bash |
git commit时的效果如下:
行动,才不会被动!
欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。
博客地址: https://fishmwei.github.io
掘金主页: https://juejin.cn/user/2084329776486919