By | 2008年9月4日

ctagsが便利そうだったので使ってみることにする。
簡単に説明するとメソッドやクラスから簡単に定義元のソースへ jump できる感じです。

まず default のままだと ctags の language には actionscript がないので追加します。
~/.ctags をつくればいいので下記をコピペします。

--langdef=actionscript
--langmap=actionscript:.as
--regex-actionscript=/^[ \t]*[(private| public|static) ( \t)]*function[ \t]+([A-Za-z0-9_]+)[ \t]*\(/\1/f, function, functions/
--regex-actionscript=/^[ \t]*[(public) ( \t)]*function[ \t]+(set|get) [ \t]+([A-Za-z0-9_]+)[ \t]*\(/\1 \2/p,property, propertis/
--regex-actionscript=/^[ \t]*[(private| public|static) ( \t)]*var[ \t]+([A-Za-z0-9_]+)[ \t]*/\1/v,variable, variables/
--regex-actionscript=/.*\.prototype \.([A-Za-z0-9 ]+)=([ \t]?)function( [ \t]?)*\(/\1/ f,function, functions/
--regex-actionscript=/^[ \t]*class[ \t]+([A-Za-z0-9_]+)[ \t]*/\1/c,class, classes/

あとは簡単。

!/bin/sh
 
echo 'Generating tags for spark ...'
SPARK_DIR=~/repos/svn/spark/as3
ctags -f ~/.vim/tags/actionscript/spark.tags --recurse --totals \
    --exclude=blib \
    --exclude=.svn \
    --exclude='*~' \
    --languages=actionscript \
    $SPARK_DIR/*/trunk/src $SPARK_DIR/as3/*/src

こんな shell を作ります。
ちなみに sample や変なソースも見るとめんどうなので
{project}/src, {project}/trunk/src 以下のみを読み込むようにしました。
svn upしたタイミング、もしくは1日1回とかで更新すればいいと思います。

autocmd FileType actionscript :set tags=~/.vim/tags/actionscript/spark.tags

あとは .vimrc に追記すると使えます。

感想は、まぢで便利!!!!!!!
ほんと Spark!!!!!!!!!!!!! できますw
デモ画像をのっとくんでイメージわくと幸いです。
デモ画像では Thread を使ってやってます。おかりいたします。。。

いあ〜満足!!!

test1

test1

*参考資料
http://vim-taglist.sourceforge.net/extend.html
http://archiva.jp/web/tool/vim_ctags.html