VS Code使用clang-format自定义C++代码默认格式化样式

解决的问题

让 VS Code 在不使用.clang-format_clang-format文件时,默认使用自定义的 C++ 代码格式化样式。以下假定规则文件为D:\ClangFormat\rules.txt

格式规则

具体设置参照 Clang-Format官方文档,也可以使用 Clang-Format交互式构建器

贴上我习惯使用的代码格式化样式(Java 代码的习惯样式)。
以下是rules.txt内容(夹带私货(bushi)):

# 基于GNU格式
BasedOnStyle: GNU
# 使用支持的最新标准
Standard: Latest
# 行不限制长度
ColumnLimit: 0
# 缩进4个空格
IndentWidth: 4
# 左花括号在名称之后
BreakBeforeBraces: Attach
# 函数参数的小括号与函数名间不空格, 控制语句的小括号与语句间空格
SpaceBeforeParens: ControlStatements
# 换行时将二元运算符置后
BreakBeforeBinaryOperators: None
# 允许空的花括号在一行上
AllowShortBlocksOnASingleLine: Empty
# 函数返回值与函数在同一行
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
# 指针符号贴在类型边
PointerAlignment: Left
# 访问修饰符贴在左边
AccessModifierOffset: -4
# case和default之前缩进
IndentCaseLabels: true
# C式类型转换中间留空格
SpaceAfterCStyleCast: true
# 类继承冒号之前不留空格
SpaceBeforeInheritanceColon: false
# 构造函数初始化冒号之前不留空格
SpaceBeforeCtorInitializerColon: false
# 命名空间全部缩进
NamespaceIndentation: All
# 不排序头文件引用
SortIncludes: Never
# C++11式初始化对象花括号前留空格
SpaceBeforeCpp11BracedList: true

C/C++ 拓展

  1. 首先需要安装C/C++扩展模组。

VS Code使用clang-format自定义C++代码默认格式化样式_第1张图片

  1. 设置中查找C_Cpp.clang_format_style,填入 file:D:\ClangFormat\rules.txt

VS Code使用clang-format自定义C++代码默认格式化样式_第2张图片

  • 或者直接编辑配置文件
"C_Cpp.clang_format_style": "file:D:\\ClangFormat\\rules.txt"
  1. 现在可以回到编辑器,使用Alt + Shift + F进行代码格式化。

ClangD + Clang-Format 拓展

ClangD 是一个比 C/C++ 拓展更好的对代码智能提示和补全的工具。

  1. 首先需要安装ClangDClang-Format扩展模组,并且需要删除C/C++模组或者禁用C/C++模组的补全功能(如果同时存在C/C++模组)。

VS Code使用clang-format自定义C++代码默认格式化样式_第3张图片

禁用C/C++的补全功能。

"C_Cpp.intelliSenseEngine": "Disabled",
"C_Cpp.autocomplete": "Disabled",
"C_Cpp.errorSquiggles": "Disabled"
  1. 设置Clang-Format拓展的Stylefile:D:\ClangFormat\rules.txt,并且这里我关闭了这个拓展对其它语言的支持。
"clang-format.style": "file:D:\\ClangFormat\\rules.txt",
"clang-format.language.apex.enable": false,
"clang-format.language.java.enable": false,
"clang-format.language.javascript.enable": false,
"clang-format.language.typescript.enable": false
  1. 设置C和C++文件的默认格式化工具。
"[cpp]": {
    "editor.defaultFormatter": "xaver.clang-format"
},
"[c]": {
    "editor.defaultFormatter": "xaver.clang-format"
}
  1. 现在可以回到编辑器,使用Alt + Shift + F进行代码格式化。

你可能感兴趣的:(C++学习笔记,c++,c语言,vscode,代码规范,clang-format)