2013-03-09 75 views
4

我希望每次打開.cpp文件時,語義標籤摺疊都會激活。我正在使用最新版本的cedet(加載cedet-devel-load.el)。我有Emacs CEDET語義標籤摺疊

(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)) 

沒什麼CEDET此後/語義發生在我的.emacs相關。實際上,我可以將它作爲我的.emacs的唯一內容。

它不起作用。當打開一個.cpp文件時,我收到消息文件模式規範錯誤:(錯誤「緩衝區foo.cpp不能被語​​義摺疊」)。很奇怪,如果一旦文件打開,我會做M-x語義標籤摺疊模式,它的工作原理!我只是迷失了。

回答

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. 

適合我。