在Visual Studio Code(VSCode)中,若要修改C++代码格式化的风格以实现大括号不换行,通常会借助于插件
C/C++
扩展中的ClangFormat配置。以下是具体的步骤:
- 确保已安装了C/C++扩展:- 打开VSCode的扩展市场(Extensions view),搜索"C/C++",确保已经安装了微软提供的"C/C++"插件。
- 配置ClangFormat:- 在VSCode中打开设置(快捷键
Ctrl + ,
或者通过菜单文件 > 首选项 > 设置
进入)。- 搜索 “clang format”,找到"C_Cpp: Clang_format_style"这一项。- 你可以直接在UI界面中编辑设置,或者点击“在settings.json中编辑”来手动添加或修改设置。 - 修改ClangFormat样式设置:- 在
settings.json
中添加或修改如下内容,确保BreakBeforeBraces
设置为Attach
(这将使得大括号不换行):
{"C_Cpp.clang_format_style":"{ BasedOnStyle: LLVM, BreakBeforeBraces: Attach }"}
- 根据你的偏好,可以选择其他基础样式(如Google、Chromium等),并根据需要调整其他格式化选项。
- 如果你希望在保存时自动格式化代码,请同时确认以下设置是启用的:
{"editor.formatOnSave":true,"[cpp]":{"editor.defaultFormatter":"ms-vscode.cpptools"}}
这样一来,在你保存C++文件时,VSCode会根据上述ClangFormat配置自动格式化代码,其中的大括号将会保持在同一行上。
注:
BreakBeforeBraces
是 ClangFormat 配置中的一个选项,用于控制大括号在代码格式化时的换行风格。这个选项有以下几种可能的值:
Attach
:大括号将紧跟在声明或语句之后,不换行。Linux
或GNU
:类似Attach
,但在函数定义、类定义和命名空间定义的大括号前会有一行空行。Stroustrup
:类成员变量和函数定义的大括号前换行,其他情况(如 if、for 等)的大括号与前一行内容在同一行。Allman
:所有大括号前都换行。Mozilla
或WebKit
:类似于Allman
,但函数参数列表后的大括号与函数名在同一行。
例如,在 Visual Studio Code 的 C/C++ 插件中配置为:
{"C_Cpp.clang_format_style":"{ BasedOnStyle: LLVM, BreakBeforeBraces: Attach }"}
这样设置后,ClangFormat 将按照指定样式对 C++ 代码进行格式化,并确保大括号不会换到新行上。
修改示例:
Clang_format_style这里可以改为
{BasedOnStyle: LLVM, UseTab: Never, IndentWidth:4, TabWidth:4, BreakBeforeBraces: Attach}
版权归原作者 ~柠月如风~ 所有, 如有侵权,请联系我们删除。