Bug 114733 Reconciler is broken in build.properties source page
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourcePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourcePage.java
index bec5802..bb580bf 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourcePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourcePage.java
@@ -76,7 +76,7 @@
 		IPreferenceStore store = JavaPlugin.getDefault().getCombinedPreferenceStore();
 		setPreferenceStore(store);
 		fColorManager = ColorManager.getDefault();
-		setSourceViewerConfiguration(new BuildSourceViewerConfiguration(fColorManager, store));
+		setSourceViewerConfiguration(new BuildSourceViewerConfiguration(fColorManager, store, this));
 	}
 	
 	public void dispose() {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourceViewerConfiguration.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourceViewerConfiguration.java
index f7e4709..3576075 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourceViewerConfiguration.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildSourceViewerConfiguration.java
@@ -21,6 +21,8 @@
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.presentation.IPresentationReconciler;
 import org.eclipse.jface.text.presentation.PresentationReconciler;
+import org.eclipse.jface.text.reconciler.IReconciler;
+import org.eclipse.jface.text.reconciler.MonoReconciler;
 import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
 import org.eclipse.jface.text.rules.IWhitespaceDetector;
 import org.eclipse.jface.text.rules.IWordDetector;
@@ -28,8 +30,11 @@
 import org.eclipse.jface.text.rules.WordRule;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.pde.core.IBaseModel;
+import org.eclipse.pde.internal.core.text.IReconcilingParticipant;
 import org.eclipse.pde.internal.ui.editor.text.ColorManager;
 import org.eclipse.pde.internal.ui.editor.text.IColorManager;
+import org.eclipse.pde.internal.ui.editor.text.ReconcilingStrategy;
 import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
 
 
@@ -44,6 +49,8 @@
 	private AbstractJavaScanner fCommentScanner;
 	private AbstractJavaScanner fPropertyValueScanner;
 	private IColorManager fColorManager;
+	private MonoReconciler fReconciler;
+	private BuildSourcePage fSourcePage;
 
 	private class SingleTokenJavaScanner extends AbstractJavaScanner{
 
@@ -117,9 +124,10 @@
 		}
 	}
 	
-	public BuildSourceViewerConfiguration(IColorManager colorManager, IPreferenceStore store) {
+	public BuildSourceViewerConfiguration(IColorManager colorManager, IPreferenceStore store, BuildSourcePage sourcePage) {
 		super(store);
 		fColorManager = colorManager;
+		fSourcePage = sourcePage;
 		initializeScanners();
 	}
 
@@ -150,6 +158,21 @@
 		return reconciler;
 	}
 
+	public IReconciler getReconciler(ISourceViewer sourceViewer) {
+		if (fReconciler == null) {
+			IBaseModel model = fSourcePage.getInputContext().getModel();
+			if (model instanceof IReconcilingParticipant) {
+				ReconcilingStrategy strategy = new ReconcilingStrategy();
+				strategy.addParticipant((IReconcilingParticipant)model);
+				if (fSourcePage.getContentOutline() instanceof IReconcilingParticipant)
+					strategy.addParticipant((IReconcilingParticipant)fSourcePage.getContentOutline());
+				fReconciler = new MonoReconciler(strategy, false);
+				fReconciler.setDelay(500);
+			}
+		}
+		return fReconciler;
+	}
+	
 	public void handlePropertyChangeEvent(PropertyChangeEvent event) {
 		((ColorManager)fColorManager).handlePropertyChangeEvent(event);
 		if (fPropertyKeyScanner.affectsBehavior(event))