CEDET 是一个很好用的套件.说是套件,因为里面集成了很多组件.具体见下文的介绍.
### 首先,请仔细阅读下文:
http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html
### 补充
1. 有些头文件使用 special preprocessor macros or some other trickery which Semantic cannot parse . 所以,需要 将需要的 marco 在配置中手工进行 map ,然后, 对指定的文件进行处理 :
map :
(add-to-list 'semantic-lex-c-preprocessor-symbol-map '("SOMESYMBOL" . ""))
(add-to-list 'semantic-lex-c-preprocessor-symbol-file '"/PATH/someheader.h")
2. Semantic 和 SemanticDB 对code进行语法分析,结果进行缓存,直到文件被修改. Senator 利用 他们的成果,进行 navigation .
semantic 和 senator 都可以 navigation , 但是 senator 主要基于 tag (猜测用的是 regular expression) .
semantic 的 semantic-ia-fast-jump 比 semantic-complete-jump 能够处理更复杂的 name . 因此,虽然两者都是处理的 project 级别的跳转.
senator 的 next/previous tag 和 go-to-up-reference 能够追溯到 文件头.
3. 暂时到这里.下面是对 EDE 的一个细致的分析.
http://epsilonvectorplusplus.wordpress.com/2012/04/27/a-functional-introduction-to-cedet-ede/