fAncestor.addTextPresentationListener(new ChangeHighlighter(fAncestor)); fLeft.addTextPresentationListener(new ChangeHighlighter(fLeft)); fRight.addTextPresentationListener(new ChangeHighlighter(fRight));
public void applyTextPresentation(TextPresentation textPresentation) { if (!fHighlightTokenChanges) return; IRegion region= textPresentation.getExtent(); Diff[] changeDiffs = getChangeDiffs(region); for (int i = 0; i < changeDiffs.length; i++) { Diff diff = changeDiffs[i]; StyleRange range = getStyleRange(diff, region); if (range != null) textPresentation.mergeStyleRange(range); } }
private StyleRange getStyleRange(Diff diff, IRegion region) { //Color cText = getColor(null, getTextColor()); Color cTextFill = getColor(null, getTextFillColor(diff)); if (cTextFill == null) return null; Position p = diff.getPosition(getLeg(viewer)); int start = p.getOffset(); int length = p.getLength(); // Don't start before the region if (start < region.getOffset()) { length = length - (region.getOffset() - start); start = region.getOffset(); } // Don't go past the end of the region int regionEnd = region.getOffset() + region.getLength(); if (start + length > regionEnd) { length = regionEnd - start; } if (length < 0) return null; return new StyleRange(start, length, null, cTextFill); }
fAncestor.getSourceViewer().addTextPresentationListener(new ChangeHighlighter(fAncestor)); fLeft.getSourceViewer().addTextPresentationListener(new ChangeHighlighter(fLeft)); fRight.getSourceViewer().addTextPresentationListener(new ChangeHighlighter(fRight));
@Override public void applyTextPresentation(TextPresentation textPresentation) { if (!fHighlightTokenChanges) return; IRegion region= textPresentation.getExtent(); Diff[] changeDiffs = fMerger.getChangeDiffs(getLeg(viewer), region); for (int i = 0; i < changeDiffs.length; i++) { Diff diff = changeDiffs[i]; StyleRange range = getStyleRange(diff, region); if (range != null) textPresentation.mergeStyleRange(range); } }