ITokenComparator leftSide= new JavaTokenComparator(previewConent.getContent(), true); ITokenComparator rightSide= new JavaTokenComparator(currentConentString, true);  RangeDifference[] differences= RangeDifferencer.findRanges(leftSide, rightSide); for (int i= 0; i < differences.length; i++) { RangeDifference curr= differences[i]; int start= leftSide.getTokenStart(curr.leftStart()); int end= leftSide.getTokenStart(curr.leftEnd()); if (curr.kind() == RangeDifference.CHANGE && curr.leftLength() > 0) { buf.append("<b>"); appendContent(previewConent, start, end, buf, false); buf.append("</b>"); } else if (curr.kind() == RangeDifference.NOCHANGE) { appendContent(previewConent, start, end, buf, true); } }
	public String getAdditionalProposalInfo() {		StringBuffer buf= new StringBuffer();				try {			CompilationUnitChange change= getCompilationUnitChange();			TextBuffer textBuffer= change.getPreviewTextBuffer();			EditChange[] changes= change.getTextEditChanges();					for (int i= 0; i < changes.length; i++) {				TextRange range= change.getNewTextRange(changes[i]);				buf.append("<p>...</p>"); //$NON-NLS-1$				appendContent(textBuffer, range, 1, buf);			}			if (changes.length > 0) {				buf.append("<p>...</p>"); //$NON-NLS-1$			}					} catch(CoreException e) {			JavaPlugin.log(e);		}		return buf.toString();	}