-->

2012-11-04

memo: cscope

http://d.hatena.ne.jp/goinger/20100424/1272134240
http://d.hatena.ne.jp/hsyd/20100511/1273595996
http://sajin.sakura.ne.jp/diary/?date=201001

$ emerge -pv dev-util/cscope|grep USE
[ebuild   R    ] dev-util/cscope-15.8a  USE="emacs" 0 kB

$ find . -type f -readable -name "*.php" > cscope.files

# Smartyのキャッシュ除外
#$ find . -type f -readable -name "*.php" ! -name "%%*.tpl.php" > cscope.files

$ for fn in $(find . -type f -readable ! -name "*.php" ! -name "*.phpt" ! -name "*.phps"); do \
file $fn | grep -P "ASCII text(?:,|$)" 2>&1 >/dev/null && \
grep "&1 >/dev/null && \
php -l $fn 2>&1 >/dev/null && \
echo $fn; \
done | \
while read -r fn; do \
test -e "$fn" && echo $fn; \
done > cscope.files.tmp

# いらない場合が多い。php以外の拡張子でphpっぽいのを探す。
#$ cat cscope.files.tmp >> cscope.files

$ rm -i cscope.out
$ cscope -b

こんだけ使ったが便利だと思う。
C-c s s => n(next), p(prev), o(移動して閉じる)
C-c s t => こっちテキストなんでマッチするのが多い。

ディレクトリ名ごとのcscope.outのパスの設定もできるっぽい。

0 件のコメント: