Questo è un estratto dalla pagina CDT che descrive la loro analisi e indicizzazione (CDT/designs/Overview of Parsing). Dà una buona descrizione di ciò che le differenze sono e dove l'indicizzatore veloce può fallire:
l'analisi e la risoluzione vincolante è un processo lento , questo è un problema perché l'utente si aspetta modifica del codice caratteristiche come l'assistenza ai contenuti è veloce. Per questo motivo CDT memorizza le informazioni di associazione in una cache su disco denominata "l'indice" o "PDOM" (modello oggetto documento persistente) nell'ordine per poter fornire le funzionalità che rispondono rapidamente alle richieste dell'utente.
Costruire l'indice coinvolge l'analisi tutto il codice in un progetto, risolvendo tutte le associazioni e la scrittura di quelle associazioni per l'indice. L'indice è quindi aggiornato in modo incrementale ogni volta l'utente modifica un file.
versioni precedenti di sostegno CDT tre modalità di indicizzazione diverse, veloce indicizzazione, piena di indicizzazione e nessun indicizzazione. L'impostazione predefinita è l'indicizzatore veloce perché l'indicizzazione di un grande progetto può richiedere tempo un processo . La differenza tra i indicizzatori veloce e pieno è che il veloce indicizzatore salterà file header già analizzato una volta, mentre l'indicizzatore completo sarà sempre ri-analizzare un file di intestazione ogni volta che è incluso. Tuttavia è importante capire che l'indicizzatore completo, nonostante il suo nome, non è ancora completo preciso.
Quando un file di intestazione è incluso in un file di fonte che è soggetto ad alcuna macro che sono stati definiti a quel punto . Alcune intestazioni di libreria utilizzano le macro in combinazione con le condizioni condizionali del preprocessore (#ifdefs) per includere parzialmente un file di intestazione nello . A volte tale un file di intestazione è incluso più di una volta in un progetto, se le macro che l'intestazione dipende sono diverse ogni volta che l'intestazione è incluso poi diverse parti del colpo di testa possono essere inclusi in diversi file di origine. Nessun indicizzatore sarà accurato in questo scenario perché sarà solo indicizzare l'intestazione la prima volta che si incontra .
L'indicizzatore completo riprodurrà nuovamente le intestazioni che ha già rilevato, ma lo non le indicherà nuovamente. Pertanto, i file di origine che includono un'intestazione possono essere analizzati in modo più preciso, ma l'intestazione stessa verrà indicizzata solo per la volta . L'indicizzatore completo è molto più più veloce dell'indicizzatore veloce perché dell'analisi aggiuntiva, ma lo è solo marginalmente più accurato. Per questo motivo l'indicizzatore completo non è raccomandato ed è stato rimosso da la versione corrente di CDT.
Ad ogni progetto è associato un singolo PDOM . Il PDOM è memorizzato su disco come un file binario piatto. L'indicizzatore indicizzerà solo le intestazioni che sono incluse dai file di origine, quindi se nel progetto è presente un file .h non è incluso alcun file .c o .cpp, quindi normalmente non verrà visualizzato indicizzato. Tuttavia, è disponibile l'impostazione per l'indicizzazione di tutti i file nel progetto .
È ancora il caso, in Eclipse Kepler, di essere disponibili due indicizzatori? Non vedo due ... forse uno è stato rimosso? – einpoklum