Closed siaa4fu closed 3 years ago
こんにちは、便利に使わせてもらっています!
filetype が base_filetype から切り替わっているときにカレントバッファ以外を取り除くと、カレントバッファで filetype のリセットが起こってしまうことがあるので報告です。
具体的には、以下の様な toml ファイルを開いたとします。
[[plugins]] repo = 'test' hook_add = ''' let s:foo = 'bar' '''
カーソルが hook_add 内にあるとき、 base_filetype である toml から context_filetype である vim に切り替わっています。このとき、例えば以下の操作のいずれかを行うと base_filetype へのリセットが起こります。
hook_add
toml
vim
CTRL-W o
:call popup_notification('test', {})
問題は BufWinLeave 時の自動コマンドが、取り除かれつつあるバッファではなくカレントバッファで実行されることが原因です。実行すべきバッファを指定することで解決できました。
BufWinLeave
また、以下の修整を加えています。
precious#autocmd_switch()
b:precious_prev_context_filetype
以上です
あ、重複していて削除したのは BufWinEnter です。間違えました
BufWinEnter
ありがとうございます。マージしました。
こんにちは、便利に使わせてもらっています!
filetype が base_filetype から切り替わっているときにカレントバッファ以外を取り除くと、カレントバッファで filetype のリセットが起こってしまうことがあるので報告です。
例
具体的には、以下の様な toml ファイルを開いたとします。
カーソルが
hook_add
内にあるとき、 base_filetype であるtoml
から context_filetype であるvim
に切り替わっています。このとき、例えば以下の操作のいずれかを行うと base_filetype へのリセットが起こります。CTRL-W o
によって他のバッファを閉じる:call popup_notification('test', {})
でポップアップを開いてから閉じられるまで待つ修整
問題は
BufWinLeave
時の自動コマンドが、取り除かれつつあるバッファではなくカレントバッファで実行されることが原因です。実行すべきバッファを指定することで解決できました。その他
また、以下の修整を加えています。
precious#autocmd_switch()
を使うb:precious_prev_context_filetype
が上書きされるようにBufWinLeave
自動コマンドを削除以上です