在Emacs中使用CEDET进行Python补全
在默认安装的cedet-1.0中,自动补全功能只能跟踪当前文件中的全局符号。这和内置的补全功能(比如dabbrev-expand或hippie-expand)没什么区别。
它无法补全从导入的模块中来的符号,也不能补全类的属性。并不是说它不能处理'self'。
有没有可能调整一下语义,让它能完成这些功能呢?
附注:ECB代码浏览器可以成功识别所有的导入和基类等内容。但符号补全的功能工作得不太好,或者没有正确设置。
1 个回答
8
CEDET对每种编程语言的支持都有点不同。以Python为例,CEDET 1.0版本在发布时并没有设置好把Python的导入语句转换成文件名。此外,Python中的'self'就像C++中的'this',它需要通过补全逻辑来添加,因为它并没有被声明。这两个功能在今年一月被添加到了bzr的代码库中。我不是Python程序员,但我记得有报告说这修复了智能补全的一些基本功能,让从导入的库中提取符号变得可用。bzr中也有新的代码用于Python的系统路径。
因此,我建议你从bzr下载CEDET,看看这些新功能是否能让智能补全如你所期待的那样工作。