告诉clang-format忽略编译指示

时间:2018-02-06 09:25:09

标签: c++ clang-format

clang-format目前将所有编译指示移动到第一列。 clang-format之前的一个例子:

for (int i = 0; i < 4; ++i) {
  #pragma UNROLL
  // ...some code...
}

clang-format后的相同代码:

for (int i = 0; i < 4; ++i) {
#pragma UNROLL
  // ...some code...
}

有没有办法让clang-format完全忽略编译指示行而不更改源代码(即不会使源// clang-format off混乱)?例如,使用正则表达式?

这与this question有关(我希望避免installing a third-party tool),并希望this bug report解决这个问题。

此外,虽然对于具有编译指示的行使用clang-format off,但注释行本身将缩进到编译指示将缩进到的内容(使用clang-format 6.0.0):

for (int i = 0; i < 4; ++i) {
// clang-format off
  #pragma UNROLL
  // clang-format on
  // ...some code...
}

1 个答案:

答案 0 :(得分:0)

这可能是您要寻找的答案:

https://github.com/MedicineYeh/p-clang-format

应该能够帮助您的内容如下:


    # Replace "#pragma omp" by "//#pragma omp"
    sed -i 's/#pragma omp/\/\/#pragma omp/g' ./main.c
    # Do format
    clang-format ./main.c
    # Replace "// *#pragma omp" by "#pragma omp"
    sed -i 's/\/\/ *#pragma omp/#pragma omp/g' ./main.c