这段代码
case 0xfc: printf("CM $%02x%02x",code[2],code[1]); opbytes = 3; break;
case 0xfd: printf("CALL $%02x%02x",code[2],code[1]); opbytes = 3; break;
case 0xfe: printf("CPI #$%02x",code[1]); opbytes = 2; break;
变成
case 0xfc:
printf("CM $%02x%02x", code[2], code[1]);
opbytes = 3;
break;
case 0xfd:
printf("CALL $%02x%02x", code[2], code[1]);
opbytes = 3;
break;
case 0xfe:
printf("CPI #$%02x", code[1]);
opbytes = 2;
break;
当我格式化它时,它会将完全可读且紧凑的 3 行 switch case 变成 12 行完全不必要的格式化代码。
case 0xf1: printf("POP PSW"); break;
保持原样
case 0xf1: printf("POP PSW"); break;
但是当添加另一条语句时,它会重新格式化它:
case 0xf1:
printf("POP PSW");
opbytes = 3;
break;
防止这种情况发生的适当配置是什么?
我现在的
.clang-format
:
AllowShortBlocksOnASingleLine: "true"
AllowShortCaseLabelsOnASingleLine: "true"
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
BreakBeforeBraces: Allman
ColumnLimit: 150
我们没有超过 150 个字符的列限制。我在第 230 行,第 79 列。即使发生了一些奇怪的事情,我们在列限制之前还有 71 个字符的余地。
这可能是正确的设置,但它仅适用于 clang-format 19。
另一个(丑陋的)选项是通过在每个
// clang-format off
之前和之后使用
// clang-format on
和
case:
来防止对该段代码进行格式化。