проблема с отступами в emacs с помощью pp-макросов - PullRequest
1 голос
/ 17 марта 2011

Я не могу сделать Emacs отступ для следующего кода должным образом. Каким-то образом он не может правильно проанализировать макросы препроцессора. Любой совет будет оценен.

#ifdef WIN32
void func1()
#else
    void func1(int parameter)
#endif
{

    if (a > 2 || 
#ifdef WIN32
        (b < 3))
#else
        (b > 3))
#endif
        c = 1;
        else if (b > 2 || 
#ifdef WIN32
                 (a > 4))
#else
            (a < 4))
#endif
            c = 2;

mystatement;
}

1 Ответ

1 голос
/ 17 марта 2011

Проблема в том, что Emacs проанализирует обе части конструкции #if #else. Чтобы получить правильные отступы, вы должны убедиться, что у вас нет несбалансированных скобок или скобок. Конкретно, вы можете переписать следующее:

if (a > 2 ||
#ifdef WIN32
    (b < 3))
#else
    (b > 3))
#endif

В

if (a > 2 ||
#ifdef WIN32
    (b < 3)
#else
    (b > 3)
#endif
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...