Автоматический отступ Emacs для последовательных скобок не работает нормально:
int main() {
something(int i)(
"test", "something"
);
}
Как исправить этот отступ, чтобы он был похож на обычный отступ:
int main() {
something(int i)(
"test", "something"
);
}
Информация об основном режиме:
- major-mode — это переменная, определенная в «исходном коде C».
- Его значение — «c++-режим».
РЕШЕНИЕ:
Спасибо, @pickle rick и @0x5453,
(c-add-style "cc-style"
'("linux" ;; it can be google or k&r or other c-style.
(c-basic-offset . 2)
(c-offsets-alist
(arglist-close . c-lineup-close-paren))))
(add-hook 'c++-mode-hook
(lambda()
(c-set-style "cc-style")))
'arglist-close
вc-offsets-alist
. У меня установлено значение+cc-lineup-arglist-close
, что, похоже, соответствует тому поведению, которое вы ищете. (Хотя на основании описания этой функции кажется, что она должна вести себя как ваш первый пример, так что может быть что-то еще.) - person 0x5453   schedule 14.11.2019c-offsets-alist is a variable defined in ‘cc-vars.el’. Its value is nil.
- person mortymacs   schedule 14.11.2019C-h v c-offsets-alist
, а затем искатьarglist-close
вручную. ИлиM-S-z (assq 'arglist-close c-offsets-alist)
, чтобы получить значение напрямую. Обратите внимание, чтоc-offsets-alist
является локальным для буфера и устанавливается только тогда, когда вы находитесь в одном из режимов на основе C, поэтому в вашем случае вам придется проверять его из буфера, который в настоящее время находится вc++-mode
. - person 0x5453   schedule 14.11.2019