【问题标题】:Tell clang-format to ignore pragmas告诉 clang-format 忽略 pragma
【发布时间】:2018-07-16 07:25:50
【问题描述】:

clang-format 当前将所有 pragma 移动到第一列。 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 完全忽略 pragma 行而不更改源代码(即不会用// clang-format off 弄乱源代码)?例如使用正则表达式?

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


此外,虽然 clang-format off 会因带有 pragma 的行而受到尊重,但被注释的行 itself 将缩进到 pragma 将缩进到的内容(与clang-format 6.0.0):

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

【问题讨论】:

    标签: c++ clang-format


    【解决方案1】:

    这可能是您正在寻找的答案:

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

    应该能够帮助您的这些行是:

    # 将“#pragma omp”替换为“//#pragma omp” sed -i 's/#pragma omp/\/\/#pragma omp/g' ./main.c # 格式化 铿锵格式./main.c # 将“// *#pragma omp”替换为“#pragma omp” sed -i 's/\/\/ *#pragma omp/#pragma omp/g' ./main.c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 2017-11-27
      • 2015-09-07
      • 1970-01-01
      • 2015-05-25
      • 2015-09-29
      • 2018-10-07
      相关资源
      最近更新 更多