Emacs CEDET Сворачивание семантических тегов

Я бы хотел, чтобы каждый раз, когда я открываю файл .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 не может быть свернут по семантике»).

Как ни странно, если после открытия файла я использую M-x semantic-tag-fold-mode, он работает! Я просто заблудился.


person user1377000    schedule 09.03.2013    source источник


Ответы (1)


Я получил точно такую ​​же ошибку, используя 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.

Работает на меня.

person Timo    schedule 12.05.2013