[BUG] floating window does not disappear when diff view is shown
- 主要言語
- Lua
- スター
- 3.1k
- フォーク
- 216
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
## Bug Description
With `terminal.snacks_win_opts.position` is set to `float`, the floating window does not disappear when a diff view is opened. Instead, the diff view is visible and has cursor focus. Calling `ClaudeCodeFocus` will switch focus to the open floating window. Calling it again will make the window disappear and switch to the diff view. However, this is a very cumbersome workaround.
My config:
```
{
terminal_cmd = "~/.claude/local/claude",
diff_opts = {
keep_terminal_focus = false,
},
terminal = {
snacks_win_opts = {
position="float",
width=0.9,
height=0.9,
backdrop={
bg="blue",
blend=90,
},
keys = {
claude_hide = {
toggle_key,
function(self)
self:hide()
end,
mode="t",
desc="Hide",
}
},
}
}
}
```
## To Reproduce
Steps to reproduce the behavior:
1. Open a file and launch Claude Code by calling `ClaudeCodeFocus`.
2. Ask Claude to produce a change to the code.
3. Observe that the diff view opens, with the cursor on it, but the floating window is still visible mostly obscuring it.
## Expected Behavior
The floating window should disappear when the diff view opens.
## Environment
- Neovim version: 0.9.5 (0.9.5-6ubuntu2)
- Claude Code CLI version: 2.1.19
- OS: Ubuntu 24.04.3 LTS
- Plugin version: main (93f8e48)
- Snacks version: 2.27.0
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
issue では ClaudeCodeFocus と diff-view フローについて言及されています。terminal.snacks_win_opts.position を float に設定し、diff_opts.keep_terminal_focus=false にして再現してください。ClaudeCodeFocus と diff のオープン処理周辺のフォーカスおよびウィンドウ処理を追跡し、その後、diff を開くと 2 回目のフォーカス呼び出しなしでフローティングウィンドウが非表示になることを確認してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua, neovim
- 領域
- tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100