use of org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler in project webtools.sourceediting by eclipse.
the class SemanticHighlightingPresenter method createPresentation.
/**
* Create a text presentation in the background.
* <p>
* NOTE: Called from background thread.
* </p>
*
* @param addedPositions the added positions
* @param removedPositions the removed positions
* @return the text presentation or <code>null</code>, if reconciliation should be canceled
*/
public TextPresentation createPresentation(List addedPositions, List removedPositions) {
ISourceViewer sourceViewer = fSourceViewer;
StructuredPresentationReconciler presentationReconciler = fPresentationReconciler;
if (sourceViewer == null || presentationReconciler == null)
return null;
if (isCanceled())
return null;
IDocument document = sourceViewer.getDocument();
if (document == null)
return null;
int minStart = Integer.MAX_VALUE;
int maxEnd = Integer.MIN_VALUE;
for (int i = 0, n = removedPositions.size(); i < n; i++) {
Position position = (Position) removedPositions.get(i);
int offset = position.getOffset();
minStart = Math.min(minStart, offset);
maxEnd = Math.max(maxEnd, offset + position.getLength());
}
for (int i = 0, n = addedPositions.size(); i < n; i++) {
Position position = (Position) addedPositions.get(i);
int offset = position.getOffset();
minStart = Math.min(minStart, offset);
maxEnd = Math.max(maxEnd, offset + position.getLength());
}
if (minStart < maxEnd)
try {
return presentationReconciler.createRepairDescription(new Region(minStart, maxEnd - minStart), document);
} catch (RuntimeException e) {
// Assume concurrent modification from UI thread
}
return null;
}
use of org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler in project webtools.sourceediting by eclipse.
the class StructuredTextViewerConfiguration method getPresentationReconciler.
/**
* See <code>getLineStyleProviders(ISourceViewer, String)</code> for
* alternative way to provide highlighting information.
*
* @param sourceViewer
* the source viewer to be configured by this configuration
* @return always returns null
* @see #getLineStyleProviders(ISourceViewer, String)
*/
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
StructuredPresentationReconciler reconciler = new StructuredPresentationReconciler();
reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
String[] contentTypes = getConfiguredContentTypes(sourceViewer);
if (contentTypes != null) {
StructuredDocumentDamagerRepairer dr = null;
for (int i = 0; i < contentTypes.length; i++) {
if (fHighlighter != null) {
LineStyleProvider provider = fHighlighter.getProvider(contentTypes[i]);
if (provider == null)
continue;
dr = new StructuredDocumentDamagerRepairer(provider);
dr.setDocument(sourceViewer.getDocument());
reconciler.setDamager(dr, contentTypes[i]);
reconciler.setRepairer(dr, contentTypes[i]);
}
}
}
return reconciler;
}
Aggregations