我试图让语义完成与 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 上尝试 Mx semantic-analyze-possible-completions 时,我收到一条错误消息:“找不到 std::list 的类型”
关于如何调试或如何修复它的任何建议?