Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDawid Pakuła2018-02-01 10:31:55 +0000
committerNitin Dahyabhai2018-02-26 15:51:10 +0000
commitef70e231e53cc0d731de412b75e9191046c388db (patch)
tree010cb45a4ce3ae98b5973a6cf590ae2fd7e7b753
parent02d1ffbb5f8366d181a9a201a6108143ebb72aa4 (diff)
downloadwebtools.sourceediting-ef70e231e53cc0d731de412b75e9191046c388db.tar.gz
webtools.sourceediting-ef70e231e53cc0d731de412b75e9191046c388db.tar.xz
webtools.sourceediting-ef70e231e53cc0d731de412b75e9191046c388db.zip
Bug 438661 - Provide real IReconcilingStrategy for structured editors
Change-Id: I5e5ff11c21d1acde9db064fb16a7c056240e564d Signed-off-by: Dawid Pakuła <zulus@w3des.net>
-rw-r--r--core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java
index 7eb51ffda8..e6704ae23e 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java
@@ -36,6 +36,7 @@ import org.eclipse.jface.text.reconciler.DirtyRegion;
import org.eclipse.jface.text.reconciler.IReconciler;
import org.eclipse.jface.text.reconciler.IReconcilerExtension;
import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
+import org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension;
import org.eclipse.wst.sse.ui.internal.Logger;
/**
@@ -239,7 +240,7 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension,
*/
private String fPartitioning;
- Map fReconcilingStrategies = null;
+ Map<String, IReconcilingStrategy> fReconcilingStrategies = null;
/** for initial reconcile when document is opened */
private TextInputListener fTextInputListener = null;
@@ -265,7 +266,7 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension,
public DirtyRegionProcessor() {
// init reconciler stuff
setDelay(UPDATE_DELAY);
- fReconcilingStrategies = new HashMap();
+ fReconcilingStrategies = new HashMap<String, IReconcilingStrategy>();
}
/**
@@ -511,7 +512,7 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension,
public IReconcilingStrategy getReconcilingStrategy(String partitionType) {
if (partitionType == null)
return null;
- return (IReconcilingStrategy) fReconcilingStrategies.get(partitionType);
+ return fReconcilingStrategies.get(partitionType);
}
/**
@@ -715,7 +716,11 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension,
}
fDocument = doc;
-
+
+ for (IReconcilingStrategy strategy : fReconcilingStrategies.values()) {
+ strategy.setDocument(doc);
+ }
+
if (fDocument != null) {
if (fDocument instanceof IDocumentExtension4) {
((IDocumentExtension4) fDocument).addDocumentRewriteSessionListener(fDocumentRewriteSessionListener);
@@ -725,12 +730,19 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension,
setEntireDocumentDirty(doc);
}
+
+
}
/**
* This method is called before the initial reconciling of the document.
*/
protected void initialReconcile() {
+ for (IReconcilingStrategy strategy : fReconcilingStrategies.values()) {
+ if (strategy instanceof IReconcilingStrategyExtension) {
+ ((IReconcilingStrategyExtension) strategy).initialReconcile();
+ }
+ }
}
/**

Back to the top