emacs: indentação diferente para classe e struct
Estou tentando conseguir o seguinte recuo no emacs:
class A
{
// I ALWAYS use access labels in classes
public: // access-label
int member; // inclass
};
struct B
{
// I NEVER use access labels in structs
int member; // inclass
};
No entanto, com o seguinte arquivo de configuração ...
(defun my-cpp-mode ()
"My C++ mode"
(c++-mode)
(c-set-style "K&R")
(setq c-basic-offset 4)
(c-set-offset 'access-label '-)
(c-set-offset 'inclass '++)
;; ...
(setq mode-name "My C++")
)
(add-to-list 'auto-mode-alist '("\\.[ch]p?p?\\'" . my-cpp-mode))
... eu só alcanço:
class A
{
public: // access-label
int member; // inclass
};
struct B
{
// this indentation is too long
int member; // inclass
};
Claro que é porque:
para o recuo obviamente não há diferença entre "classe" e "struct" (é tudo "inclass"),o recuo de material "inclass" não depende da presença de etiquetas de acesso ou não.Alguma idéia de como eu posso fazer a indentação de coisas dependentes depender de qualquer classe / struct ou da presença de rótulos de acesso?