Eclipse C / C ++ Formatter Проблема переноса строки или отступа, когда макрос является параметром функции - PullRequest
0 голосов
/ 28 февраля 2019

У меня проблема при попытке отформатировать код C в Atollic TrueSTUDIO для STM32 9.3.0.Когда макрос является параметром функции, перенос строки не работает.Это ошибка, или я не могу найти правильную настройку в Formatter.

#define GPIO_PIN_7                 ((uint16_t)0x0080U)

    GPIO_InitAsOutput(&LED_D, GPIOC,
    GPIO_PIN_7,
                      GPIO_OutputType_PushPull, GPIO_Pull_None,
                      GPIO_Speed_Low);

В приведенном выше коде проблема GPIO_PIN_7 здесь.Ширина переноса строки равна 80. Когда я нажимаю «CTRL + SHIFT + F», это должно выглядеть примерно так:

PIO_InitAsOutput(&LED_D, GPIOC, GPIO_PIN_7,
                 GPIO_OutputType_PushPull, GPIO_Pull_None,
                 GPIO_Speed_Low);

Однако формат не изменяется.

OneЕще одна странность в том, что если я заменил GPIO_PIN_7 на ((uint16_t) 0x0080U), он работает, и код выглядит следующим образом:

PIO_InitAsOutput(&LED_D, GPIOC, ((uint16_t)0x0080U),
                 GPIO_OutputType_PushPull, GPIO_Pull_None,
                 GPIO_Speed_Low);

Что я должен сделать, чтобы исправить это поведение?

1 Ответ

0 голосов
/ 10 марта 2019

Вы только что нажали на ошибку Eclipse 459301 .Пока это не исправлено, вы можете просто использовать теги форматера, если вы можете использовать Eclipse 2019-03 с CDT 9.7.

//@formatter:off
PIO_InitAsOutput(&LED_D, GPIOC, GPIO_PIN_7, GPIO_OutputType_PushPull,
                                GPIO_Pull_None, GPIO_Speed_Low);
//@formatter:on
...