我正在使用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 ++格式制作花括号?
"{ BasedOnStyle: Google, IndentWidth: 4 }"
EG
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}"
ColumnLimit: 0
也很有帮助,因为当你不需要它时,谷歌限制会将你的代码破坏到下一行。如果你想要更多:
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"
}
实际的clang格式选项是:
BreakBeforeBraces: Attach
其他答案要么不完整,要么过时,以下工作。
Ctrl+,
打开设置: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: Allman
到BreakBeforeBraces: Attach
Visual Studio
改变
to:{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Attach, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4 }
希望有所帮助。