我正在处理几个C ++项目。为了自动完成,我一直在使用语义。但是,我想更好地利用那里的工具。
我有以下目录结构
我目前在.emacs中有以下内容
(load-file "~/.emacs.d/vendor/cedet-bzr/cedet-devel-load.el")
(add-to-list 'semantic-default-submodes 'global-semanticdb-minor-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-local-symbol-highlight-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-scheduler-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-summary-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-show-parser-state-mode)
(add-to-list 'semantic-default-submodes 'global-semantic-highlight-edits-mode)
(semantic-mode 1)
(require 'semantic/ia)
(require 'semantic/bovine/clang)
;; PROJECTS
(global-ede-mode t)
(ede-cpp-root-project "MyProject"
:name "My Project"
:file "/path/to/project/Makefile"
:include-path '("/path/to/first/includes"
"/path/to/second/include")
:system-include-path '()
:spp-table '())
每当我打开项目时,C-c . g
我在迷你缓冲区Method project-rescan called on nil
中出错,这导致我无法扫描所有源文件以进行自动完成。
我在这里做错了什么?
我一直试图关注Alex Ott的A Gentle Introduction to CEDET,但它似乎没有提到任何有关此错误的内容。
我也在集市上使用CEDET。
这就是我M-x cedet-version
的样子。
CEDET Version: 2.0
Requested File Loaded
Package Version Version Version
----------------------------------------------------------
cedet: 2.0 ok ok
eieio: 1.4 ok ok
semantic: 2.2 ok ok
srecode: 1.2 ok ok
ede: 1.2 ok ok
cogre: 1.2 ok Not Loaded
cedet-contrib: 1.2 nil Not Loaded
非常感谢任何和所有帮助。
先谢谢!
答案 0 :(得分:1)
绑定到C-c . g
的键绑定ede-rescan-toplevel
用于扫描项目定义数据,而不是用于解析源文件。由于ede-cpp-root-project
在项目中没有定义数据,因此它从未实现过该功能。
如果您访问源文件,将根据需要解析该源文件。它还会根据需要找到您的包含和解析。此外,如果您只是稍等一下,它会在空闲时间内重新分析您正在编辑的文件附近的所有文件,这样当您需要它时,数据就应该存在。