Alla ricerca della funzione…

18 08 2007


Quante volte vi siete trovati davanti ad una funzione domandandovi: “ma dov’è definita? cosa fa esattamente?”
Non vi siete posti questa domanda? Allora questo post non è per voi! :D

Lo script che vi presento oggi, serve proprio a questo, cercare la definizione di una funzione e visualizzarne l’implementazione
Per prima cosa occorre installare il pacchetto exuberant-ctags, quindi come di consueto:
sudo apt-get install exuberant-ctags
quindi aprite l’editor che preferite ed inserite questo codice:
#! /bin/bash
TMPFILE=/tmp/$$
ctags -R -x 2>/dev/null | grep "^${1} *function " > $TMPFILE
if [ ! -s $TMPFILE ]
then
echo "Funzione ${1} non trovata"
exit 1
fi
SZ=$(wc -l $TMPFILE|cut -d " " -f 1)
if [ ! ${SZ} -eq 1 ]
then
echo "Funzione rilevata più volte"
cat $TMPFILE
else
FILE=$(cat $TMPFILE|awk { print $4 })
LINE=$(cat $TMPFILE|awk { print $3 })
echo "Apertura $FILE posizione $LINE"
vim +${LINE} $FILE
fi
rm -f $TMPFILE

Attenzione! L’apice non viene scritto correttamente nel codice sopra riportato, quindi sostituite ` (apice inverso) con un (apice normale)

Salviamo il file (ad esempio come cercaFunzione) e impostiamo i permessi necessari:
chmod +x cercaFunzione
Ora per ricercare una funzione (ad esempio myFunction), andiamo nella cartella dei sorgenti e digitiamo:
/path/dello/script/cercaFunzione myFunction
(invece di /path/dello/script/ dovete inserire il path dove avete salvato lo script) automaticamente verrà aperto VIm e sarà posizionato esattamente dove si trova la funzione myFunction ;)


Azioni

Informazione

Lascia un commento

Puoi usare questi tag : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>