在使用Keil编写代码时,无法实现自动格式化。因此,我打算先使用Visual Studio Code(VS Code)进行代码格式化,然后在Keil中进行调试。
- 通过EIDE插件导入工程后,会自动生成一个
.clang-format
文件,该文件是格式化的配置文件。VS Code会优先使用这个文件进行格式化配置,然后才会参考设置中的settings.json
文件。因此,我们只需要修改第一个配置文件即可调整格式化设置。 - 以下是一些常用的配置项,具体参数可以参考
.clang-format
官网上的详细说明。
---
BasedOnStyle: Microsoft # 基础样式:基于Microsoft的代码风格
Language: Cpp # 语言:指定为C++语言
###################################
# indent conf # 缩进配置
###################################
UseTab: Always # 使用Tab字符:始终使用Tab进行缩进(而不是空格)
IndentWidth: 4 # 缩进宽度:设置缩进为4个字符宽度
TabWidth: 4 # Tab宽度:设置Tab键的宽度为4个字符
ColumnLimit: 0 # 列限制:0表示不限制每行的字符数
AccessModifierOffset: -4 # 访问修饰符偏移:访问修饰符(如public、private)向左偏移4个字符
NamespaceIndentation: All # 命名空间缩进:所有命名空间内容都进行缩进
FixNamespaceComments: false # 修复命名空间注释:不自动调整命名空间后的注释
BreakBeforeBraces: Allman # 大括号换行:采用Allman风格,即大括号独占一行
###################################
# other styles # 其他样式
###################################
#
# 更多配置可参考:https://clang.llvm.org/docs/ClangFormatStyleOptions.html
#
AllowShortIfStatementsOnASingleLine: false # 允许单行短if语句:禁止将if语句压缩为单行
AllowShortLoopsOnASingleLine: false # 允许单行短循环:禁止将循环(如for、while)压缩为单行
AllowShortBlocksOnASingleLine: Empty # 允许单行短代码块:仅允许空代码块单行显示
IndentCaseLabels: true # 缩进case标签:在switch语句中缩进case标签
SortIncludes: false # 排序包含文件:不自动对#include进行排序
AlignConsecutiveMacros: AcrossEmptyLinesAndComments # 连续宏对齐:跨空行和注释对齐连续的宏定义
AlignConsecutiveAssignments: Consecutive # 连续赋值对齐:对连续的赋值语句进行对齐
AlignTrailingComments: true # 对齐尾部注释:将多行代码的尾部注释对齐
SpacesBeforeTrailingComments: 3 # 尾部注释前空格:在尾部注释前添加3个空格
ReflowComments: true # 重排注释:允许重新调整注释的格式以适应样式
PointerAlignment: Left # 指针对齐:指针符号*靠左对齐(例如 int* ptr)