textobj-multitextobj で任意のグループをマッピングする機能を追加した
g:textobj_multitextobj_textobjects_group_i 等は特定のグループ名しか設定できなかったんですが、任意のグループをマッピングできる機能を実装してみました。
[今まで]
" "A" 〜 "E" のグループ名を使用する必要があった let g:textobj_multitextobj_textobjects_group_i = { \ "A" : [ \ "\<Plug>(textobj-multiblock-i)", \ "\<Plug>(textobj-indent-i)", \ "\<Plug>(textobj-function-i)", \ ] \} map <Plug>(textobj-region-i) <Plug>(textobj-multitextobj-A-i)
[実装後]
" 任意のグループ名で設定 let g:textobj_multitextobj_textobjects_group_a = { \ "region" : [ \ "\<Plug>(textobj-multiblock-i)", \ "\<Plug>(textobj-indent-i)", \ "\<Plug>(textobj-function-i)", \ ] \} " <expr> を指定して、textobj#multitextobj#mapexpr_i({group}) を使用する map <expr> <Plug>(textobj-region-i) textobj#multitextobj#mapexpr_i("region")
このような感じで任意のグループ名を使用する事ができます。
vim-textobj-user がよくわかってなくてコードがだいぶひどくなってしまった…。