我正在尝试在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
};
然而,通过以下配置文件...
(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))
... I achieve only:
class A
{
public: // access-label
int member; // inclass
};
struct B
{
// this indentation is too long
int member; // inclass
};
当然,这是因为:
- 在缩进方面,“class”和“struct”显然没有区别(它们都是“inclass”),
- “inclass”部分的缩进不取决于是否存在访问标签。
你有什么想法可以使“inclass”部分的缩进依赖于类/结构体或访问标签的存在吗?