diff options
author | Dawid Pakuła | 2018-02-01 10:31:55 +0000 |
---|---|---|
committer | Nitin Dahyabhai | 2018-02-26 15:51:10 +0000 |
commit | ef70e231e53cc0d731de412b75e9191046c388db (patch) | |
tree | 010cb45a4ce3ae98b5973a6cf590ae2fd7e7b753 | |
parent | 02d1ffbb5f8366d181a9a201a6108143ebb72aa4 (diff) | |
download | webtools.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.java | 20 |
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(); + } + } } /** |