The diff view is broken when editor line wrapping is on, it is keeps blinking (repositioning), consuming all CPU.
Seen in dev build 201007200001.
While i was testing the diff with enabled line-wrapping (both switch and wrapping after words on), i came across two problems. They appear *only* when the wrapping after words/everywhere is enabled. When i *only* set the commandline switch to true (org.netbeans.modules.editor.linewrap=true) but leave the linewrapping off (in Tools > Options > Editor), everything works just fine.
1) diff markers in the editor (the bar on the left side of the editor) - the markers are initially displayed on the correct line. However as i scroll through a long file, the editor starts blinking after a while, seems to be recalculating something and all annotations (diff markers as well as other annotations) are relocated several lines above/below. This seems to be an editor problem.
2) broken diff view (Mercurial > Diff) - the diff view constantly resizes itself, repaints and never stops blinking.
I think the cause of this is the following: diff listens for changes in panel's size, recalculates highlighting in reaction for this event and fires a highlightChanged event. But then the editor seems to rebuild the view hierarchy (or something like that), resizes the pane and thus triggers the diff recalculation and the cycle is started again. This loop never finishes. I guess this can be fixed on our side (in diff), i just mention this because it worked fine with the old view hierarchy's implementation (and even with the new implementation at the end of 6.9 development cycle).
milo, could you look into the editor-related part of the problem?
I have the same issues in the latest build. Also I took this error http://statistics.netbeans.org/analytics/detail.do?id=171521 after some time of blinking the diff page
Yes, I'm still working on resolving of this. Basically all paragraph-view rebuilds (e.g. after a re-parse) need to retain previously present paragraph-view spans to avoid scrollbar going back and forth. Otherwise current lazy-children views computation would assign default line heights to paragraph views and painting/measuring that comes afterwards would initialize the children and expand the paragraph-view's height. Unfortunately with the present version of the fix there are still cases that need fixing.
I have modified the fix and it now appears to work fine.
It seems that the diff works fine now so marking as fixed. Please reopen the issue if the problems would persist.
I must reopen since a left view of the diff view appears sometimes shifted up when line wrapping is on and the the window's width becomes narrow. Reassigning to Ondra for evaluation.
Integrated into 'main-golden', will be available in build *201008110001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Miloslav Metelka <firstname.lastname@example.org>
Log: #188779 - Diff not working with line wrapping - With line wrapping on the view changed vertical size frequently during typing.
happens only occasionally, resizing the diff window a bit seems to fix the problem.
lowering priority for now...
Integrated into 'main-golden', will be available in build *201008250001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Ondrej Vrabec <email@example.com>
Log: #188779 - Diff not working with line wrapping
fixing problems in the slider between diff panes
Dupe of bug #189696?
issue #189696 is duplicate of what was reported in comment #6 and fixed by ovrabec in #ae27bc307c4f
this one is not closed because there are still some problems with diff when line wrapping is on.
*** Bug 189696 has been marked as a duplicate of this bug. ***
Lot has been fixed in diff regarding line-wrapping. If there is a specific problem, let's file a separate issue.