int delta= caretOffset - (fReplacementOffset + fReplacementLength); if (delta > 0) fReplacementLength += delta;
	private void updateStyle(ITextViewer viewer) {		StyledText text= viewer.getTextWidget();		if (text == null || text.isDisposed())			return;		fRememberedStyleRange= null;		IRegion visibleRegion= viewer.getVisibleRegion();					int caretOffset= text.getCaretOffset() + visibleRegion.getOffset();		// patch		int delta= caretOffset - (fReplacementOffset + fReplacementLength);		if (delta > 0)			fReplacementLength += delta;		if (caretOffset >= fReplacementOffset + fReplacementLength) {			repairPresentation(viewer); 			return;		}					int offset= caretOffset - visibleRegion.getOffset();		int length= fReplacementOffset + fReplacementLength - caretOffset;			Color foreground= getForegroundColor(text);		Color background= getBackgroundColor(text);		repairPresentation(viewer);		fRememberedStyleRange= new StyleRange(offset, length, foreground, background);		text.setStyleRange(fRememberedStyleRange);	}