textobj-function-javascript と textobj-function-perl 書いた

id:ka-nacht さんが TOFunc を textobj-function と言う形でリリースしてくれたので、以前私が書いた javascript_tofunc.vim を追従させる形で修正した。
詳細は前回のエントリを見てもらうとして、挙動の変更点がいくつか。

変更点

if (inner function) の挙動を変更

関数の{から行末までの間、および}から行頭までの間が全て空白文字だった場合、行指向の関数とみなし内側を行指向で選択するようにした。
id:ka-nacht さんに指摘されて変更。こちらの方が便利な場合が多いはず。

countに対応

count を指定 (2daf など)すると、count個外側の関数が選択される。javascript は関数を入れ子で書くことが多いので、使えた方が便利なはず。

ソース

前回のとは互換性がないので新しくgistに貼った。
http://gist.github.com/101659
埋め込みたかったんだけど、gistのファイル名に/が混じっているとうまく埋め込めない模様。gist--。

追記

こういう話を見つけたので、ちょろっと改編してperl版も作ってみた。
http://gist.github.com/101710
元の記事には言語が何か明記していなかったのだけれど、見た目でperlだと勝手に判断。
functionをsubに変えて引数リストのあたりを少し弄っただけ。

2009/05/02 追記

リポジトリに移した。
http://github.com/thinca/vim-textobj-plugins/tree/master
ついでにafも可能な場合は行指向になるように変更。
しょぼいながらもhelpも書いたので、id:ka-nachtさんがtextobj-functionに取り込んで配布してくれるかもしれません。