Intereting Posts
Почему std :: less не удается скомпилировать? Почему переменные non-const, non-int / enum должны быть инициализированы вне определения? STL устанавливает пользовательский вид Почему двоичный файл C ++ Hello World больше, чем эквивалентный C-бинарный? Наложение на месте двух половин строки simple c ++: как перегрузить оператор умножения, чтобы float * myClass и myClass * float Построить объект из архива последовательной сборки Элементы-члены шаблона с типом возвращаемого типа, дающие ошибки, даже если они не используются Пропустить временный объект к функции, которая принимает указатель Создайте текстовый файл и напишите ему на C ++? c ++ 11 std :: async не работает в mingw Rcpp debug – фатальная ошибка: Datetime.h: нет такого файла или каталога; xtsAPI.h: Нет такого файла или каталога Вместо того, чтобы использовать встроенные средства AVX для использования инструкций SSE Проблема с C ++ Regex Класс символов POSIX Почему clang не показывает цветную продукцию под Scons?

Как я могу отступать на C ++ pragma, используя clang-format?

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

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

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

Я хотел бы, чтобы он был отформатирован:

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

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

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

    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