当前位置:   article > 正文

VScode使用clang format文档自动代码格式化(C语言)_vscode格式化代码插件

vscode格式化代码插件

1、格式化之前的准备。
可以用Clang-Format插件,也可以用C/C++插件。因为现在的C/C++插件已经具备了这个功能。
在这里插入图片描述
2、配置相关
在这里插入图片描述
或者在setting.json中粘贴下面的代码,需要将C_Cpp.clang_format_path换成自己的clang-format路径。

{
    "files.associations": {
        "slider.h": "c"
    },
    "C_Cpp.clang_format_path": "C:\\Users\\Ruby\\.vscode\\extensions\\ms-vscode.cpptools-1.14.4-win32-x64\\LLVM\\bin\\clang-format.exe",
    "C_Cpp.formatting": "clangFormat",
    "C_Cpp.clang_format_fallbackStyle": "Visual Studio",
    "C_Cpp.clang_format_sortIncludes": null,
    "C_Cpp.clang_format_style": "file"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3、.clang-format文件
下面是我的配置:

---
Language: Cpp
#圆括号之后,多行内容,进行对齐
AlignAfterOpenBracket: Align

#连续赋值时,对齐所有等号
AlignConsecutiveAssignments: true
#连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations: true

#连续宏定义时,对齐所有定义值
AlignConsecutiveMacros: AcrossEmptyLinesAndComments
#AlignOperands Align将对齐分割到多行上的单个表达式的操作数
AlignOperands: Align
#对齐连续的尾随的注释
AlignTrailingComments: true
#允许将一个函数声明的所有参数移到下一行.
AllowAllParametersOfDeclarationOnNextLine: false
#将简单的语句块放到一个单行
AllowShortBlocksOnASingleLine: false
#if (a) return;放单行 属性:Never、WithoutElse没有else的可以放单行、OnlyFirstIf只有第一个if放单行、AllIfsAndElse总是把简短的if, else if和else语句放在同一行。
AllowShortIfStatementsOnASingleLine: Never
#BinPackArguments:如果为false,函数调用的参数要么全部在同一行,要么各有一行。
BinPackArguments: false
#BinPackParameters:如果为false,函数声明或函数定义的参数将全部在同一行或各有一行。
BinPackParameters: false

BreakBeforeBraces: Custom
# 控制单独的大括号换行事件,只有当BreakBeforeBraces设置为Custom时才有效
BraceWrapping:
  #使控制语句(if/for/while/switch/..)换行。
  AfterControlStatement: true
  #使枚举定义换行。
  AfterEnum: true
  #使函数定义换行。
  AfterFunction: true
  #使结构定义换行。
  AfterStruct: true
  #使共同体定义换行。
  AfterUnion: true
  #在else之前换行。
  BeforeElse: true
  #换行大括号缩进。
  IndentBraces: false
  #空函数是否可以放在单行:flase允许 true不允许
  SplitEmptyFunction: true
  #空类,结构或联合主体是否可以放在单行:flase允许 true不允许
  SplitEmptyRecord: true
  #空namespace是否可以放在单行:flase允许 true不允许
  SplitEmptyNamespace: true

SpaceBeforeParens: Custom
#控制圆括号前的单独空格,只有当SpaceBeforeParens设置为Custom时才有效
SpaceBeforeParensOptions:
  #在控制语句关键字(for/if/while…)和开括号之间放置空格
  AfterControlStatements: true
  #在函数声明名称和开括号之间不允许使用空格
  AfterFunctionDeclarationName: false

#指针对齐:右
PointerAlignment: Right
# 三元运算符将被放置在换行后
BreakBeforeTernaryOperators: true
#每行字符的限制,0表示没有限制
ColumnLimit: 0
#缩进空格宽度:4
IndentWidth: 4
#保留在赋值操作符之前的空格
SpaceBeforeAssignmentOperators: true
#不要排序include的头文件
SortIncludes: Never
#允许重新排版注释
ReflowComments: true
#尾行注释前的空格数
SpacesBeforeTrailingComments: 2
#连续空行的最大数量
MaxEmptyLinesToKeep: 1
#使用tab字符: Never从不使用, ForIndentation仅在缩进时使用制表符, ForContinuationAndIndentation, Always
UseTab: Never
#SpacesInParentheses如果为真(true), 将会在“(”之后和“)”之前插入空格。
SpacesInParentheses: false
#SpacesInSquareBrackets如果为真(true),将会在“[”之后和“]”之前插入空格。
SpacesInSquareBrackets: false

  • 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
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84

ps:网上我看很多人提到这个.clang-format文件不能有中文,但是目前在我这是没问题的,不知道其他人有没有影响。

4、在文件中右键,格式化文档即可。
在这里插入图片描述

5、勾选下面的设置,可以在每次保存之前自动格式化代码,快捷键是Shift+Alt+f。
在这里插入图片描述

---------------------2023.07.19更新---------------------------
批量格式化文件夹
[注: 这里格式化的范围是当前保存文件。 如果想批量格式化文件夹,安装 format files 插件安装,选中想格式化的文件夹,右键开始格式化即可。 ]
在这里插入图片描述
---------------------2024.03.29更新---------------------------
搞个懒汉教程

最近发现设置clangformat属性不需要那么多,前面的配置相关可以简化一下:
将下面代码拷贝到setting.json,然后format文件夹也拷贝进去就可以了。

{
  "C_Cpp.clang_format_path": "${workspaceFolder}\\.vscode\\format\\clang-format.exe",
  "C_Cpp.clang_format_style": "file:${workspaceFolder}/.vscode/format/.clang-format",
  "C_Cpp.formatting": "clangFormat",
  //   "editor.formatOnSave": true,
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

format文件夹:https://download.csdn.net/download/weixin_42217191/89048889
文件夹层级如下图
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/697261
推荐阅读
相关标签
  

闽ICP备14008679号