Sto provando da oltre un anno a utilizzare Emacs come IDE C / C ++. Finora ho avuto un successo solo marginale, ma lungo la strada ho incontrato alcuni muri di mattoni. Attualmente sto cercando di usare CEDET, ma sto avendo difficoltà a capire come usarlo in modo efficace.
Le funzionalità che sto cercando in un IDE sono le seguenti:
- Gestione di "progetti" software Voglio che il mio IDE abbia un'idea di tutti i file che compongono il mio progetto attuale in modo da poter eseguire funzioni come ricerca e sostituzione all'interno del mio progetto. (Sarebbe bello se anche io potessi raggiungere questo obiettivo senza sporcare il mio albero dei sorgenti con molti file di supporto. Perché ho bisogno di più di un file di progetto centralizzato per progetto?)
- La possibilità di creare il progetto corrente dall'IDE, indipendentemente dal buffer che sto visitando. Devo essere in grado di associare una chiave che costruirà il progetto attuale.
- Segnalazione errori. Non voglio leggere oltre 500 righe di output per trovare gli errori segnalati dagli strumenti di compilazione. Preferibilmente, gli errori vengono visualizzati nel proprio buffer con una riga per errore.
- Una consapevolezza dei simboli all'interno del progetto e dove sono definiti. Voglio passare alla definizione di un simbolo se risiede nei miei file di progetto o nel file di inclusione del sistema.
- Debug visivo. Voglio avere una lista di variabili locali che si aggiornano automaticamente mentre passo attraverso il codice. Voglio essere in grado di impostare i punti di interruzione nel codice per vedere quale riga di codice verrà eseguita successivamente.
So che ognuna di queste funzionalità esiste perché ho avuto ciascuna di esse funzionante in un momento o in un altro utilizzando EDE, Semantic, GDB, ecc. Il problema è che non sono mai stato in grado di avere tutte queste funzionalità funzionanti contemporaneamente , perché di solito ogni pezzo deve essere configurato da solo, ed è di solito troppo lavoro per capire come configurarli tutti in una volta e farli lavorare insieme.
Quali soluzioni esistono per trasformare Emacs in un IDE C / C ++ completo? Devi sempre configurare tutto frammentariamente o c'è un modo per impostare tutte le funzionalità contemporaneamente?
EDIT: una buona risposta a questa domanda non deve soddisfare esattamente tutti e cinque i criteri indicati. Ho semplicemente fornito l'elenco per dare un'idea più concreta del tipo di funzionalità che voglio vedere prima di considerare un IDE "full optional". È del tutto possibile che CEDET possa adattarsi al conto, ma devo ancora trovare un tutorial passo-passo funzionante su come configurarlo da zero.