Emacs - CEDET
Table of Contents
Introduction
CEDET1 stands for collection of Emacs development environment tools, which is written to make Emacs become a perfect development environment. With the aid of CEDET, a variety of amazing features can be provided, e.g. code completion, browsing, tag jumping, drawing UML diagram, etc.
Installation
Through following commands, the latest version of CEDET can be installed into ~/.emacs.d/cedet.
cd ~/.emacs.d git clone http://git.code.sf.net/p/cedet/git cedet make
Configuration
;; load CEDET
(add-to-list 'load-path "~/.emacs.d/cedet")
(load-file "~/.emacs.d/cedet/cedet-devel-load.el")
;; enable the required features
(semantic-load-enable-minimum-features)
(semantic-load-enable-code-helpers)
(semantic-load-enable-gaudy-code-helpers)
(semantic-load-enable-excessive-code-helpers)
(semantic-load-enable-semantic-debugging-helpers)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-summary-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode t)
(add-to-list 'semantic-default-submodes 'global-cedet-m3-minor-mode t)
(add-to-list 'semantic-default-submodes 'global-semanticdb-minor-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-scheduler-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-decoration-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-show-unmatched-syntax-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-show-parser-state-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-highlight-edits-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-highlight-func-mode t)
;; enable semantic mode
(semantic-mode 1)
;; enable semantic to access and parse the headers of system libaries, e.g. /usr/include, /usr/local/include, /opt/itpp/include.
(setq semantic-c-dependency-system-include-path (quote ("/usr/include" "/usr/local/include" "/opt/itpp/include")))
(require 'semantic/ia)
(require 'semantic/bovine/gcc)
;; jump to tags
(global-set-key (kbd "M-.") 'semantic-ia-fast-jump)
;; jump back from tags
(global-set-key (kbd "M-*") 'semantic-mrub-switch-tags)