Skip to content

fix(window): display loaded buffer even if file got deactivated mid-yield#202

Merged
dlyongemallo merged 1 commit into
mainfrom
tab_race_condition
May 22, 2026
Merged

fix(window): display loaded buffer even if file got deactivated mid-yield#202
dlyongemallo merged 1 commit into
mainfrom
tab_race_condition

Conversation

@dlyongemallo
Copy link
Copy Markdown
Owner

Fixes a crash that occurs if user hits <tab>/<s-tab> rapidly when diffview first opens.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes an async race during initial Diffview open where rapid <tab>/<s-tab> navigation can deactivate an in-flight file between Layout.open_files’ load loop and open loop, leaving a window stuck on the null placeholder and causing downstream cursor-jump failures.

Changes:

  • Update Window.open_file() to only gate loading on file.active, but still display an already-loaded buffer even if the file became inactive mid-yield.
  • Add a functional regression test covering the “loaded-but-deactivated” window display case.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
lua/diffview/scene/window.lua Adjusts Window.open_file() control flow to avoid leaving open_null displayed when the file buffer is already loaded but became inactive.
lua/diffview/tests/functional/window_spec.lua Adds a regression test ensuring an already-loaded buffer is still displayed even if file.active=false.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dlyongemallo dlyongemallo merged commit 4ae1640 into main May 22, 2026
8 checks passed
@dlyongemallo dlyongemallo deleted the tab_race_condition branch May 22, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants