X-Git-Url: http://git.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPSourceViewerConfiguration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPSourceViewerConfiguration.java
index 0353b6d..401ca2c 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPSourceViewerConfiguration.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPSourceViewerConfiguration.java
@@ -13,12 +13,14 @@ package net.sourceforge.phpeclipse.phpeditor;
 import java.util.Vector;
 
 import net.sourceforge.phpdt.core.JavaCore;
+import net.sourceforge.phpdt.internal.ui.text.AbstractJavaScanner;
 import net.sourceforge.phpdt.internal.ui.text.ContentAssistPreference;
 import net.sourceforge.phpdt.internal.ui.text.HTMLTextPresenter;
 import net.sourceforge.phpdt.internal.ui.text.IPHPPartitions;
 import net.sourceforge.phpdt.internal.ui.text.JavaAnnotationHover;
 import net.sourceforge.phpdt.internal.ui.text.JavaElementProvider;
 import net.sourceforge.phpdt.internal.ui.text.JavaOutlineInformationControl;
+import net.sourceforge.phpdt.internal.ui.text.JavaPresentationReconciler;
 import net.sourceforge.phpdt.internal.ui.text.JavaReconciler;
 import net.sourceforge.phpdt.internal.ui.text.java.JavaFormattingStrategy;
 import net.sourceforge.phpdt.internal.ui.text.java.JavaReconcilingStrategy;
@@ -27,6 +29,7 @@ import net.sourceforge.phpdt.internal.ui.text.java.hover.JavaEditorTextHoverDesc
 import net.sourceforge.phpdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy;
 import net.sourceforge.phpdt.internal.ui.text.phpdoc.PHPDocCompletionProcessor;
 import net.sourceforge.phpdt.ui.PreferenceConstants;
+import net.sourceforge.phpdt.ui.text.IColorManager;
 import net.sourceforge.phpdt.ui.text.JavaTextTools;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.phpeditor.html.HTMLFormattingStrategy;
@@ -68,8 +71,10 @@ import org.eclipse.jface.text.rules.Token;
 import org.eclipse.jface.text.source.IAnnotationHover;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.jface.text.source.SourceViewerConfiguration;
+import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.texteditor.ITextEditor;
 /**
  * Configuration for an <code>SourceViewer</code> which shows PHP code.
  */
@@ -90,7 +95,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
 	// IPHPPartitionScannerConstants.HTML;
 	//IDocument.DEFAULT_CONTENT_TYPE;
 	private JavaTextTools fJavaTextTools;
-	private PHPEditor fEditor;
+	private ITextEditor fTextEditor;
 	private ContentFormatter fFormatter;
 	private HTMLFormattingStrategy fFormattingStrategy;
 	/**
@@ -102,12 +107,78 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
 		}
 	};
 	/**
+	 * The document partitioning.
+	 * @since 3.0
+	 */
+	private String fDocumentPartitioning;
+	/**
+	 * The Java source code scanner
+	 * @since 3.0
+	 */
+	private AbstractJavaScanner fCodeScanner;
+	/** 
+	 * The Java multi-line comment scanner 
+	 * @since 3.0
+	 */
+	private AbstractJavaScanner fMultilineCommentScanner;
+	/**
+	 * The Java single-line comment scanner
+	 * @since 3.0
+	 */
+	private AbstractJavaScanner fSinglelineCommentScanner;
+	/**
+	 * The Java string scanner
+	 * @since 3.0
+	 */
+	private AbstractJavaScanner fStringScanner;
+	/**
+	 * The Javadoc scanner
+	 * @since 3.0
+	 */
+	private AbstractJavaScanner fJavaDocScanner;
+	/**
+	 * The preference store, can be read-only
+	 * @since 3.0
+	 */
+	private IPreferenceStore fPreferenceStore;
+	/**
+	 * The color manager
+	 * @since 3.0
+	 */
+	private IColorManager fColorManager;
+	
+	/**
+	 * Creates a new Java source viewer configuration for viewers in the given editor 
+	 * using the given preference store, the color manager and the specified document partitioning.
+	 * <p>
+	 * Creates a Java source viewer configuration in the new setup without text tools. Clients are
+	 * allowed to call {@link JavaSourceViewerConfiguration#handlePropertyChangeEvent(PropertyChangeEvent)}
+	 * and disallowed to call {@link JavaSourceViewerConfiguration#getPreferenceStore()} on the resulting
+	 * Java source viewer configuration.
+	 * </p>
+	 *
+	 * @param colorManager the color manager
+	 * @param preferenceStore the preference store, can be read-only
+	 * @param editor the editor in which the configured viewer(s) will reside
+	 * @param partitioning the document partitioning for this configuration
+	 * @since 3.0
+	 */
+	public PHPSourceViewerConfiguration(IColorManager colorManager, IPreferenceStore preferenceStore, ITextEditor editor, String partitioning) {
+		fColorManager= colorManager;
+		fPreferenceStore= preferenceStore;
+		fTextEditor= editor;
+		fDocumentPartitioning= partitioning;
+		fJavaTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
+//		initializeScanners();
+	}
+
+	/**
 	 * Default constructor.
 	 */
 	public PHPSourceViewerConfiguration(JavaTextTools textTools,
 			PHPEditor editor) {
 		fJavaTextTools = textTools;
-		fEditor = editor;
+		fTextEditor = editor;
 	}
 	/*
 	 * @see SourceViewerConfiguration#getContentFormatter(ISourceViewer)
@@ -163,8 +234,8 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
 	//  private String[] getPartitionManagingPositionCategories() {
 	//    return new String[] { DefaultPartitioner.CONTENT_TYPES_CATEGORY };
 	//  }
-	public PHPEditor getEditor() {
-		return fEditor;
+	public ITextEditor getEditor() {
+		return fTextEditor;
 	}
 	/**
 	 * Returns the preference store used by this configuration to initialize
@@ -372,7 +443,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
 				IPHPPartitions.SMARTY);
 		assistant.setContentAssistProcessor(processor,
 				IPHPPartitions.SMARTY_MULTILINE_COMMENT);
-		assistant.setContentAssistProcessor(new PHPCompletionProcessor(),
+		assistant.setContentAssistProcessor(new PHPCompletionProcessor(getEditor()),
 				IPHPPartitions.PHP_PARTITIONING);
 		assistant.setContentAssistProcessor(new PHPDocCompletionProcessor(),
 				IPHPPartitions.PHP_PHPDOC_COMMENT);
@@ -455,7 +526,9 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
 		// PHPEditorEnvironment.getPHPColorProvider();
 		//    JavaColorManager provider =
 		// PHPEditorEnvironment.getPHPColorProvider();
-		PresentationReconciler reconciler = new PresentationReconciler();
+		PresentationReconciler reconciler= new JavaPresentationReconciler();
+		reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
+
 		DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getHTMLScanner());
 		reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
 		reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);