C ++ VSCode中同一行上的格式大括号

问题描述 投票:25回答:5

我正在使用C++ Extension用于VSCode(Visual Studio Code)。

目前,我将"C_Cpp.clang_format_formatOnSave"设置为true

这个格式是我保存C ++文件时的代码。但格式导致新行而不是同一行上的花括号。

当前C ++ VSCode格式化

for (int i = 0; i < 10; i++)
{
    // ...
}

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

for (int i = 0; i < 10; i++) {
    // ...
}

我也有editor.wrappingIndent设置为"same"

如何在Visual Studio Code中的同一行上以C ++格式制作花括号?

c++ format visual-studio-code curly-braces
5个回答
51
投票
  1. 转到文件 - >首选项 - >设置
  2. 搜索C_Cpp.clang_format_fallbackStyle
  3. 单击编辑,复制到设置
  4. 从“Visual Studio”更改为"{ BasedOnStyle: Google, IndentWidth: 4 }"

EG

  • "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"
  • btw ColumnLimit: 0也很有帮助,因为当你不需要它时,谷歌限制会将你的代码破坏到下一行。

如果你想要更多:

https://stackoverflow.com/a/50489812/2613194


19
投票

clang-format是一个用于格式化C / C ++代码的独立工具。 C/C++ extension附带它,但您可以选择使用选项C_Cpp.clang_format_path在计算机上指定自己安装的clang格式版本的路径。

clang格式样式源(C_Cpp.clang_format_style)默认设置为file,它读入.clang-format文件。有关可用样式选项的更多信息,请参阅this page

否则,您可能正在寻找的最简单方法是更改​​选项C_Cpp.clang_format_fallbackStyle

你正在寻找的风格可能是WebKit


因此,您的.vscode/settings.json文件应如下所示:

{
    "C_Cpp.clang_format_fallbackStyle": "WebKit"
}

2
投票

我注意到目前接受的答案不再适用了。在最新版本(1.32.3)中,只需使用Ctrl+,打开设置,然后搜索c fallback

enter image description here

将上面的值从默认值改为LLVM,你应该好好去!


2
投票

实际的clang格式选项是:

BreakBeforeBraces: Attach

2
投票

其他答案要么不完整,要么过时,以下工作。

  1. Ctrl+,打开设置:
  2. 搜索C_Cpp: Clang_format_fallback Style您将看到Visual Studio的值

更多细节(您可以跳过这一点,见下文):

但是Visual Studio的价值 和...一样 { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

但是,我们需要在这里改变一件事,我们不想在括号之前打破(例如:if,for等),所以我们需要改变: 来自:BreakBeforeBraces: AllmanBreakBeforeBraces: Attach


  1. 所以,从Visual Studio改变 to:{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.