评估了Emacs下支持intellisense的几个方案
我的结论,Emacs23自带的semantic简单可用.
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退出.
Emacs23自带的semantic
没有semantic-ia.
semantic-analyze-possible-completion(快捷键为C-c , l)较符合要求,可惜这个函数只是打印候选字符串在另一个buffer.需用hippie-expand(快捷键为M-/)选择.
启动semantic-mode在emacs23中很简单,M-x semantic-mode即可.
Clang
速度极快,AutoComplete 上有几个接合Clang和AutoComple的方案(其中一个 为clang官方提供演示原理,我不建议使用).
通过elpa安装auto-complete-clang,试用后非常完美,智能且响应速度极快,支持Mac/Cygwin/Linux.
如果做语法实时检查,可以用flymake,需要提供完整的CXXFLAG给clang.如果用CMake生成Makefile的话,可在flags.make中轻易得到.
顺便说一下,我个人非常喜爱CMake,是构建打包配置管理的最佳工具.我以后所有的C++项目都将用CMake.