1

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

    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;

我只能通过添加空行来防止它。

4

1 回答 1

1

VS Code 的 Microsoft C/C++ 扩展默认使用 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
于 2022-01-10T15:34:08.503 回答