lunedì 21 giugno 2010

Etags & PostgreSQL

etags è la versione per Emacs del programma ctags, lo scopo di entrambi è quello di indicizzare una serie di file sorgenti (tipicamente C, ma anche di altri linguaggi) per consentirne la navigazione da un editor testuale come vi oppure emacs. Mediante etags è possibile indicizzare l'intero albero dei sorgenti PostgreSQL per potervi navigare comodamente da Emacs. Purtroppo però, visto il numero elevato di sorgenti del progetto, etags non può essere lanciato con find sulla riga di comando, ovvero il seguente porterà ad una indicizzazione scorretta e imparziale:

etags `find . -name "*.c" - o -name "*.h"`

Si deve quindi usare find come comando principale, passando per ogni file trovato il controllo ad etags avendo cura di specificare il flag di append per non distruggere l'indicizzazione dei file trovati in precedenza. Quindi, ipotizzando di essere già dentro alla directory dei sorgenti, si può eseguire:

find `pwd` -name "*.c" -o -name "*.h" -print | xargs etags --append

e nella directory di lavoro verrà creato il file TAGS che contiene (in formato binario) l'indice da usare come Emacs. A questo punto s può aprire un qualunque file sorgente, posizionarsi sopra ad un simbolo e premere la combinazione di tasti ALT + . per saltare alla definizione del simbolo. Ovviamente Emacs non sa quale file di tag deve usare, così la prima volta che si effettuerà la combinazione di cui sopra chiederà quale file di tag deve aprire, e ovviamente occorre specificare il file appena creato.

Nessun commento: