禁止在 C++ 的 VSCode 自动格式化中对齐连续注释

Forbid an alignment of consecutive comments in VSCode auto formating for C++

VSCode C++ 程序中的自动格式化通过对齐连续注释生成此代码:

    if (true) { // if begin
                // if inner part
        int x = 3;

        int a = 1; // some inner calculations
    }              // if end
                   // some outer calculations
    int b = 1;

如何禁止注释对齐以获得下面的代码?

    if (true) { // if begin
        // if inner part
        int x = 3;
        int a = 1; // some inner calculations
    }// if end
    // some outer calculations
    int b = 1;

只能加空行来防止

Microsoft C/C++ VS Code 扩展默认使用 clang-format 作为格式化工具。 clang-tidy 是一个静态分析工具,本身也很好用,但它不是回答这个问题的工具。

clang 格式样式选项:https://clang.llvm.org/docs/ClangFormatStyleOptions.html

您需要的选项是 AlignTrailingComments,您将其设置为 false。如果您只想更改一些参数,但要基于样式,请在项目的根目录中使用类似 clang-format -style=LLVM --dump-config > .clang-format 的内容转储该样式。该命令假定 POSIX 或足够接近的 shell(bash、fish、zsh 等)。它可能也适用于 Windows,我只是从未在那里尝试过。

转储配置后,保留前两行(语言和取消注释 BasedOnStyle),然后您可以删除任何您不想更改的选项。保留您要更改的选项,更改它们,保存,退出等。默认情况下更改 VS Code 以首先查找 file 样式(我相信这是默认设置),您应该一切顺利。

这是如上所述的 .clang 格式文件的基本示例:

---
Language:        Cpp
BasedOnStyle:  LLVM
AlignTrailingComments: true