有点令人沮丧的是,vscode 会自动执行很多操作,但是当使用 switch-case 语句时,它不会在冒号后自动缩进。
这就是如果我在不干扰的情况下打字的话我会得到的结果
int x = 32;
switch (x){
case 33:
break;
case 32:
break;
default:
}
这就是我想看到的
int x = 32;
switch (x){
case 33:
break;
case 32:
break;
default:
}
Clang Format 可自定义格式规则
对于任何 C++ 格式化需求,我建议使用铿锵格式 https://clang.llvm.org/docs/ClangFormat.html,可以无缝集成到 VS Code 中。
在您的示例中,您可以使用IndentCaseLabels
款式选择 https://clang.llvm.org/docs/ClangFormatStyleOptions.html:
缩进案例标签(书籍)
缩进大小写标记 switch 语句的一级。
When false
,使用与 switch 语句相同的缩进级别。 Switch 语句体总是多缩进一级
比 case 标签(case 标签后面的第一个块除外,
它本身会缩进代码 - 除非启用了 IndentCaseBlocks)。
false: true:
switch (fool) { vs. switch (fool) {
case 1: case 1:
bar(); bar();
break; break;
default: default:
plop(); plop();
} }
应用于您的示例:
// IndentCaseLabels: true
int x = 32;
switch (x) {
case 33:
void();
break;
case 32:
break;
default:
}
// IndentCaseLabels: false
int x = 32;
switch (x) {
case 33:
void();
break;
case 32:
break;
default:
}
将 Clang 格式集成到 VS Code 中
Citing 在 Visual Studio Code 中编辑 C++来自 VS Code 文档 https://code.visualstudio.com/docs/cpp/cpp-ide [emphasis mine]:
[...]
代码格式化
The Visual Studio Code 的 C/C++ 扩展支持源代码
格式化使用clang-format
这是包含在扩展中.
您可以使用“格式化文档”(Ctrl+Shift+I) 来格式化整个文件,或者
仅使用格式选择 (Ctrl+K Ctrl+F) 中的当前选择
右键单击上下文菜单。您还可以配置自动格式化和
以下设置:
-
editor.formatOnSave
- 保存文件时进行格式化.
-
editor.formatOnType
- 在您键入时进行格式化(在;
特点)。
默认情况下,clang-format 样式设置为“file”,这意味着它寻找一个.clang-format
工作区中的文件。如果.clang-format
找到文件后,将根据文件中指定的设置应用格式。If no .clang-format
在您的工作区中找到文件,根据中指定的默认样式应用格式设置C_Cpp.clang_format_fallbackStyle
设置代替。现在,默认格式样式是“Visual Studio”这是 Visual Studio 中默认代码格式化程序的近似值。
[...]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)