У меня есть пара 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
Что мешает мне сканировать все мои исходные файлы ради автозаполнения.
Что я здесь не так делаю?
Я пытался следовать за Алексом Оттом Нежное введение в 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
Любая помощь будет принята с благодарностью.
Заранее спасибо!
Связывание клавиш C-c . g
который связан с ede-rescan-toplevel
предназначен для сканирования данных определения проекта, а не для анализа ваших исходных файлов. Так как ede-cpp-root-project
не имеет данных определения в проекте, он никогда не реализовывал эту функцию.
Если вы посещаете исходный файл, этот исходный файл будет анализироваться по мере необходимости. Он также найдет ваши включения и проанализирует их при необходимости. Кроме того, если вы просто немного подождете, он перезапустит все файлы рядом с тем, который вы редактируете во время простоя, так что к тому времени, когда вам это нужно, данные должны быть рядом.
Других решений пока нет …