【问题标题】:Format If-else on Different Line in C++ VSCode在 C++ VSCode 中的不同行上格式化 If-else
【发布时间】:2021-03-03 00:35:29
【问题描述】:

我将C++ Extension 用于VSCode(Visual Studio 代码)。

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

C++ VSCode 格式化

if(...){
    //...
}else if(...)
    //...
}else{
    //...
}

我希望 C++ VSCode 格式的代码看起来像什么

if(...){
    //...
}
else if(...){
    //...
}
else{
    //...
}

如何在 Visual Studio Code 的不同行上制作 C++ 格式的 If-else?

【问题讨论】:

  • 该工具使用 clang 格式。如果您希望它的行为有所不同,您需要创建一个.clang-format 文件并根据自己的喜好对其进行配置,并将其放在项目的根目录中。

标签: c++ if-statement visual-studio-code format


【解决方案1】:

VS Code 扩展使用名为 clang-format 的程序来格式化您的代码。您可以通过在项目根目录中放置 .clang-format 文件并仔细检查 VS Code 设置中的默认样式是否为“文件”来更改 clang-format 的行为方式。设置为C_Cpp: Clang_format_style

这是一个最小的.clang-format,它在 clang 格式允许的范围内尽可能接近您想要的输出。

BreakBeforeBraces: Stroustrup
IndentWidth:       4
SpaceBeforeParens: Never

它不能删除左大括号之前的空格,但我个人在这个决定上支持 clang-format。您自然会想仔细阅读文档https://clang.llvm.org/docs/ClangFormatStyleOptions.html,以查看您可以使用的所有选项。

【讨论】:

    【解决方案2】:

    你需要有 C/C++ 扩展(只要检查你有没有)。 Original

    第一个想法

    1. 转到文件-> 首选项-> 设置
    2. 搜索 C_Cpp.clang_format_fallbackStyle
    3. 点击编辑,复制到设置
    4. 从“Visual Studio”更改为“{ BasedOnStyle: Google, IndentWidth: 4 }”

    (从“Visual Studio”更改为“LLVM”、“Google”或“WebKit”)

    类似这样的:

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

    同时查看文档:hereanother one

    第二个想法

    安装 C# FixFormat 扩展

    View > Extension
    Search "C# FixFormat"
    Install
    

    Shift + Alt + F

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

    通过转到文件 > 首选项 > 设置,可以返回在新行上打开大括号。然后向下滚动到 Extensions、C# FixFormat 配置并取消选中 Style > Braces: On Same Line

    【讨论】:

    • 从字面上看,他们说的第一件事就是他们正在使用 C/C++ 扩展。而且您建议使用缩进宽度设置,他们正在谈论换行设置。
    猜你喜欢
    • 2020-05-23
    • 2018-09-19
    • 2021-06-26
    • 2018-03-14
    • 2023-04-10
    • 1970-01-01
    • 2018-08-14
    • 2017-11-05
    • 2022-11-04
    相关资源
    最近更新 更多