Насколько я знаю в emacs, нет способа настроить уровень отступов закрывающего " > " символа списка шаблонов в С++. В настоящее время моя схема выделения в emacs делает это:
template <
typename T1,
typename T2,
typename T3
>
class X;
Я хочу что-то вроде этого:
template <
typename T1,
typename T2,
typename T3
>
class X;
Установка шаблона переменной indent-args-cont в ноль приведет к отступлению символа ' > ' должным образом, но за счет исключения отдельного тела списка аргументов шаблона.
Любые предложения от гуру emacs?
EDIT:
Я немного работал со следующим хаком:
(defun indent-templates (elem)
(c-langelem-col elem t)
(let ((current-line
(buffer-substring-no-properties
(point-at-bol) (point-at-eol))))
(if (string-match-p "^\\s-*>" current-line)
0
'+)))
И затем установите шаблон-args-cont для отступов-шаблонов в моей настраиваемой теме, ala:
(c-add-style "my-style"
'("stroustrup"
;; ... Other stuff ...
(template-args-cont . indent-templates))))
Но это все еще довольно плохо. Он работает большую часть времени, но иногда emacs запутывается, думая, что список шаблонов является arglist, а затем начинается веселье.