[BUG] Re-shown snacks split puts the cursor a row above the prompt when it has a winbar
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 84/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- lua, neovim
調査の方向性
lua/claudecode/terminal/snacks.lua から始め、vsplit、nvim_win_set_buf、reapply_snacks_window_state 周辺の再表示シーケンスを調べます。デフォルトの snacks provider と winbar を使って、非表示/表示のサイクルを再現します。バッファ切り替え前に状態が再適用され、切り替えを繰り返しても Claude のプロンプトとカーソルの位置が揃ったまま、winbar も失われなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
Re-showing the split terminal with the snacks provider still leaves the cursor a row above Claude's ❯ prompt, the symptom in #240, whenever the split has a winbar. That's the default for split terminals (snacks/terminal.lua sets N: %{get(b:, 'term_title', '')} unless wo.winbar is set), and neither claudecode nor LazyVim's claudecode extra overrides it, so it's what you get out of the box.
To reproduce, open Claude in a right split with the default snacks provider, hide it with :ClaudeCode, show it again with :ClaudeCode, and the cursor sits a row above the prompt.
The re-show in lua/claudecode/terminal/snacks.lua runs vsplit, then nvim_win_set_buf, then reapply_snacks_window_state. Until the options are reapplied the terminal sits in a window with no winbar, one row taller than Claude last drew into. Neovim pulls a line of scrollback onto the screen when a terminal grows, and when the winbar comes back it drops a blank row off the bottom instead of pushing that line back, so the content ends up a row lower than Claude thinks it is. Claude redraws relative to the cursor, so every frame after that is a row off.
Moving reapply_snacks_window_state(term, new_win) above nvim_win_set_buf fixes it for me. The winbar survives the buffer switch, and hide/show stayed aligned in every case I tried, four quick toggles in a row included, with no Ctrl+L sent. Setting snacks_win_opts.wo.winbar = "" also works, but loses the title.
- Neovim 0.12.5
- Claude Code 2.1.283
- claudecode.nvim 2390c6e (current main)
- snacks.nvim 882c996
- WSL2 Ubuntu
- 主要言語
- Lua
- スター
- 3.1k
- フォーク
- 219
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
coder/claudecode.nvim のほかの issue
-
bug needs-triage
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
coder/claudecode.nvim#314 ·
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
coder/claudecode.nvim#313 ·
-
needs-triage
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
coder/claudecode.nvim#319 · リアクション 2 件 ·
-
[BUG] 框选文本一直抱错误信息オープンbug needs-triage
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
coder/claudecode.nvim#316 · コメント 1 件 ·
-
needs-triage
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
coder/claudecode.nvim#309 ·
coder/claudecode.nvim の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Facepunch/garrysmod-issues#7077 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
AstroNvim/astrotheme#184 ·