我正在使用VSCode的C++扩展(Visual Studio代码(。
当我保存C++文件时,这种格式就是我的代码。但格式会导致if语句和大括号位于同一行,而不是位于新行。(我已经在同一行上设置了卷曲括号的格式(
C++VSCode格式化
if(...){
//...
}else if(...)
//...
}else{
//...
}
我想要C++VSCode格式化代码的样子
if(...){
//...
}
else if(...){
//...
}
else{
//...
}
如何在Visual Studio代码的不同行上用C++格式制作If else
您需要有C/C++扩展(只需检查是否有(。原始
第一个想法
- 转到文件->首选项->设置
- 搜索C_Cpp.lang_format_fallbackStyle
- 单击编辑,复制到设置
- 从";Visual Studio";至";{BasedOnStyle:Google,缩进宽度:4}">
(从"Visual Studio"更改为"LLVM"、"Google"或"WebKit"(
类似这样的东西:
"C_Cpp.clang_formal_fallbackStyle":"{BasedOnStyle:谷歌,缩进宽度:4,列限制:0}">
还要检查文档:这里和另一个
第二个想法
安装C#FixFormat扩展
View > Extension
Search "C# FixFormat"
Install
Shift+Alt+F
如果它抱怨有多个格式化程序,请按Configure按钮并选择C#FixFormat。
可以通过转到File>首选项>设置。然后向下滚动到Extensions,C#FixFormat配置并取消选中Style>支架:在同一条线上
VS代码扩展使用一个名为clang格式的程序来格式化代码。您可以通过在项目根目录中放置.clang-format
文件并在VS Code的设置中仔细检查默认样式是否为"file"来更改clang格式的行为方式。设置为C_Cpp: Clang_format_style
。
这里有一个最小的.clang-format
,它可以在clang格式允许的情况下尽可能接近您想要的输出。
BreakBeforeBraces: Stroustrup
IndentWidth: 4
SpaceBeforeParens: Never
它不能去除开场大括号之前的空格,但我个人支持clang format的决定。您自然会想仔细阅读文档,https://clang.llvm.org/docs/ClangFormatStyleOptions.html,查看所有可用选项。
我使用这种clang格式,它对我很有用:
{BasedOnStyle:LLVM,UseTab:Never,缩进宽度:4,TabWidth:4,AllowShortIfStatementsOnASingleLine:false,IndentCaseLabels:false,ColumnLimit:0,AccessModifierOffset:-4,NamespaceIndentation:All,FixNamespaceComments:false,BreakBeforeBraces:Custom,BraceWrappeng:{BeforeElse:true}}
解决问题的部分是";BreakBeforeBraces:Custom,BraceWrappeng:{BeforeElse:true}">