Dans la catégorie « l'outil ultime qui déchire, » il y a Etags.
Etags est, comme on peut le deviner, un outil d'Emacs qui gère les
tags dans les codes sources. Les tags en question sont des
pointeurs vers les fonctions, variables, defines et autres symboles
qui permettent de savoir où ils sont placés dans le code source.
L'idée est de maintenir un fichier contenant ces positions (le fichier
TAGS) puis de l'utiliser comme base de données pour tout
travail ultérieur de recherche. Ce fichier est créé avec la commande
suivante (exemple pour du code C, mais ça marche avec tous les
langages majeurs) :
$ etags *.c
En mode d'édition, si on désire savoir où est définie telle fonction,
on déplace le curseur sur un appel à cette fonction et on appuie sur
M-.. Emacs demande où se trouve le fichier TAGS si c'est la
première utilisation (et fait une proposition de nom), il suffit
ensuite de valider. Et là, magie!, Emacs ouvre tout seul comme un
grand le fichier contenant la fonction appelée et positionne la marque
au début de la fonction.
Il est également possible d'effectuer une recherche sur un symbole
particulier. Par exemple, vous voulez savoir à quel endroit du code
telle fonction est appelée et comment. Facile ! Tapez
M-x tags-search puis le nom de votre fonction. Emacs
déplacera le point vers la prochaine occurence de la définition ou de
l'appel de votre fonction, tout en ignorant les commentaires. L'appui
sur
M-, permettra de passer à l'occurence suivante.
Finies les longues minutes à rechercher les fonctions d'un code à
coups de grep ... encore une victoire de canard !