我正在尝试让emacs 24和随附的cedet版本一起使用语义自动完成。自动完成可以用于我在自己的源文件中定义的类,但是对于标准库或STL内容,自动完成无法正常工作。以下是我的emacs配置:
(require 'cedet)
(require 'semantic)
(require 'semantic/ia)
(require 'semantic/bovine/gcc)
(semantic-add-system-include "/usr/include/c++/4.6.3" 'c++-mode)
(setq semantic-default-submodes
'(global-semantic-idle-scheduler-mode
global-semanticdb-minor-mode
global-semantic-idle-summary-mode
global-semantic-idle-completions-mode
global-semantic-highlight-func-mode
global-semantic-decoration-mode
global-semantic-mru-bookmark-mode))
(setq semanticdb-default-save-directory "~/.semanticdb/"
semantic-complete-inline-analyzer-idle-displayor-class 'semantic-displayor-ghost)
(semantic-mode t)
在我的~/.semanticdb目录中,我只看到了"!usr!include!c++!4.6!x86_64-linux-gnu!bits!semantic.cache",它甚至没有使用我在配置中指定的版本。
例如,当我尝试对std::list执行M-x semantic-analyze-possible-completions时,会出现错误提示:"无法找到std::list的类型"。
有什么建议可以用来调试或修复此问题吗?
f1 C-a
可以显示版本信息,它必须是24.3.4版本。 - abo-abo