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 がよくわかってなくてコードがだいぶひどくなってしまった…。