Skip to content

fix(scene): fix range selection freeze in :DiffviewFileHistory#44

Merged
dlyongemallo merged 2 commits intomainfrom
fix_range_selection_freeze
Mar 16, 2026
Merged

fix(scene): fix range selection freeze in :DiffviewFileHistory#44
dlyongemallo merged 2 commits intomainfrom
fix_range_selection_freeze

Conversation

@dlyongemallo
Copy link
Copy Markdown
Owner

No description provided.

Setting foldmethod=manual on diff windows triggers a Neovim bug where
the screen redraw enters an infinite loop for certain buffer pairs.
This permanently freezes the editor.

Fixes sindrets#552
Copilot AI review requested due to automatic review settings March 16, 2026 10:03
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

Removes the “custom diff patch folds” feature used in File History line-tracing diffs and adjusts window behavior to avoid a Neovim infinite-redraw freeze scenario when diff=true is combined with foldmethod=manual.

Changes:

  • Removed custom fold data/modeling (custom_folds) from vcs.File and deleted the related fold-application logic from Window.
  • Removed patch-hunk-derived fold generation (update_patch_folds / has_patch_folds) and the File History codepath that enabled foldmethod=manual for line-tracing.
  • Improved File History “file opened” behavior to jump to the first diff hunk and center the view.

Reviewed changes

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

Show a summary per file
File Description
lua/diffview/vcs/file.lua Removes custom_folds type/docs from the vcs.File model.
lua/diffview/scene/window.lua Deletes apply_custom_folds and stops calling it on window open.
lua/diffview/scene/views/file_history/listeners.lua Uses nvim_win_call to move cursor, jump to first hunk, and center after opening a file.
lua/diffview/scene/views/file_history/file_history_view.lua Removes foldmethod=manual + patch-fold logic; adds note about Neovim freeze bug and relies on foldmethod=diff.
lua/diffview/scene/file_entry.lua Removes patch-fold generation and detection helpers.

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

@dlyongemallo dlyongemallo merged commit bd7bb55 into main Mar 16, 2026
6 checks passed
@dlyongemallo dlyongemallo deleted the fix_range_selection_freeze branch March 16, 2026 10:08
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