Мне не повезло получить Emacs (cc-mode), чтобы указать многострочные аргументы шаблона. Вот пример строки:Отступы аргументов шаблона в Emacs
typedef ::boost::zip_iterator< ::boost::tuple<
vector<int>::const_iterator, vector<float>::const_iterator > >;
Я бы хотел, чтобы вторая строка была отступом, как в функции. Он отстутнут, пока я не войду во второй-последний >
, после чего вторая строка вверх перемещается влево, чтобы выровнять его с помощью typedef.
Когда я начинаю вводить вторую строку, синтаксический анализ равен ((statement-cont 52))
, до второго по последнему >
, после чего он становится ((defun-block-intro 46))
. Удаление символа не возвращается к старому синтаксическому анализу.
Ожидается, что в качестве синтаксического анализа будет иметь шаблон-args-cont.
Я использую emacs 22.2 (ubuntu intrepid) и cc-mode версии 5.31.5, которые пришли с ним.
'C-сС-O' позволяет мне изменить смещение для синтаксического символа для шаблона-арг-прода Я уже садился, что в моих .emacs как +, и это по умолчанию' C -cC-o' предлагает установить его. Установка его на номер не имеет значения. Насколько я могу судить, cc-mode не распознает эту строку как синтаксис template-args-cont. (Я использую версию cc-mode 5.31.5.) – AFoglia
Ну, очевидно, что нужно обновить до 5.31.6 или, по крайней мере, взглянуть на журнал изменений. В любом случае приведенный выше пример вырезается и вставляется из сеанса emacs, где я делал C-C C-o 4 и повторно привязывался к TAB; получили идентичные результаты с отступом. Если это не сработает, тогда вы, возможно, сделали что-то художественное в другом месте в вашем .emacs; попробуйте посмотреть emacs с -no-init-file и посмотреть, что произойдет. –
Кроме того, я думаю, что 5.31.6 поставляется только с Emacs 23. Он недоступен для загрузки на сайте cc-mode http://cc-mode.sourceforge.net/index.php. Символ template-args-cont был введен 5.15, так что это не новая функция. Я попытался сделать emacs --no-init-file, и это не изменило отступ. – AFoglia