• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    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
    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
    • 2
    • 3
    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
    • 2
    • 3
    • 4
    • 5
    1. 设置C和C++文件的默认格式化工具。
    "[cpp]": {
        "editor.defaultFormatter": "xaver.clang-format"
    },
    "[c]": {
        "editor.defaultFormatter": "xaver.clang-format"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 现在可以回到编辑器,使用Alt + Shift + F进行代码格式化。
  • 相关阅读:
    车载双向认证框架设计
    R语言绘制环状柱状堆积图+分组+显著性
    Spring篇---第五篇
    艾美捷EndoGrade卵清蛋白注意事项说明
    M2DP:一种新的三维点云描述子及其在回环检测中的应用
    数据结构学习系列之顺序表的两种删除方式
    Redis 数据类型 list 以及使用场景
    BruceR 包中介效应结果不一致?
    Element UI + Vue 新增和编辑共用表单校验无法清除问题(已解决)
    后台开发核心技术与应用实践看书笔记(一):C++编程常用技术
  • 原文地址:https://blog.csdn.net/xy1157/article/details/133421598