Closed osyo-manga closed 11 years ago
原因が分かりました。バッファ保存時にfoldinfoをもとに戻しているからです。 もとに戻さないオプションを用意してもいいですが、どうしようかな……。
バグではないし、neocomplete.vimだけに追加しても良い気がする。 foldmethodにexprもしくはsyntaxを使っているのが原因なので、markerを使うようにすれば問題はないはずです。
set foldmethod=marker
を設定して試してみましたがちらつきが再現しますね。
for 文内のsettabwinvar
の処理をコメントアウトして試してみましたがちらつきが再現するので原因は別にもあると思います。
(一番あやしいのは filter(range(1, tabpagewinnr(tabnr, '$')), "!empty(gettabwinvar(tabnr, v:val, 'neocomplcache_foldinfo'))")
辺り。
あ、思い出しました。gettabwinvar()は毎回ウインドウを移動するのです。 これ使わないように修正しようかな。
うげ、そんな副作用が…。
とりあえず、ver.8.1ブランチで修正しました。問題がないか確認してください。 問題なければ、masterにもマージします。
了解です。試してみます。
こちらでも動作することを確認しました。
了解。masterにもマージします。
ありがとうございました。
masterにマージ完了しました。
lingr で言っていた件ですが再現方法が分かったのでまとめ。
動作環境
vimrc の最小構成
再現手順
:e vimrc
:tabnew gvimrc
:w
そちらでも試してもらえると助かります。
メモ
autocmd BufWritePost * call neocomplcache#handler#_on_write_post()
が設定されている場合のみ再現