Ho sperimentato con cedet e semantico nella mia configurazione di sviluppo c/C++ di emacs e sono abbastanza soddisfatto tranne un piccolo dettaglio.Semantico, cedet come forzare l'analisi dei file sorgente
Io uso ede-cpp-root-project
di creare un progetto e dare la directory principale del mio progetto insieme con le directory in cui includono file risiedono come di seguito:
(ede-cpp-root-project "My Project"
:name "My Project"
:file "/path/to/rootdir/AFILE"
:include-path '(
"/include2"
"/include1"
)
)
Questo mi permette di saltare facilmente alle dichiarazioni di funzioni con semantic-ia-fast-jump
ma non mi porta alle definizioni di quelle funzioni. Quindi sembra che abbia a che fare solo con i file header e ignori totalmente i file sorgente. Anche se vado sulla dichiarazione della funzione e trigger semantic-analyze-proto-impl-toggle
mi dirà che non è stata trovata alcuna implementazione adeguata.
Se apro manualmente il file di origine in cui si trova l'implementazione della funzione, allora e solo allora viene analizzato da semantico e tutte le funzioni sopra menzionate funzionano.
Quindi la mia domanda è, aprendo a corto di manualmente tutti i file sorgenti inclusi sotto la directory principale del mio progetto o manualmente includerli nel ede-cpp-root-project
tramite l'argomento :spp-files
c'è qualche altro modo per forzare l'analisi di tutti i file sorgente in una directory?
Grazie!
Hey mi sono imbattuto in un blog troppo e questa soluzione sembra buono, ma non lo farà emacs salva il database dei tag attraverso le sessioni. Mi sto perdendo qualcosa? – jarvisteve
hey, è strano. Dovrebbero essere salvati in una directory chiamata .semanticdb all'interno della directory .emacs – Lefteris
Ho avuto un problema in cui il mio elenco di file era così lungo che Emacs era in grado di bloccarsi e apparentemente non fare ulteriori progressi. Lo risolvo aggiungendo una chiamata a (semanticdb-save-all-db) prima di passare alla directory successiva. In questo modo la cache viene aggiornata continuamente. Forse sarebbe d'aiuto. Normalmente la semantica salva solo quando esci da emacs. – RealityMonster