Я хочу использовать cedet для навигации в своей программе. Я использую semantic-ia-fast-jump для перехода к объявлению и semantic-analyze-proto-impl-toggle для перехода к реализации. Я обнаружил, что этим двум командам нужны файлы в одном каталоге. Поэтому мне нужно добавить все каталоги в путь поиска. Я имею в виду парня из Интернета. код выглядит следующим образом:
(setq semanticdb-project-roots (list (expand-file-name "~/")))
(defconst cedet-user-include-dirs
(list "~/samuel/project/modules/MManage/inc"
"~/samuel/project/modules/MManage/src"
...
))
(require 'semantic-c nil 'noerror)
(let ((include-dirs cedet-user-include-dirs))
(mapc (lambda (dir)
(semantic-add-system-include dir 'c++-mode)
(semantic-add-system-include dir 'c-mode))
include-dirs))
У меня есть несколько модулей, поэтому мне нужно добавить много каталогов. Это не converient и не портативный. Я думаю, что это должен быть хороший способ настроить это.
PS: см. http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html#sec6
Моя настройка выглядит следующим образом
(ede-cpp-root-project "library_samuel"
:name "library_samuel project"
:file (expand-file-name "~/samuel/project_self/library_samuel/CMakeLists.txt")
:include-path '("/common/include" "/modules/MManage/inc" "/modules/ImageProcess/inc" )
:spp-table '(("BUILD_APP" . "")))
semantic-ia-fast-jump может работать хорошо, но semantic-analyze-proto-impl-toggle не работает . Похоже, что головной и исходный файлы должны находиться в одних и тех же каталогах. Как решить эту проблему.