我的结论,Emacs23自带的semantic简单可用.
1.1 Cedet1.0
(require 'semantic-ia)后一些函数可用.
我没有试出来,和我安装的emacs是terminal版本有关(Cedet下的semantic-ia需要一个GUI介面的popup-menu).
这也是游人探讨Auto Complete接合semantic-ia的原因,因为AutoComplete已经完美实现了popup-menu.
缺点,semantic做后台语法解析的时候emacs会失去响应几妙种(我的硬件配置很好,intel i3 双核,4G内存),有时候会导致emacs退出.
1.2 Emacs23自带的semantic
没有semantic-ia.
semantic-analiyze-possible-completion(快捷键为C-c , l)较符合要求,可惜这个函数只是打印候选字符串在另一个buffer.需用hippie-expand(快捷键为M-/)选择.
1.3 Clang
速度极快,AutoComplete 上有几个接合Clang和AutoComple的方案(其中一个 为clang官方提供演示原理,我不建议使用).
需要提供完整的CXXFLAG给clang.如果用CMake生成Makefile的话,可在flags.make中轻易得到.
最后得到的可选项目太多,和上下文关系不大.