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++扩展模组。

1

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

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++模组)。

1

禁用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进行代码格式化。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值