Отступ аргументов шаблона в Emacs - PullRequest
4 голосов
/ 03 июня 2009

Мне не повезло заставить Emacs (режим cc) отступать в аргументы многострочного шаблона. Вот пример строки:

typedef ::boost::zip_iterator< ::boost::tuple<
vector<int>::const_iterator, vector<float>::const_iterator > >;

Я бы хотел, чтобы вторая строка была с отступом, как в функции. Он имеет отступ, пока я не введу второй до последнего >, после чего вторая строка вверх сдвигается влево, чтобы выровняться с typedef.

Когда я начинаю печатать вторую строку, синтаксический анализ имеет значение ((statement-cont 52)), до второго-последнего >, после чего он становится ((defun-block-intro 46)). Удаление символа не возвращает к старому синтаксическому анализу.

Я ожидал, что в качестве синтаксического анализа будет template-args-cont.

Я использую emacs 22.2 (ubuntu intrepid) и cc-mode версии 5.31.5, которые пришли с ним.

1 Ответ

3 голосов
/ 03 июня 2009

Вам следует , просто нужно установить template-args-cont на какое-нибудь полезное значение. Чтобы поэкспериментировать с этим, наведите курсор на вторую строку и введите C-cC-o для c-set-offset. Введите удобное значение. С 4 я получаю:

typedef ::boost::zip_iterator< ::boost::tuple<
    vector<int>::const_iterator, vector<float>::const_iterator > >; 

Если это не сработает, проверьте свою версию: у меня версия 5.31.6 cc-mode. Для проверки сделайте M-x c-version. Я получаю

Using CC Mode version 5.31.6
...