Отступ вложенных пространств имен в одной строке до одного уровня - PullRequest
1 голос
/ 01 июля 2010

В emacs 21:

namespace Abc { namespace Def { 
    class X;
    namespace Ghi {
        class Y;
    }
} }

Но теперь в emacs 22.2.1:

namespace Abc { namespace Def {
        class X;
        namespace Ghi {
            class Y;
        }
    } }

Как мне вернуть старое поведение? Обратите внимание, что я не хочу фиксированный столбец для отступа, я хочу, чтобы он отступал один уровень независимо от того, сколько 'namespace {' содержит строка.

1 Ответ

3 голосов
/ 01 июля 2010

Я действительно нашел ответ сам, в момент ясного размышления:

(defun followed-by (cases)
  (cond ((null cases) nil)
        ((assq (car cases) 
               (cdr (memq c-syntactic-element c-syntactic-context))) t)
        (t (followed-by (cdr cases)))))


(c-add-style  "foo"      
              `( ...
        (c-offsets-alist
         ( ... )
         (innamespace
          . (lambda (x) 
          (if (followed-by 
               '(innamespace namespace-close)) 0 '+))))))

«...», конечно же, символизирует другие персонализации.

...