@category emacs @sort emacs002

Инсталляция

Сегодня мы установим в наш emacs настоящий вертолет, который называтся cedet. Пакет Cedet объединяет в своем составе несколько пакетов, реализующих различную функциональность, но объединенных вокруг одной задачи по работе с исходным кодом на различных языках программирования.

Берем тарбол с официального репозитория http://cedet.cvs.sourceforge.net/viewvc/cedet/ и распаковываем его в ~/.emacs.d/cedet

Компиляция в Emacs-e

После этого заходим туда и отдаем команду <pre> $ emacs -Q -l cedet-build.el -f cedet-build </pre> Таким нетривиальным образом, через emacs, оказывается можно собрать и скомпилить cedet.

Настройка

После завершения компиляции добавляем в init.el следующие строки: <source lang="lisp"> ;; Load CEDET. ;; See cedet/common/cedet.info for configuration details. (load-file "~/.emacs.d/cedet/common/cedet.el")

;; Enable EDE (Project Management) features (global-ede-mode 1)

;; Enable EDE for a pre-existing C++ project ;; (ede-cpp-root-project "NAME" :file "~/myproject/Makefile")

;; Enabling Semantic (code-parsing, smart completion) features ;; Select one of the following:

;; * This enables the database and idle reparse engines (semantic-load-enable-minimum-features)

;; * This enables some tools useful for coding, such as summary mode ;; imenu support, and the semantic navigator (semantic-load-enable-code-helpers)

;; * This enables even more coding tools such as intellisense mode ;; decoration mode, and stickyfunc mode (plus regular code helpers) ;; (semantic-load-enable-gaudy-code-helpers)

;; * This enables the use of Exuberent ctags if you have it installed. ;; If you use C++ templates or boost, you should NOT enable it. ;; (semantic-load-enable-all-exuberent-ctags-support) ;; Or, use one of these two types of support. ;; Add support for new languges only via ctags. ;; (semantic-load-enable-primary-exuberent-ctags-support) ;; Add support for using ctags as a backup parser. ;; (semantic-load-enable-secondary-exuberent-ctags-support)

;; Enable SRecode (Template management) minor-mode. ;; (global-srecode-minor-mode 1)

;; from yakorspb@emacs.conference.jabber.ru (semantic-load-enable-excessive-code-helpers)

;; Code Folding ; http://alexott-ru.blogspot.com/2009/01/blog-post.html (defun my-semantic-hook () (semantic-tag-folding-mode 1)) (add-hook 'semantic-init-hooks 'my-semantic-hook) </source>

Теперь можно получить настоящее удовольствие при программировании!