rhysd/vim-operator-surround

ファイルタイプ毎の設定にデフォルト設定をマージしたい

Closed this issue · 8 comments

デフォルトの設定に少しだけ追加したい設定がある場合に、- の場合には、g:no_default_blocks によりマージされると思うのですが、

  • 特定のファイルタイプにデフォルトの設定 + αしたい場合
  • もしくは、- の設定に+αしたい場合

に、最小限の設定(αのみの追加)でできるようにならないでしょうか?

(コメントが消えたということはもうすぐ実装終わるんだな)

逆です.僕の中で Vim のタスクは優先度が低いので,あまり適当なことを書くのはどうかと思って消しました.ただ,4/5 の yokohama.vim と 4/12 の TokyoVim で Vim 周りの作業をする機会があるので,その辺りで手を付けられればと思っています.

まぁ優先度低いですよね。
デフォルト設定を返す関数を定義してもらうことはできませんか。

できますが、どういう使い方を想定していますか?(それによって deepcopy() して返すかどうかとか違ってくると思いますので)

ファイルタイプ用の設定に、定義してもらった関数の復帰値を extend でマージするつもりです。
(今はヘルプの内容をコピペしたものを s:operator_surround_blocks としてマージしていますが、気持ち悪い。とりあえずコピペ部分がなくなれば満足です)

for s:k in ["hoge", "c", "tex"]
    let g:operator#surround#blocks[s:k] =
    \ extend(g:operator#surround#blocks[s:k],
    \        s:operator_surround_blocks, "keep")
endfor

私の使い方では必要ないですが、deepcopy() しておいたほうが良いのではないでしょうか?

了解です。それについては今晩実装します。

読み取り専用の変数 g:operator#surround#default_blocks を実装しました.

確認しました。ありがとうございます(さっそく利用できました)