Свертывание кода C++ с помощью emacs/cedet
Я хотел бы использовать семантическое свертывание кода из пакета cedet (emacs). Я установил версию 1.1 и добавил следующие строки в.emacs:
(load-file "~/software/cedet-1.1/common/cedet.el")
(require 'semantic-tag-folding)
(defun c-folding-hook ()
(global-semantic-tag-folding-mode 1)
(local-set-key (kbd "C-c <left>") 'semantic-tag-folding-fold-block)
(local-set-key (kbd "C-c <right>") 'semantic-tag-folding-show-block)
)
(add-hook 'c-mode-common-hook 'c-folding-hook)
Хорошо, когда я сейчас загружаю файл C++ C++, ничего не происходит при использовании привязок клавиш или непосредственном запуске соответствующих команд. Что не так? Я что-то забыл?
2 ответа
Во-первых, вам не нужно иметь (global-semantic-tag-folding-mode 1)
внутри defun
- лучше запустить эту команду один раз...
Но я думаю, что главная проблема в том, что вы не включили какую-либо семантическую функцию (см. Этот раздел в моей статье) - по крайней мере, вам нужно позвонить (semantic-load-enable-minimum-features)
после загрузки CEDET.
PS у меня код работает (пользуюсь semantic-load-enable-excessive-code-helpers
в моей настройке)
Попробуйте добавить следующую строку в ваш конфигурационный файл emacs после (load-file "~/software/cedet-1.1/common/cedet.el")
линия;
(semantic-load-enable-code-helpers) ; Enable prototype help and smart completion