C++ 如果在C+中的不同行上有其他格式+;VSCode

C++ 如果在C+中的不同行上有其他格式+;VSCode,c++,if-statement,visual-studio-code,format,C++,If Statement,Visual Studio Code,Format,我正在使用for(VisualStudio代码) 这个格式是我保存C++文件时的代码。但是格式会导致if语句和大括号在同一行上,而不是在新行上。(我已经在同一行上设置了格式大括号) C++VSCode格式化 if(...){ //... }else if(...) //... }else{ //... } >强>我希望C++ VSCODE格式化代码看起来像>/P> if(...){ //... } else if(...){ //... } else{

我正在使用for(VisualStudio代码)

<>这个格式是我保存C++文件时的代码。但是格式会导致if语句和大括号在同一行上,而不是在新行上。(我已经在同一行上设置了格式大括号)

C++VSCode格式化

if(...){
    //...
}else if(...)
    //...
}else{
    //...
}
<> >强>我希望C++ VSCODE格式化代码看起来像>/P>
if(...){
    //...
}
else if(...){
    //...
}
else{
    //...
}

<> >强> >如果VisualStudio代码中的不同行中的C++格式为“否则”,则 > > /p> < p>您需要有C/C++扩展(只检查是否有它)。p> 第一个想法

  • 转到文件->首选项->设置
  • 搜索C_Cpp.clang_format_fallbackStyle
  • 单击编辑,复制到设置
  • 从“Visual Studio”更改为“{BasedOnStyle:Google,IndentWidth:4}”
  • (从“Visual Studio”更改为“LLVM”、“Google”或“WebKit”)

    大概是这样的:

    C_Cpp.clang_format_fallbackStyle:“{BasedOnStyle:Google,IndentWidth:4,ColumnLimit:0}”

    还要检查文档:以及

    第二个想法

    安装C#FixFormat扩展

    View > Extension
    Search "C# FixFormat"
    Install
    
    Shift+Alt+F

    如果它抱怨有多个格式化程序,则按配置按钮并选择C#FixFormat


    通过转到“文件>首选项>设置”,可以返回到在新行上打开大括号的状态。然后向下滚动到Extensions,C#FixFormat configuration,并取消选中Style>Brages:在同一行上

    VS代码扩展使用名为clang format的程序格式化代码。通过在项目根目录中放置
    .clang format
    文件,并在VS code的设置中仔细检查默认样式是否为“file”,可以更改clang format的行为方式。设置为
    C\u Cpp:Clang\u format\u style

    这里有一个最小的
    .clangformat
    ,它可以在clangformat允许的范围内尽可能接近您想要的输出

    BreakBeforeBraces: Stroustrup
    IndentWidth:       4
    SpaceBeforeParens: Never
    

    它不能移除大括号前的空格,但我个人支持clang format的这一决定。您自然需要仔细阅读文档,查看所有可用选项。

    该工具使用clang格式。如果你想让它表现出不同的行为,你需要创建一个
    .clang格式的
    文件,并根据你的喜好对其进行配置,然后将其放在项目的根目录中。实际上,他们说的第一件事就是他们正在使用C/C++扩展。你建议设置缩进宽度,他们说的是换行设置。