如何在切换用例语句中的VSCode中自动缩进



有很多事情是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++格式化需求,我建议使用Clang格式,它可以无缝集成到VS代码中。

在您的示例中,您可以使用IndentCaseLabels样式选项:

缩进CaseLabels(布尔(

将大小写标签从switch语句缩进一级。

false时,使用与switch语句相同的缩进级别。Switch语句正文总是缩进一级以上而不是大小写标签(除了大小写标签之后的第一块,其本身缩进代码-除非启用了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代码的集成

引用VS代码文档[emphasismine]中的在Visual Studio代码中编辑C++

[…]

代码格式

Visual Studio代码的C/C++扩展支持源代码使用扩展名中包含的clang-format进行格式化。

您可以使用"设置文档格式"(Ctrl+Shift+I(或仅使用中的"格式化所选内容"(Ctrl+K Ctrl+F(的当前所选内容右键单击上下文菜单您还可以使用配置自动格式化以下设置:

  • editor.formatOnSave-以在保存文件时进行格式化
  • editor.formatOnType-根据您的键入进行格式化(在;字符上触发(

默认情况下,clang格式样式设置为"file",这意味着它在工作区内查找.clang-format文件。如果找到.clang-format文件,则会根据文件中指定的设置应用格式设置如果在工作区中找不到.clang-format文件,则会根据C_Cpp.clang_format_fallbackStyle设置中指定的默认样式应用格式设置。目前,默认格式样式是"Visual Studio">,它近似于Visual Studio中的默认代码格式器。

[…]

最新更新