Свертывание кода 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 
Другие вопросы по тегам