经验分享:在VScode中使用Clang-format进行代码格式化(附带下载链接)
1,前言
本人当前正在进行21届全国大学生智能车竞赛的项目开发,当前正处寒假,队伍三人天各一方,为了在当下也能愉快的进行项目开发,我开始研究起小型团队工作流与代码编写规范。
使用Clang-format对代码进行格式化可以提高代码的可阅读性,减少因开发者们的不同代码风格导致代码格式混乱的情况。
当前有许多在VScode使用Clang-format的教程,但是我研究的时候,有许多疑问需要阅读多篇文章才能解决,因此我从我个人配置过程出发,结合我阅读的文章对配置Clang-format的经验进行分享。
使用环境:Windows11
注:VScode的clang-format插件无法直接使用,需要先下载clang-format工具到本地(本文附带下载地址)
2,clang-format安装配置
2.1 clang-format工具下载
clang-format是LLVM/Clang工具链中的一个工具,但是clang-format我没有在官方网站找到可以单独下载的链接,或许也正因如此,许多clang-format教程会要求下载安装LLVM以使用clang-format,但是LLVM本体体量达到2G+,而clang-format工具仅3.7M,为了clang-format而安装LLVM似乎有点“就是为了这点醋,我才包的这顿饺子”。不过没关系,不安装LLVM也可以使用其内置的clang-format工具,我已经为你们提取出来了
clang-format(提取自LLVM-21.1.0-win64.exe)下载地址
https://wwbez.lanzouw.com/iaZrd3hraa0d
密码:89ok
你们也可以选择下载LLVM安装包后自行提取,提取方法为解压exe文件,clang-format就存放在bin文件夹中
LLVM官网:Download LLVM releases
在GitHub上的LLVM仓库:Releases · llvm/llvm-project
2.2 为clang-format配置环境变量
详情可参考【clang-format】Windows11下代码格式化工具clang-format.exe下载以及配置 - Tshaxz - 博客园
首先打开系统环境变量页面,对Path进行编辑

随后选择新建,把你clang-format所在的文件路径添加进去即可


在CMD中使用指令 clang-format --version,若显示版本号则代表已成功

3,为项目配置代码格式
这里我分享我个人所使用配置文件
BasedOnStyle: Google # 基础风格沿用 Google
Language: Cpp # 指定C/C++语言,适配单片机C代码
IndentWidth: 4 # 显式指定缩进 4 空格(和 Google 默认一致,可省略,仅做明确声明)
ColumnLimit: 120 # 每行代码最长 120 字符
AlignConsecutiveAssignments: true # 连续赋值语句的等号=自动对齐
AlignTrailingComments: true # 行尾注释自动对齐
使用方法:在你需要格式化的文件根目录中创建新文件,命名为“.clang-format”并在文件中插入类似我上方展示的代码,如果你需要其他格式配置可以参考【C++】Clang-Format:代码自动格式化(看这一篇就够了)-CSDN博客

以下是我所使用的格式化规则与未使用格式化的对比:
#include "motor.h"
//(未格式化)
uint8_t left_motor_speed=0; //左电机速度
uint16_t right_motor_speed=0; //右电机速度
uint8_t servo_angle=90; //舵机中位角度
uint32_t pwm_frequency=1000; //PWM频率(Hz)
uint8_t car_speed_level=3; //车速档位
void set_motor_param(uint8_t left_speed, uint16_t right_speed, uint8_t angle){
left_motor_speed=left_speed;right_motor_speed=right_speed;servo_angle=angle;
// 超过120字符的长行测试:模拟单片机多参数配置,验证ColumnLimit生效
uint8_t temp_var=left_speed+right_speed+angle+car_speed_level+pwm_frequency/100+servo_angle/10; //临时变量计算
}
int main(){
set_motor_param(20,25,90);
return 0;
}
#include "motor.h"
//(已格式化)
uint8_t left_motor_speed = 0; // 左电机速度
uint16_t right_motor_speed = 0; // 右电机速度
uint8_t servo_angle = 90; // 舵机中位角度
uint32_t pwm_frequency = 1000; // PWM频率(Hz)
uint8_t car_speed_level = 3; // 车速档位
void set_motor_param(uint8_t left_speed, uint16_t right_speed, uint8_t angle) {
left_motor_speed = left_speed;
right_motor_speed = right_speed;
servo_angle = angle;
// 超过120字符的长行测试:模拟单片机多参数配置,验证ColumnLimit生效
uint8_t temp_var =
left_speed + right_speed + angle + car_speed_level + pwm_frequency / 100 + servo_angle / 10; // 临时变量计算
}
int main() {
set_motor_param(20, 25, 90);
return 0;
}
4,在VSCode中使用clang-format
4.1 下载Clang-Format扩展
在vscode的扩展商店中搜索Clang-Format并安装,注意要安装作者是Xaver的那个

4.2 开启保存自动格式化功能(可选)
在vscode的首选项设置中搜索Editor: Format On Save并勾选保存时设置文件格式
(此步可选,勾选后每次保存都会自动格式化)

4.3 使用方法
可以按照4.2设置保存后自动格式化进行使用也可以手动使用,手动使用可以按Shift+Alt+F或者右键文档选择格式化文档进行操作
若出现报错请看补充

5,结语
本篇文章是笔者第一次编写偏教程的文章,有许多不足的地方还请大家多多包含,也欢迎大家进行讨论,谢谢
补充

若代码出现以上报错可尝试在setting.json添加clang-format.exe文件路径,例如:"clang-format.executable": "D: \\clang-format\\clang-format.exe"

更多推荐
所有评论(0)