Estoy trabajando en un gran proyecto de C++. Estoy trabajando con emacs durante los últimos seis meses. He intentado configurar CEDET para poder navegar fácilmente pero he encontrado algunos problemas.Características de navegación del código fuente de Emacs
1.- A veces la semántica no encuentra algunos símbolos y otras veces no ... No sé claramente qué archivos son índices semánticos. He intentado utilizar EDE (siguiendo las instrucciones en este documento http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html), pero he encontrado algunos problemas también ...
- Tengo varias versiones (Releases) del mismo proyecto, cada uno en su propia carpeta. ¿Cómo puedo decirle a emacs con qué proyecto estoy trabajando?
- ¿Cómo puedo decirle a ede dónde buscar mis archivos de encabezado? ¿Puedo especificar solo un directorio raíz y la semántica buscará archivos de encabezado en todos los subdirectorios?
2.- Estuve trabajando con vim + cscope hace algún tiempo y recuerdo que había una forma de volver a navegar en la pila de símbolos (Ctrl-t). ¿Hay algo como esto en emacs?
P.D.> Algunos datos para hacer la pregunta más clara.
Tengo varias versiones del mismo proyecto. Cada uno tiene su propio directorio raíz. Cada proyecto tiene múltiples módulos cada uno dentro de un subdirectorio. Hay un archivo de encabezados en cada módulo.
/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
Esta es la configuración acerca de EDE que tengo en mi .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" . "")
)
)
Sólo para hacerle saber ... Estoy trabajando con la versión de consola (-nw) de emacs.
¿Qué problemas encontraste con EDE? –
He editado la pregunta para agregar información nueva. Gracias por su interés. – thamurath