Search in sources :

Example 1 with StructuredPresentationReconciler

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;
}
Also used : StructuredPresentationReconciler(org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler) HighlightedPosition(org.eclipse.wst.sse.ui.internal.style.SemanticHighlightingManager.HighlightedPosition) Position(org.eclipse.jface.text.Position) Region(org.eclipse.jface.text.Region) IRegion(org.eclipse.jface.text.IRegion) ISourceViewer(org.eclipse.jface.text.source.ISourceViewer) IDocument(org.eclipse.jface.text.IDocument)

Example 2 with StructuredPresentationReconciler

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;
}
Also used : StructuredPresentationReconciler(org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler) StructuredDocumentDamagerRepairer(org.eclipse.wst.sse.ui.internal.rules.StructuredDocumentDamagerRepairer) LineStyleProvider(org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider)

Aggregations

StructuredPresentationReconciler (org.eclipse.wst.sse.ui.internal.provisional.style.StructuredPresentationReconciler)2 IDocument (org.eclipse.jface.text.IDocument)1 IRegion (org.eclipse.jface.text.IRegion)1 Position (org.eclipse.jface.text.Position)1 Region (org.eclipse.jface.text.Region)1 ISourceViewer (org.eclipse.jface.text.source.ISourceViewer)1 LineStyleProvider (org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider)1 StructuredDocumentDamagerRepairer (org.eclipse.wst.sse.ui.internal.rules.StructuredDocumentDamagerRepairer)1 HighlightedPosition (org.eclipse.wst.sse.ui.internal.style.SemanticHighlightingManager.HighlightedPosition)1