Skip to content

fix(ui): prevent duplicate windows by implementing buffer-to-window binding#238

Merged
sudo-tee merged 6 commits intomainfrom
fix/duplicate-windows
Feb 5, 2026
Merged

fix(ui): prevent duplicate windows by implementing buffer-to-window binding#238
sudo-tee merged 6 commits intomainfrom
fix/duplicate-windows

Conversation

@sudo-tee
Copy link
Owner

@sudo-tee sudo-tee commented Feb 5, 2026

This should close #144

Copy link
Contributor

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

This PR introduces a new buf_fix_win module that prevents buffers from appearing in multiple windows simultaneously, addressing a limitation where winfixbuf only prevents windows from changing buffers but doesn't prevent buffers from appearing in multiple windows. The implementation uses autocmds to monitor and close duplicate windows whenever a buffer appears in more than its intended window.

Changes:

  • Added a new buf_fix_win module with autocmd-based window enforcement logic
  • Integrated buffer-to-window binding in both input and output window creation
  • Added comprehensive test coverage for the new module including edge cases and autocmd behavior
  • Made minor refactoring improvements to autocmds.lua for consistency

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
lua/opencode/ui/buf_fix_win.lua New module implementing buffer-to-window binding using autocmds to close duplicate windows
lua/opencode/ui/output_window.lua Integrated buf_fix_win in buffer creation; added bufhidden and buflisted options
lua/opencode/ui/input_window.lua Integrated buf_fix_win in buffer creation; added bufhidden and buflisted options
lua/opencode/ui/autocmds.lua Refactored to use locally-required modules instead of inline requires; removed trailing blank line
tests/unit/buf_fix_win_spec.lua Comprehensive test suite covering basic functionality, edge cases, autocmd setup behavior, and VimResized event handling

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

@sudo-tee sudo-tee force-pushed the fix/duplicate-windows branch from 0159e99 to d98ee70 Compare February 5, 2026 14:04
@sudo-tee sudo-tee merged commit 0ff55d4 into main Feb 5, 2026
10 checks passed
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.

Got two input buffers when I resize the nvim window

2 participants