如何标记一个区域,所以clang格式不会触及它?

Ale*_*lex 27 c++ clang-format

例如,在MySQL ++库中有一些宏可用于根据sql表定义定义简单的结构,如下所示:

sql_create_6(stock, 1, 6,
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,
    mysqlpp::sql_double, weight,
    mysqlpp::sql_decimal, price,
    mysqlpp::sql_date, sdate,
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)
Run Code Online (Sandbox Code Playgroud)

问题是clang-format将以一种更难以阅读的方式重新格式化(新行上的每个参数).大多数代码格式化程序都可以识别特殊格式关闭/格式化注释,但我没有在clang格式手册中找到类似的东西.

小智 38

在较新的版本中,您可以使用以下代码包围一段代码:

// clang-format off
...
// clang-format on
Run Code Online (Sandbox Code Playgroud)

  • 我早在3.6时就在[说明文件](http://releases.llvm.org/3.6.0/tools/clang/docs/ClangFormatStyleOptions.html)中看到了这一点,但是尽管我很早就对我不起作用在3.8。我没有完全复制空白-请确保获得空白! (2认同)

vso*_*tco 5

尝试//在每行之后添加注释标记,这样做可能会做到。我在Eclipse中遇到了同样的问题,并学到了这个技巧。

sql_create_6(stock, 1, 6, //
    mysqlpp::sql_char, item, //
    mysqlpp::sql_bigint, num, //
    mysqlpp::sql_double, weight, //
    mysqlpp::sql_decimal, price, //
    mysqlpp::sql_date, sdate, //
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)
Run Code Online (Sandbox Code Playgroud)