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

时间:2014-07-26 19:45:51

标签: 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)

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

2 个答案:

答案 0 :(得分:25)

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

// clang-format off
...
// clang-format on

答案 1 :(得分:3)

尝试在每行后添加//注释标记,这可能会这样做。我在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)