Sto lavorando su un grande progetto C++. Sto lavorando con emacs negli ultimi sei mesi. Ho provato a configurare CEDET in modo da essere in grado di navigare facilmente ma ho trovato alcuni problemi.Funzioni di navigazione del codice sorgente di Emacs
1.- A volte la semantica non trova alcuni simboli e talvolta non ... non so con certezza quali file sono indicizzati semanticamente. Ho cercato di utilizzare EDE (seguendo le istruzioni in questo articolo http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html), ma ho trovato alcuni problemi anche ...
- Ho versione multipla (Stampa) dello stesso progetto, ognuno nel proprio cartella. Come posso dire a Emacs con quale progetto sto lavorando?
- Come posso dire a Ede dove cercare i miei file di intestazione? Posso specificare solo una directory root e la semantica cercherà i file header in tutte le sottodirectory?
2.- Stavo lavorando con vim + cscope qualche tempo fa e ricordo che c'era un modo per tornare indietro nella pila di simboli (Ctrl-t). C'è qualcosa di simile in emacs?
P.D.> Alcuni dati per rendere la domanda più chiara.
Ho più versioni dello stesso progetto. Ognuno ha la propria directory radice. Ogni progetto ha più moduli ciascuno all'interno di una sottodirectory. Ci sono file di intestazioni in ciascun modulo.
/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
Questa è la configurazione su EDE ho nel mio .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" . "")
)
)
Giusto per farvi sapere ... Sto lavorando con la versione console (-nw) di emacs.
Quali problemi hai riscontrato con EDE? –
Ho modificato la domanda per aggiungere alcune nuove informazioni. Grazie per l'interesse. – thamurath