Emacs版本信息:
GNU Emacs 23.4.1
对于具有属性的类的Emacs自动缩进访问标签(即公共,私有,受保护)似乎已损坏。当类没有属性宏时,缩进是正确的。
我应该在我的.emacs文件(下面的相关行)中添加什么来解决此问题?
错误缩进的示例:
#if defined(__linux__)
# define SO_EXPORT __attribute__ ((visibility("default")))
#elif defined(WIN32)
# define SO_EXPORT __declspec(dllexport)
#endif
class SO_EXPORT MyClass
: public MyBaseClass
{
public: // <--- BAD: a leading space!
MyClass(); // <--- correct, indentation is set to 3 spaces
virtual ~MyClass();
private: // <--- again with the space!
int m_myVariable;
};
以下是运行&c-show-syntatic-information&#39;的结果。在上面的片段:
以下是我的.emacs文件中的相关设置:
(defun my-c-mode-common-hook ()
(setq fill-column 130)
(setq c-basic-offset 3)
(local-set-key "\C-m" 'c-context-line-break)
(c-set-offset 'substatement-open '0)
(c-set-offset 'case-label '+)
(c-set-offset 'arglist-cont-nonempty '++)
(c-set-offset 'brace-list-open '0)
(c-set-offset 'brace-list-open '0)
(c-set-offset 'innamespace '0)
(setq lazy-lock-defer-contextually t)
(setq lazy-lock-defer-time 0)
)