4

我希望每次打开 .cpp 文件时,语义标签折叠都会被激活。我正在使用最新版本的 cedet(正在加载 cedet-devel-load.el)。我有

(semantic-mode 1)
(require 'semantic/ia)
(require 'semantic/bovine/gcc)
(load-file "path/to/semantic/tag/folding/semantic-tag-folding.el")
(require 'semantic-tag-folding)

我加了一个钩子

(add-hook 'c-mode-common-hook 'setupcpp)

而在'setupcpp我只是有

(defun setupcpp ()
(interactive)
(semantic-tag-folding-mode t))

此后在我的 .emacs 中没有发生与 cedet/semantic 相关的任何事情。事实上,我可以将它作为我的 .emacs 的唯一内容。

它不起作用。打开 .cpp 文件时,我收到消息文件模式规范错误:(错误“缓冲区 foo.cpp 无法按语义折叠”)。

奇怪的是,如果文件打开后,我执行 Mx semantic-tag-folding-mode,它就可以工作了!我只是迷路了。

4

1 回答 1

4

我得到了完全相同的错误,使用 Emacs 24.3 和最新的 cedet bzr 版本。

我的解决方案如下:每当装饰某些东西时,折叠模式也将被启用。

(load-library "~/emacs/cedet/cedet-bzr/trunk/cedet-devel-load")
(load-library "contrib/semantic-tag-folding.el")

(defun do-after-decorate () (semantic-tag-folding-mode t) )
(add-hook 'semantic-decoration-mode-hook 'do-after-decorate) 
;; ... 
(semantic-load-enable-excessive-code-helpers) ; also starts the decorate-mode when useful.

为我工作。

于 2013-05-12T12:14:54.207 回答