Я работаю над большим проектом С++. Я работаю с emacs в течение последних шести месяцев. Я попытался настроить CEDET, чтобы иметь возможность легко перемещаться, но обнаружил некоторые проблемы.
1.- Иногда семантика не находит какие-то символы, а иногда нет... Я не знаю четко, какие файлы семантически индексируются. Я пытался использовать EDE (следуя инструкциям в этом документе http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html), но я также обнаружил некоторые проблемы...
- У меня есть несколько версий (выпусков) одного и того же проекта, каждая в своей папке. Как я могу сообщить emacs, над каким проектом я работаю?
- Как я могу указать ede, где искать файлы заголовков? Могу ли я указать только корневой каталог, и семантика будет искать файлы заголовков во всех подкаталогах?
2. Некоторое время назад я работал с vim+cscope и помню, что был способ вернуться назад в стеке символов (Ctrl-t). Есть ли что-то подобное в emacs?
P.D.> Некоторые данные, чтобы вопрос стал более ясным.
У меня есть несколько релизов одного и того же проекта. Каждый из них имеет свой собственный корневой каталог. Каждый проект имеет несколько модулей, каждый из которых находится в подкаталоге. В каждом модуле есть файл заголовков.
/home/user/
|
\Release-001
| |
| \makefile
| \ Module-001
| | |
| | \makefile
| | \subdir-001
| | | \header-001.h
| | | \header-002.h
| | \subdir-002
| | | \header-003.h
| \ Module-002
| | |
| | \makefile
| | \subdir-003
| | | \header-004.h
| | | \header-005.h
| | \subdir-004
| | | \header-006.h
|
\Release-002
| |
| \makefile
| \ Module-001
| | |
| | \makefile
| | \subdir-001
| | | \header-001.h
| | | \header-002.h
| | \subdir-002
| | | \header-003.h
| \ Module-002
| | |
| | \makefile
| | \subdir-003
| | | \header-004.h
| | | \header-005.h
| | \subdir-004
| | | \header-006.h
Это конфигурация EDE, которую я имею в своем .emacs.
;; Cedet load commands
(add-to-list 'load-path "~/emacs-dir/cedet/cedet")
(load-file "~/emacs-dir/cedet/cedet/common/cedet.el")
;; EDE: activating mode.
(global-ede-mode t)
;; Projects definition
(ede-cpp-root-project "Release-001"
:name "Release-001"
:file "~/Release-001/makefile"
:include-path '("/"
)
:system-include-path '("~/exp/include")
:spp-table '(("SUSE9" . "")
)
)
(ede-cpp-root-project "Release-002"
:name "Release-002"
:file "~/Release-002/makefile"
:include-path '("/"
)
:system-include-path '("~/exp/include")
:spp-table '(("SUSE9" . "")
)
)
Просто чтобы вы знали... Я работаю с консольной версией (-nw) emacs.