emacs: sangría diferente para clase y estructura
Estoy tratando de lograr la siguiente sangría en 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
};
Sin embargo con el siguiente archivo de configuración ...
(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))
... solo logro
class A
{
public: // access-label
int member; // inclass
};
struct B
{
// this indentation is too long
int member; // inclass
};
Por supuesto que es porque:
para la sangría obviamente no hay diferencia entre "clase" y "estructura" (es todo "inclass"),la sangría de "inclass" no depende de la presencia o no de las etiquetas de acceso.¿Alguna idea de cómo puedo hacer que la sangría de las cosas de la clase dependa de la clase / estructura o de la presencia de etiquetas de acceso?