While the new diff UI looks quite nice, the scrolling logic is broken. I use F12
to jump through changes. Usually the right pane (new source) is scrolled
acceptably, but the left pane is often not scrolled to a reasonable position.
Sometimes the old block is even scrolled offscreen completely! Furthermore, when
the old and new blocks are not aligned, it is difficult to see the lines
connecting them, because the angle is too steep, and (especially in a densely
changed region like the imports section) the lines often overlap with other
Please play with this a bit. I would prefer for both the old and new blocks to
always be centered in their respective panes. This would let my eyes rest on the
center of screen rather than having to look up and down repeatedly, and it would
ensure that the blocks were reasonably well aligned.
I agree that when using Next/Previous Difference actions the selected difference
should be completely visible on both sides and aligned (if possible). I'll try
to tune the scrolling engine and if that fails then hardcoding it to treat
Next/Previous actions and Scrollbar differently. I'd appreciate if you give an
example (file revisions) when this behavior clearly manifests.
I guess I don't have any particular example in mind; seems to happen
consistently for all sorts of changes I make. Next time I am doing a diff I
could attach some screenshots if that would be helpful. Probably changes which
involve adding or deleting significant blocks of code would show it more, since
then the line numbers are out of synch between the old and new buffers.
Created attachment 40050 [details]
Screenshot showing misaligned diff blocks (still all on screen; no off-screen problems in this diff)
Created attachment 40230 [details]
Screenshot showing even more misaligned diff
Should be better now.
new revision: 1.24; previous revision: 1.23
Created attachment 51522 [details]
Screenshot from dev build
Doesn't seem any better; see recent screenshot. In this case the scrollbar is at the bottom despite the fact that the
old text is not completely visible. The only way to see what code is being replaced is to put the cursor in the left
editor pane and move it down with arrow keys. In such a case the active diff block is reset to be one further up; after
pressing Ctrl-. the end of the old file is hidden again. Generally, I am having the same kind of problems I was having
before, so I'm not sure what was fixed.
I should also mention that Ctrl-. very frequently skips over one or more diff blocks, so that I will often press Ctrl-.
while in one file and find myself 2/3 of the way down into another file. (Ctrl-, seems to reliably go backward one diff
block at a time.) Overall, very irritating - I am never sure that I have actually seen all of the changes I made.
Completely agree with jglick, got the same sort of misbehavior.
I have made additional improvements during recent months, please verify.
Created attachment 57822 [details]
Screenshot using current sources
Perhaps better than it was, but still fails to scroll to show the entire modified region in many common cases. Just try
inserting or deleting half-screen-sized blocks of text randomly and browse diffs; scrolling is definitely less than optimal.
Still quite bad, often unusable.
Still bordering on unusable. Refactoring preview for Inspect & Transform, even something that does not add or remove lines - e.g. remove final modifier from static methods - will typically scroll to show old code on left side but show a completely different section of the new file on the right side.
Same scrolling/centering problems persist. Also noticed that Ctrl-PERIOD often skips over some diff hunks; have to use Ctrl-COMMA several times to "back up" and hope that this will make the skipped hunk visible (but usually requires manual correction with scrollbars).