vscode 自动修改C代码格式

Posted on 2023-06-28 21:29  牛man  阅读(336)  评论(0编辑  收藏  举报

1.插件clang-format安装

 clang-format默认安装路径为c:\Users\wqr57\.vscode\extensions\ms-vscode.cpptools-0.18.1/bin/../LLVM/bin/clang-format.exe

 

2.C 格式客制化配置


---


Language: Cpp
# BasedOnStyle: LLVM


AccessModifierOffset: -4


AlignAfterOpenBracket: Align


AlignConsecutiveAssignments: true



AlignConsecutiveDeclarations: true


AlignConsecutiveBitFields: true

AlignConsecutiveMacros: true


AlignEscapedNewlines: Left


AlignArrayOfStructures: Left


#AlignEscapedNewlinesLeft: true


AlignOperands: true


AlignTrailingComments: true


AllowAllParametersOfDeclarationOnNextLine: false


AllowShortBlocksOnASingleLine: Empty


AllowShortCaseLabelsOnASingleLine: false


AllowShortFunctionsOnASingleLine: None


AllowShortIfStatementsOnASingleLine: Never


AllowShortLoopsOnASingleLine: false


AlwaysBreakAfterDefinitionReturnType: None


AlwaysBreakAfterReturnType: None


AlwaysBreakBeforeMultilineStrings: false


AlwaysBreakTemplateDeclarations: false


BinPackArguments: true


BinPackParameters: false


BraceWrapping:


AfterClass: false


AfterControlStatement: true


AfterCaseLabel: true


#BeforeCatch: true


AfterEnum: true


AfterFunction: true


AfterNamespace: false


AfterObjCDeclaration: false


AfterStruct: true


AfterUnion: true
AfterExternBlock: false



BeforeWhile: true


BeforeElse: true


IndentBraces: true
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false


BreakBeforeBinaryOperators: None


BreakBeforeBraces: Custom


BreakBeforeTernaryOperators: false


BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon


ColumnLimit: 80


CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false


ConstructorInitializerAllOnOneLineOrOnePerLine: false


ConstructorInitializerIndentWidth: 4


ContinuationIndentWidth: 4


Cpp11BracedListStyle: true


DerivePointerAlignment: true


DisableFormat: false


ExperimentalAutoDetectBinPacking: false


ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]


IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1


IndentCaseLabels: true

IndentPPDirectives: None


IndentWidth: 4


IndentWrappedFunctionNames: false


KeepEmptyLinesAtTheStartOfBlocks: false


MacroBlockBegin: ''


MacroBlockEnd: ''


MaxEmptyLinesToKeep: 4


NamespaceIndentation: Inner


ObjCBlockIndentWidth: 4


ObjCSpaceAfterProperty: false


ObjCSpaceBeforeProtocolList: false


PenaltyBreakBeforeFirstCallParameter: 19


PenaltyBreakComment: 300


PenaltyBreakFirstLessLess: 120


PenaltyBreakString: 1000


PenaltyExcessCharacter: 1000000


PenaltyReturnTypeOnItsOwnLine: 60


PointerAlignment: Right


ReflowComments: false


SortIncludes: false


SpaceAfterCStyleCast: false

SpaceAfterTemplateKeyword: true


SpaceBeforeAssignmentOperators: true


SpaceBeforeParens: ControlStatements


SpaceInEmptyParentheses: false


SpacesBeforeTrailingComments: 2


SpacesInAngles: false


SpacesInContainerLiterals: false


SpacesInCStyleCastParentheses: false


SpacesInParentheses: false


SpacesInSquareBrackets: false


Standard: Cpp11


TabWidth: 4


UseTab: Never

 

 

3.问题

 客制化的.clang-format 没有生效

 (1).clang-formt 没生效

 设只快捷键格式化生效:CTRL+s

 2.修改.clang-format 文件,ctrl+s c文件格式化没生效

(1).clang-format 里添加了中文注释

 (2)如下设置【Clang-format:Style : file】clang-format.exe 默认会从当前目录或父目录查找.clang-format文件,当然你如果不想放入项目代码的目录中可以选择.clang-format的绝对路径,如下

 问题:

 [VSCode] YAML:1:4: error: Got empty plain scalar - 简书 (jianshu.com)

 使用clang-format格式化代码, 配置没有生效 - 简书 (jianshu.com)

 参考链接:

(177条消息) Clang-format格式化及配置参数_Once_day的博客-CSDN博客

使用clang-format格式化代码, 配置没有生效 - 简书 (jianshu.com)

(177条消息) VS Code C++ 代码格式化方法(clang-format)_c_cpp: clang_format_fallback style_core571的博客-CSDN博客

Clang格式样式选项 — Clang 17.0.0git 文档 (llvm.org)

使用 clang-format 格式化代码 - 知乎 (zhihu.com)