отключить cedet/семантическое завершение кода для режима lisp

Я настроил cedet/семантическое завершение кода для своих проектов на C++ (используя это руководство: http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html), но не хочу, чтобы все или все помощники, которые он (мне кажется, автоматически) предлагает в режиме lisp.

Итак, мой вопрос заключается в том, как отключить их в режиме lisp или включить их только в режиме C++.

Спасибо, Рене.


person deepthought42    schedule 21.07.2011    source источник


Ответы (1)


Думаю, что нужно немного изменить конфиг, который есть в статье - там используется много глобальных модов, например:

(global-srecode-minor-mode 1)
(global-semantic-mru-bookmark-mode 1)

и т. д. вы можете включить соответствующие semantic-mru-bookmark-mode, srecode-minor-mode и т. д. в общем хуке режима C, например:

(defun my-c-mode-cedet-hook ()
  (semantic-mru-bookmark-mode 1)
  ;; .....
  )
(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)

Или отключите эти режимы только для Lisp... Другие режимы включают semantic-auto-parse-mode, semantic-idle-summary-mode, semantic-idle-scheduler-mode - вы можете получить этот список, используя M-x apropos semantic.*mode

И самое главное здесь - нужно использовать semantic-load-enable-minimum-features в своем конфиге, чтобы включить минимальное количество фич по умолчанию, а остальные нужные фичи включать только в хуке режима C/C++...

person Alex Ott    schedule 22.07.2011
comment
Спасибо за Ваш ответ. Это указало мне правильное направление, но не совсем полное. Делая это таким образом, семантика жалуется, что Buffer не настроен для синтаксического анализа. Что мне нужно было сделать, так это: (add-hook 'c-mode-common-hook '(lambda () (add-hook 'semantic-init-hook 'my-c-mode-semantic-hook t t))) Это гарантирует, что семантика настраивает буфер для синтаксического анализа и что его хук инициализации является буферным локальным (t как четвертый параметр для add-hook делает хук локальным для буфера). - person deepthought42; 23.07.2011
comment
Да, может быть... Я всегда использовал semantic/cedet в максимальных значениях, чтобы облегчить отладку. - person Alex Ott; 23.07.2011