Как сделать случаи в инструкции switch отступом в Emacs

Как сделать Emacs в таких случаях, например,

switch ($foo) {
    case "foo":
        $foo .= " bar";
        break
    case "bar":
        $foo .= " baz";
        break
    default:
        $foo .= " undefined";
}

вместо

switch ($foo) {
case "foo":
    $foo .= " bar";
    break
case "bar":
    $foo .= " baz";
    break
default:
    $foo .= " undefined";
}

Ответ 1

Вам нужно добавить что-то подобное в ваш .emacs(либо в качестве общего параметра, либо для определенных режимов программирования, о которых вы заботитесь):

;; set this in all c-based programming modes
(add-hook 'c-mode-common-hook
          (lambda ()
             (c-set-offset 'case-label '+)))

чтобы добавить это в другой режим, используйте тот же шаблон выше с соответствующим именем режима, замененным на крючок, например: <mode-name>-hook.