fix(commands): add diff buffer UX improvements#95
Merged
barrettruth merged 2 commits intomainfrom Feb 7, 2026
Merged
Conversation
Problem: diffs:// buffers could trigger spurious LSP diagnostics, opening multiple diffs from fugitive created redundant splits, and there was no quick way to close diff windows. Solution: disable diagnostics on diff buffers, reuse existing diffs:// windows in the tabpage instead of creating new splits, and add a buffer-local q keymap to close diff windows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
diffs://buffers could trigger spurious LSP diagnostics since LSP serverstry to attach to non-file URI schemes. Opening multiple diffs from the
fugitive status buffer created redundant window splits. No quick way to
close diff windows without
:closeor:q.Solution
Three targeted UX improvements to diff buffer handling:
vim.diagnosticon alldiffs://buffers immediately after creation
diffs://window already exists in thetabpage, replace its buffer instead of creating a new split
qkeymap — buffer-localqmapping to close the diff window,following the fugitive convention for auxiliary views
All three are wired through
setup_diff_buf()andfind_diffs_window()helpers called from
gdiff(),gdiff_file(), andgdiff_section().Closes #83