макросы с отступом той же ширины, что и обычный исходный код

#c #c-preprocessor #clang-format

#c #c-препроцессор #clang-формат

Вопрос:

Я столкнулся с проблемой clang-format . Рассмотрим следующий пример файла заголовка:

 
#ifdef __cplusplus
extern "C" {
#endif

    void foo(int x);
    void foo2(int y);

#define FOO 2
#define BAR 3
  
    void bar(int z);

#ifdef __cplusplus
}
#endif


  

Я хотел бы сделать отступ defines ( FOO и BAR ) на том же уровне, что и объявления. Есть ли способ сделать это с clang-format помощью?


Желаемый результат:

 
#ifdef __cplusplus
extern "C" {
#endif

    void foo(int x);
    void foo2(int y);

    #define FOO 2
    #define BAR 3
  
    void bar(int z);

#ifdef __cplusplus
}
#endif



  

Комментарии:

1. Я считаю, что некоторые инструменты (??… не могу вспомнить ни одного прямо сейчас) нужен только # столбец 1

2. Интересно, никогда не сталкивался с такой проблемой. Было бы любопытно узнать больше, если у кого-нибудь есть более подробная информация об этом

3. В ранних стандартах C # символ должен был располагаться слева.

4. Я заснул с # мыслями о том, что проснулся, не имея ни малейшего представления о том, почему я сохраняю его в столбце 1… просто неприятное чувство по поводу какого-то инструмента (может быть, это был плохо написанный скрипт?)… когда я хочу сделать отступ в строках предварительной обработки, я помещаю пробелы между # и остальными… # define OCTOTHORPE 35

5. @pmg Это выглядит как приемлемая альтернатива! Есть ли способ достичь этого в формате clang?