Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quickfix を開いた状態ででコマンドラインウィンドウを使用するとメッセージが消える #569

Open
0xBADDCAFE opened this issue May 24, 2014 · 5 comments

Comments

@0xBADDCAFE
Copy link

再現手順

  1. :copen<CR>
  2. q:i
  3. :pwd<CR>

カレントディレクトリが表示されるはずですが、確認できません。
実際は一瞬表示されて、再描画がかかっているようで、:mes で確認しています。
GUI/CUI 環境問わずこの挙動のようです。

@h-east
Copy link
Member

h-east commented Jun 2, 2014

うーん、この動作が不具合かどうかは分かんないです:sweat_smile:
いい感じに修正出来るかも分かんないです。

だた、set noea して手順を実行するとちゃんと表示されたままになるので、いい感じに修正出来る可能性はあると思います。

@0xBADDCAFE
Copy link
Author

なるほど、'noequalalways' の処理で再描画がかかっているんですね。
確かに現状の挙動で動作していないわけではないので、不具合とは言いにくいと感じていました。

緊急性も高くなさそう (私以外に気になる方がいなさそう) なので、
'noequalalways' で運用しつつ、時間があるときに該当しそうな処理を追ってみます。

@ichizok
Copy link
Member

ichizok commented Jun 3, 2014

cmdline-window 閉じられるときに win_close
→ window.c:2326 の win_equalwin_equal_rec
で、quickfix ウインドウの位置が変わるので window.c:1703 の中に入って
redraw_all_later(CLEAR) が呼ばれて、
update_screen の際に screen.c:567 screenclear で画面全消去される

なんですが、window.c:1709 の redraw_all_later(CLEAR)redraw_all_later(NOT_VALID) では
だめなんでしょうか?これだとメッセージが消えずに済むんですが、、

@h-east
Copy link
Member

h-east commented Jun 5, 2014

@ichizok 解析乙です。
NOT_VALIDで良さそうな気もする。
逆に「消えなきゃマズいシチュエーション」ってないですかね。パッとは思いつかんけど:satisfied:

patch送ってみてもいいかも。

@ichizok
Copy link
Member

ichizok commented Jun 6, 2014

todoにありました

  • When the quickfix window is open and executing ":echo 'hello'" using the
    Command-line window, the text is immediately removed by the redrawing.
    (Michael Henry, 2008 Nov 1)

Generic solution: When redrawing while there is a message on the
cmdline, don't erase the display but draw over the existing text.

Other solution, redraw after closing the cmdline window, before executing
the command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants