Closed ofseed closed 4 weeks ago
Gitsigns just uses set scrollbind
in each window. This is probably a limitation of virtual_lines in Neovim. I don't think we can fix that here.
I also guessed that it might be an upstream problem, but there will not be this issue when just using diff-mode
, which utilizes set scrollbind
too. I have no idea how to make it work properly.
Diff mode doesn't use extmarks and injects filler lines directly.
Raised https://github.com/neovim/neovim/issues/29751 . Not sure what we can do to mitigate this in the meantime other than removing the virtual lines.
The upstream fix works well, thank you for your great work!
Description
:Gitsigns blame
add gaps to the main window when the diff is smaller than two lines. I found that when scrolling line by line usingj
or<C-e>
, the blame window will not follow the scroll when the one gap is scrolled out of the screen.Example.webm
Neovim version
NVIM v0.11.0-dev-3461+g9e436251d (latest master currently)
Operating system and version
6.9.6-arch1-1
Expected behavior
The two windows should scroll together and be always aligned.
Actual behavior
If it is a gap rather than a line of text be scrolled out the screen, the blame window will not be scroll following the main window.
Minimal config
Steps to reproduce
minimal.lua
in place and save it after copying its contentgitsigns.nvim
repo bynvim -u minimal.lua lua/gitsigns.lua
Gitsigns debug messages
No response
Gitsigns cache
No response