стиль кодирования — Как я мог сделать отступ C ++ прагмы, используя clang-формат?

я использую vim-autoformat, который использует clang-format как внешний форматер.

Кажется, что clang-format не будет отступать C ++ #pragma, Например:

#include <omp.h>
#include <cstdio>
int main()
{
#pragma omp parallel for
for (int i = 0; i < 10; ++i)
{
puts("demo");
}
return 0;
}

Я хотел бы отформатировать его в:

#include <omp.h>
#include <cstdio>
int main()
{
#pragma omp parallel for
for (int i = 0; i < 10; ++i)
{
puts("demo");
}
return 0;
}

Я проверил clangformat, но не нашел, какой вариант я мог бы использовать.

11

Решение

Уже поздно, но это решение, которое вы ищете.
Он форматирует прагму вместе с блоком кода.

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
2

Другие решения


По вопросам рекламы [email protected]