先日vim onlineでスクリプトをチェックしていたところ、
id:ka-nachtさんが作成した、textobj-indentを見つけたので入れた。
その際、textobj-userが提供するフレームワークの下で、
自作のテキストオブジェクトが作れることを知り、
これは面白そうだと思ったので、自分もtextobj-indentの内容を基に
自作のテキストオブジェクトを作成してみまんた。
せっかく作ったので、晒してみるテスト。
作ったのは、関数呼び出し,定義部の引数部分にカーソルを置いて実行すると、
カーソルがある位置の引数を選択する、というもの。
(もしかしたら標準の機能であったりするんだろうか..)
キー割り当て
「i,」でカーソルがある位置のパラメータを一つ分だけ選択、
「a,」で一階層上のレベルでパラメータを選択(わかりにくいですね)
わかっている問題点
複数のパラメータをとるテンプレートを含む記述は意図したとおりに選択できない場合があるかも
だって、下記のような記述の場合、
func(p1<0, 1>(p2));
この部分だけでは
引数が一つなのか二つなのかを判断できないんですもの。
(p1が何であるかによって変わってくる)
括弧の外にカーソルがある状態で実行した場合、なんか広い範囲が選択される
場所によって、ブロックがまるごと選択されたり
ステートメント単位で選択されたりする。
このへんの挙動は気持ち悪いのでどうにかしたいところ。