X-Git-Url: http://secure.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/text/PHPSourceViewerConfiguration.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/text/PHPSourceViewerConfiguration.java
index 0dcaeed..cfd2d31 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/text/PHPSourceViewerConfiguration.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/text/PHPSourceViewerConfiguration.java
@@ -7,13 +7,14 @@
Contributors:
IBM Corporation - Initial implementation
- Klaus Hartlage - www.eclipseproject.de
+ www.phpeclipse.de
**********************************************************************/
package net.sourceforge.phpdt.ui.text;
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;
@@ -25,22 +26,25 @@ import net.sourceforge.phpdt.internal.ui.text.JavaPresentationReconciler;
import net.sourceforge.phpdt.internal.ui.text.JavaReconciler;
import net.sourceforge.phpdt.internal.ui.text.PreferencesAdapter;
import net.sourceforge.phpdt.internal.ui.text.java.JavaFormattingStrategy;
-import net.sourceforge.phpdt.internal.ui.text.java.JavaStringAutoIndentStrategy;
+import net.sourceforge.phpdt.internal.ui.text.java.JavaStringAutoIndentStrategyDQ;
+import net.sourceforge.phpdt.internal.ui.text.java.JavaStringAutoIndentStrategySQ;
import net.sourceforge.phpdt.internal.ui.text.java.hover.JavaEditorTextHoverDescriptor;
import net.sourceforge.phpdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy;
import net.sourceforge.phpdt.internal.ui.text.java.hover.JavaInformationProvider;
+import net.sourceforge.phpdt.internal.ui.text.phpdoc.JavaDocAutoIndentStrategy;
+import net.sourceforge.phpdt.internal.ui.text.phpdoc.PHPDocCodeScanner;
import net.sourceforge.phpdt.internal.ui.text.phpdoc.PHPDocCompletionProcessor;
import net.sourceforge.phpdt.ui.PreferenceConstants;
+import net.sourceforge.phpeclipse.IPreferenceConstants;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.phpeditor.PHPEditor;
import net.sourceforge.phpeclipse.phpeditor.html.HTMLFormattingStrategy;
import net.sourceforge.phpeclipse.phpeditor.php.HTMLCompletionProcessor;
import net.sourceforge.phpeclipse.phpeditor.php.PHPAutoIndentStrategy;
+import net.sourceforge.phpeclipse.phpeditor.php.PHPCodeScanner;
import net.sourceforge.phpeclipse.phpeditor.php.PHPCompletionProcessor;
import net.sourceforge.phpeclipse.phpeditor.php.PHPDocumentPartitioner;
import net.sourceforge.phpeclipse.phpeditor.php.PHPDoubleClickSelector;
import net.sourceforge.phpeclipse.phpeditor.php.PHPPartitionScanner;
-import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider;
import net.sourceforge.phpeclipse.xml.ui.XMLPlugin;
import net.sourceforge.phpeclipse.xml.ui.internal.text.XMLConfiguration;
import net.sourceforge.phpeclipse.xml.ui.internal.text.XMLPartitionScanner;
@@ -112,12 +116,14 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
private JavaTextTools fJavaTextTools;
private ITextEditor fTextEditor;
+
/**
- * The document partitioning.
- * @since 3.0
- */
+ * The document partitioning.
+ *
+ * @since 3.0
+ */
private String fDocumentPartitioning;
-
+
private ContentFormatter fFormatter;
private HTMLFormattingStrategy fFormattingStrategy;
@@ -136,42 +142,41 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
*
* @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;
+ // 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
@@ -188,7 +193,9 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
private IColorManager fColorManager;
private XMLTextTools fXMLTextTools;
+
private XMLConfiguration xmlConfiguration;
+
/**
* 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.
@@ -214,29 +221,104 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
fPreferenceStore = preferenceStore;
fTextEditor = editor;
fDocumentPartitioning = partitioning;
- fJavaTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
+ // fJavaTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
fXMLTextTools = XMLPlugin.getDefault().getXMLTextTools();
xmlConfiguration = new XMLConfiguration(fXMLTextTools);
+ fColorManager = colorManager;
+ fPreferenceStore = preferenceStore;
+ fTextEditor = editor;
+ fDocumentPartitioning = partitioning;
- // initializeScanners();
+ initializeScanners();
}
/**
- * Default constructor.
+ * Creates a new Java source viewer configuration for viewers in the given editor using the given Java tools.
+ *
+ * @param tools
+ * the Java text tools to be used
+ * @param editor
+ * the editor in which the configured viewer(s) will reside
+ * @see JavaTextTools
+ * @deprecated As of 3.0, replaced by
+ * {@link JavaSourceViewerConfiguration#JavaSourceViewerConfiguration(IColorManager, IPreferenceStore, ITextEditor, String)}
+ */
+ // public PHPSourceViewerConfiguration(JavaTextTools tools, PHPEditor editor, String partitioning) {
+ // fJavaTextTools = tools;
+ // fColorManager = tools.getColorManager();
+ // fPreferenceStore = createPreferenceStore();
+ // fDocumentPartitioning = partitioning;
+ // fCodeScanner = (AbstractJavaScanner) fJavaTextTools.getCodeScanner();
+ // fMultilineCommentScanner = (AbstractJavaScanner) fJavaTextTools.getMultilineCommentScanner();
+ // fSinglelineCommentScanner = (AbstractJavaScanner) fJavaTextTools.getSinglelineCommentScanner();
+ // fStringScanner = (AbstractJavaScanner) fJavaTextTools.getStringScanner();
+ // fJavaDocScanner = (AbstractJavaScanner) fJavaTextTools.getJavaDocScanner();
+ // fTextEditor = editor;
+ // fXMLTextTools = XMLPlugin.getDefault().getXMLTextTools();
+ // xmlConfiguration = new XMLConfiguration(fXMLTextTools);
+ // }
+ /**
+ * Returns the color manager for this configuration.
+ *
+ * @return the color manager
*/
- public PHPSourceViewerConfiguration(JavaTextTools tools, PHPEditor editor, String partitioning) {
- fJavaTextTools= tools;
- fColorManager= tools.getColorManager();
- fPreferenceStore= createPreferenceStore();
- fDocumentPartitioning = partitioning;
-// fCodeScanner= (AbstractJavaScanner) fJavaTextTools.getCodeScanner();
-// fMultilineCommentScanner= (AbstractJavaScanner) fJavaTextTools.getMultilineCommentScanner();
-// fSinglelineCommentScanner= (AbstractJavaScanner) fJavaTextTools.getSinglelineCommentScanner();
-// fStringScanner= (AbstractJavaScanner) fJavaTextTools.getStringScanner();
-// fJavaDocScanner= (AbstractJavaScanner) fJavaTextTools.getJavaDocScanner();
- fTextEditor= editor;
- fXMLTextTools = XMLPlugin.getDefault().getXMLTextTools();
- xmlConfiguration = new XMLConfiguration(fXMLTextTools);
+ protected IColorManager getColorManager() {
+ return fColorManager;
+ }
+
+ /**
+ * Initializes the scanners.
+ *
+ * @since 3.0
+ */
+ private void initializeScanners() {
+ Assert.isTrue(isNewSetup());
+ fCodeScanner = new PHPCodeScanner(getColorManager(), fPreferenceStore);
+ fMultilineCommentScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore,
+ IPreferenceConstants.PHP_MULTILINE_COMMENT);
+ fSinglelineCommentScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore,
+ IPreferenceConstants.PHP_SINGLELINE_COMMENT);
+ fStringScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore, IPreferenceConstants.PHP_STRING);
+ fJavaDocScanner = new PHPDocCodeScanner(getColorManager(), fPreferenceStore);
+ }
+
+ /**
+ * Determines whether the preference change encoded by the given event changes the behavior of one of its contained components.
+ *
+ * @param event
+ * the event to be investigated
+ * @return true
if event causes a behavioral change
+ * @since 3.0
+ */
+ public boolean affectsTextPresentation(PropertyChangeEvent event) {
+ return fCodeScanner.affectsBehavior(event) || fMultilineCommentScanner.affectsBehavior(event)
+ || fSinglelineCommentScanner.affectsBehavior(event) || fStringScanner.affectsBehavior(event)
+ || fJavaDocScanner.affectsBehavior(event);
+ }
+
+ /**
+ * Adapts the behavior of the contained components to the change encoded in the given event.
+ *
+ * Clients are not allowed to call this method if the old setup with text tools is in use. + *
+ * + * @param event + * the event to which to adapt + * @see JavaSourceViewerConfiguration#JavaSourceViewerConfiguration(IColorManager, IPreferenceStore, ITextEditor, String) + * @since 3.0 + */ + public void handlePropertyChangeEvent(PropertyChangeEvent event) { + Assert.isTrue(isNewSetup()); + if (fCodeScanner.affectsBehavior(event)) + fCodeScanner.adaptToPreferenceChange(event); + if (fMultilineCommentScanner.affectsBehavior(event)) + fMultilineCommentScanner.adaptToPreferenceChange(event); + if (fSinglelineCommentScanner.affectsBehavior(event)) + fSinglelineCommentScanner.adaptToPreferenceChange(event); + if (fStringScanner.affectsBehavior(event)) + fStringScanner.adaptToPreferenceChange(event); + if (fJavaDocScanner.affectsBehavior(event)) + fJavaDocScanner.adaptToPreferenceChange(event); } /* @@ -329,10 +411,18 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { * (non-Javadoc) Method declared on SourceViewerConfiguration */ public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) { + if (IPHPPartitions.PHP_PHPDOC_COMMENT.equals(contentType) + || IPHPPartitions.PHP_MULTILINE_COMMENT.equals(contentType)) + return new JavaDocAutoIndentStrategy(getConfiguredDocumentPartitioning(sourceViewer)); if (IPHPPartitions.PHP_STRING_DQ.equals(contentType)) - return new JavaStringAutoIndentStrategy(getConfiguredDocumentPartitioning(sourceViewer)); - - return (IPHPPartitions.PHP_PARTITIONING.equals(contentType) ? new PHPAutoIndentStrategy() : new DefaultAutoIndentStrategy()); + return new JavaStringAutoIndentStrategyDQ(getConfiguredDocumentPartitioning(sourceViewer)); + if (IPHPPartitions.PHP_STRING_SQ.equals(contentType)) + return new JavaStringAutoIndentStrategySQ(getConfiguredDocumentPartitioning(sourceViewer)); + + return (PHPDocumentPartitioner.PHP_TEMPLATE_DATA.equals(contentType) + || PHPDocumentPartitioner.PHP_SCRIPT_CODE.equals(contentType) || IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) + || IPHPPartitions.PHP_PARTITIONING.equals(contentType) || PHPPartitionScanner.PHP_SCRIPTING_AREA.equals(contentType) ? new PHPAutoIndentStrategy() + : new DefaultAutoIndentStrategy()); } /** @@ -341,7 +431,37 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { * @return the PHP source code scanner */ protected RuleBasedScanner getCodeScanner() { - return fJavaTextTools.getCodeScanner(); + return fCodeScanner; //fJavaTextTools.getCodeScanner(); + } + + /** + * Returns the Java multi-line comment scanner for this configuration. + * + * @return the Java multi-line comment scanner + * @since 2.0 + */ + protected RuleBasedScanner getMultilineCommentScanner() { + return fMultilineCommentScanner; + } + + /** + * Returns the Java single-line comment scanner for this configuration. + * + * @return the Java single-line comment scanner + * @since 2.0 + */ + protected RuleBasedScanner getSinglelineCommentScanner() { + return fSinglelineCommentScanner; + } + + /** + * Returns the Java string scanner for this configuration. + * + * @return the Java string scanner + * @since 2.0 + */ + protected RuleBasedScanner getStringScanner() { + return fStringScanner; } /** @@ -349,19 +469,17 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { * * @return the HTML source code scanner */ -// protected RuleBasedScanner getHTMLScanner() { -// return fJavaTextTools.getHTMLScanner(); -// } - + // protected RuleBasedScanner getHTMLScanner() { + // return fJavaTextTools.getHTMLScanner(); + // } /** * Returns the Smarty source code scanner for this configuration. * * @return the Smarty source code scanner */ - protected RuleBasedScanner getSmartyScanner() { - return fJavaTextTools.getSmartyScanner(); - } - + // protected RuleBasedScanner getSmartyScanner() { + // return fJavaTextTools.getSmartyScanner(); + // } /* * @see SourceViewerConfiguration#getReconciler(ISourceViewer) */ @@ -385,16 +503,6 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { return null; } - // public IReconciler getReconciler(ISourceViewer sourceViewer) { - // if (getEditor() != null && getEditor().isEditable()) { - // JavaReconciler reconciler = new JavaReconciler(getEditor(), - // new JavaReconcilingStrategy(getEditor()), false); - // reconciler.setProgressMonitor(new NullProgressMonitor()); - // reconciler.setDelay(500); - // return reconciler; - // } - // return null; - // } /* * @see SourceViewerConfiguration#getConfiguredTextHoverStateMasks(ISourceViewer, String) * @since 2.1 @@ -463,110 +571,74 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { * * @return the SmartyDoc source code scanner */ - protected RuleBasedScanner getSmartyDocScanner() { - return fJavaTextTools.getSmartyDocScanner(); - } - + // protected RuleBasedScanner getSmartyDocScanner() { + // return fJavaTextTools.getSmartyDocScanner(); + // } /** * Returns the PHPDoc source code scanner for this configuration. * * @return the PHPDoc source code scanner */ protected RuleBasedScanner getPHPDocScanner() { - return fJavaTextTools.getJavaDocScanner(); + return fJavaDocScanner; //fJavaTextTools.getJavaDocScanner(); } /* * (non-Javadoc) Method declared on SourceViewerConfiguration */ public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) { - return new String[] { - IDocument.DEFAULT_CONTENT_TYPE, - PHPPartitionScanner.PHP_SCRIPTING_AREA, - - IPHPPartitions.HTML, - IPHPPartitions.HTML_MULTILINE_COMMENT, - IPHPPartitions.PHP_PARTITIONING, - IPHPPartitions.PHP_SINGLELINE_COMMENT, - IPHPPartitions.PHP_MULTILINE_COMMENT, - IPHPPartitions.PHP_PHPDOC_COMMENT, - IPHPPartitions.PHP_STRING_DQ, - IPHPPartitions.PHP_STRING_SQ, - IPHPPartitions.CSS, - IPHPPartitions.CSS_MULTILINE_COMMENT, - IPHPPartitions.JAVASCRIPT, - IPHPPartitions.JS_MULTILINE_COMMENT, - IPHPPartitions.SMARTY, + return new String[] { IDocument.DEFAULT_CONTENT_TYPE, PHPPartitionScanner.PHP_SCRIPTING_AREA, + + IPHPPartitions.HTML, IPHPPartitions.HTML_MULTILINE_COMMENT, IPHPPartitions.PHP_PARTITIONING, + IPHPPartitions.PHP_SINGLELINE_COMMENT, IPHPPartitions.PHP_MULTILINE_COMMENT, IPHPPartitions.PHP_PHPDOC_COMMENT, + IPHPPartitions.PHP_STRING_DQ, IPHPPartitions.PHP_STRING_SQ, IPHPPartitions.CSS, IPHPPartitions.CSS_MULTILINE_COMMENT, + IPHPPartitions.JAVASCRIPT, IPHPPartitions.JS_MULTILINE_COMMENT, IPHPPartitions.SMARTY, IPHPPartitions.SMARTY_MULTILINE_COMMENT, - - XMLPartitionScanner.XML_PI, - XMLPartitionScanner.XML_COMMENT, - XMLPartitionScanner.XML_DECL, - XMLPartitionScanner.XML_TAG, - XMLPartitionScanner.XML_ATTRIBUTE, - XMLPartitionScanner.XML_CDATA, - - XMLPartitionScanner.DTD_INTERNAL, - XMLPartitionScanner.DTD_INTERNAL_PI, - XMLPartitionScanner.DTD_INTERNAL_COMMENT, - XMLPartitionScanner.DTD_INTERNAL_DECL, - - PHPDocumentPartitioner.PHP_TEMPLATE_DATA, - PHPDocumentPartitioner.PHP_SCRIPT_CODE - }; + + XMLPartitionScanner.XML_PI, XMLPartitionScanner.XML_COMMENT, XMLPartitionScanner.XML_DECL, XMLPartitionScanner.XML_TAG, + XMLPartitionScanner.XML_ATTRIBUTE, XMLPartitionScanner.XML_CDATA, + + XMLPartitionScanner.DTD_INTERNAL, XMLPartitionScanner.DTD_INTERNAL_PI, XMLPartitionScanner.DTD_INTERNAL_COMMENT, + XMLPartitionScanner.DTD_INTERNAL_DECL, + + PHPDocumentPartitioner.PHP_TEMPLATE_DATA, PHPDocumentPartitioner.PHP_SCRIPT_CODE }; } public String[] getConfiguredHTMLContentTypes() { - return new String[] { - XMLPartitionScanner.XML_PI, - XMLPartitionScanner.XML_COMMENT, - XMLPartitionScanner.XML_DECL, - XMLPartitionScanner.XML_TAG, - XMLPartitionScanner.XML_ATTRIBUTE, - XMLPartitionScanner.XML_CDATA, - - XMLPartitionScanner.DTD_INTERNAL, - XMLPartitionScanner.DTD_INTERNAL_PI, - XMLPartitionScanner.DTD_INTERNAL_COMMENT, - XMLPartitionScanner.DTD_INTERNAL_DECL, - }; + return new String[] { XMLPartitionScanner.XML_PI, XMLPartitionScanner.XML_COMMENT, XMLPartitionScanner.XML_DECL, + XMLPartitionScanner.XML_TAG, XMLPartitionScanner.XML_ATTRIBUTE, XMLPartitionScanner.XML_CDATA, + + XMLPartitionScanner.DTD_INTERNAL, XMLPartitionScanner.DTD_INTERNAL_PI, XMLPartitionScanner.DTD_INTERNAL_COMMENT, + XMLPartitionScanner.DTD_INTERNAL_DECL, }; } + public String[] getConfiguredPHPContentTypes() { - return new String[] { - IDocument.DEFAULT_CONTENT_TYPE, - IPHPPartitions.PHP_PARTITIONING, - IPHPPartitions.PHP_SINGLELINE_COMMENT, - IPHPPartitions.PHP_MULTILINE_COMMENT, - IPHPPartitions.PHP_PHPDOC_COMMENT, - IPHPPartitions.PHP_STRING_DQ, - IPHPPartitions.PHP_STRING_SQ, - IPHPPartitions.CSS, - IPHPPartitions.CSS_MULTILINE_COMMENT, - IPHPPartitions.JAVASCRIPT, - IPHPPartitions.JS_MULTILINE_COMMENT, - IPHPPartitions.SMARTY, - IPHPPartitions.SMARTY_MULTILINE_COMMENT, - }; - } - /* - * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getConfiguredDocumentPartitioning(org.eclipse.jface.text.source.ISourceViewer) - * @since 3.0 - */ - public String getConfiguredDocumentPartitioning(ISourceViewer sourceViewer) { - if (fDocumentPartitioning != null) - return fDocumentPartitioning; - return super.getConfiguredDocumentPartitioning(sourceViewer); - } + return new String[] { IDocument.DEFAULT_CONTENT_TYPE, IPHPPartitions.PHP_PARTITIONING, IPHPPartitions.PHP_SINGLELINE_COMMENT, + IPHPPartitions.PHP_MULTILINE_COMMENT, IPHPPartitions.PHP_PHPDOC_COMMENT, IPHPPartitions.PHP_STRING_DQ, + IPHPPartitions.PHP_STRING_SQ, IPHPPartitions.CSS, IPHPPartitions.CSS_MULTILINE_COMMENT, IPHPPartitions.JAVASCRIPT, + IPHPPartitions.JS_MULTILINE_COMMENT, IPHPPartitions.SMARTY, IPHPPartitions.SMARTY_MULTILINE_COMMENT, }; + } + + /* + * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getConfiguredDocumentPartitioning(org.eclipse.jface.text.source.ISourceViewer) + * @since 3.0 + */ + public String getConfiguredDocumentPartitioning(ISourceViewer sourceViewer) { + if (fDocumentPartitioning != null) + return fDocumentPartitioning; + return super.getConfiguredDocumentPartitioning(sourceViewer); + } + /* * (non-Javadoc) Method declared on SourceViewerConfiguration */ public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) { ContentAssistant assistant = new ContentAssistant(); - IContentAssistProcessor processor = new HTMLCompletionProcessor(); + IContentAssistProcessor processor = new HTMLCompletionProcessor(getEditor()); assistant.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer)); assistant.setContentAssistProcessor(processor, IPHPPartitions.HTML); assistant.setContentAssistProcessor(processor, IPHPPartitions.HTML_MULTILINE_COMMENT); - + assistant.setContentAssistProcessor(processor, IPHPPartitions.CSS); assistant.setContentAssistProcessor(processor, IPHPPartitions.CSS_MULTILINE_COMMENT); assistant.setContentAssistProcessor(processor, IPHPPartitions.JAVASCRIPT); @@ -574,20 +646,20 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // TODO define special smarty partition content assist assistant.setContentAssistProcessor(processor, IPHPPartitions.SMARTY); assistant.setContentAssistProcessor(processor, IPHPPartitions.SMARTY_MULTILINE_COMMENT); - + assistant.setContentAssistProcessor(processor, PHPDocumentPartitioner.PHP_TEMPLATE_DATA); String[] htmlTypes = getConfiguredHTMLContentTypes(); for (int i = 0; i < htmlTypes.length; i++) { - assistant.setContentAssistProcessor(processor, htmlTypes[i]); + assistant.setContentAssistProcessor(processor, htmlTypes[i]); } processor = new PHPCompletionProcessor(getEditor()); - + assistant.setContentAssistProcessor(processor, PHPDocumentPartitioner.PHP_SCRIPT_CODE); assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_PARTITIONING); assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_STRING_DQ); assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_STRING_SQ); - - assistant.setContentAssistProcessor(new PHPDocCompletionProcessor(), IPHPPartitions.PHP_PHPDOC_COMMENT); + + assistant.setContentAssistProcessor(new PHPDocCompletionProcessor(getEditor()), IPHPPartitions.PHP_PHPDOC_COMMENT); // assistant.enableAutoActivation(true); // assistant.setAutoActivationDelay(500); // assistant.setProposalPopupOrientation(ContentAssistant.PROPOSAL_OVERLAY); @@ -601,7 +673,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { assistant.setContextInformationPopupOrientation(ContentAssistant.CONTEXT_INFO_ABOVE); assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer)); return assistant; - } + } /* * (non-Javadoc) Method declared on SourceViewerConfiguration @@ -655,29 +727,32 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { vector.add(""); //$NON-NLS-1$ return (String[]) vector.toArray(new String[vector.size()]); } + + /** + * @returntrue
iff the new setup without text tools is in use.
+ *
+ * @since 3.0
+ */
+ private boolean isNewSetup() {
+ return fJavaTextTools == null;
+ }
+
/**
- * @return true
iff the new setup without text tools is in use.
- *
- * @since 3.0
- */
- private boolean isNewSetup() {
- return fJavaTextTools == null;
- }
- /**
- * Creates and returns a preference store which combines the preference
- * stores from the text tools and which is read-only.
- *
- * @return the read-only preference store
- * @since 3.0
- */
- private IPreferenceStore createPreferenceStore() {
- Assert.isTrue(!isNewSetup());
- IPreferenceStore generalTextStore= EditorsUI.getPreferenceStore();
- if (fJavaTextTools.getCorePreferenceStore() == null)
- return new ChainedPreferenceStore(new IPreferenceStore[] { fJavaTextTools.getPreferenceStore(), generalTextStore});
-
- return new ChainedPreferenceStore(new IPreferenceStore[] { fJavaTextTools.getPreferenceStore(), new PreferencesAdapter(fJavaTextTools.getCorePreferenceStore()), generalTextStore });
- }
+ * Creates and returns a preference store which combines the preference stores from the text tools and which is read-only.
+ *
+ * @return the read-only preference store
+ * @since 3.0
+ */
+ private IPreferenceStore createPreferenceStore() {
+ Assert.isTrue(!isNewSetup());
+ IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore();
+ if (fJavaTextTools.getCorePreferenceStore() == null)
+ return new ChainedPreferenceStore(new IPreferenceStore[] { fJavaTextTools.getPreferenceStore(), generalTextStore });
+
+ return new ChainedPreferenceStore(new IPreferenceStore[] { fJavaTextTools.getPreferenceStore(),
+ new PreferencesAdapter(fJavaTextTools.getCorePreferenceStore()), generalTextStore });
+ }
+
/*
* (non-Javadoc) Method declared on SourceViewerConfiguration
*/
@@ -689,39 +764,39 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
PresentationReconciler phpReconciler = new JavaPresentationReconciler();
phpReconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-// DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
-// reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
-// dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IPHPPartitions.HTML);
-// reconciler.setRepairer(dr, IPHPPartitions.HTML);
-// dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IPHPPartitions.CSS);
-// reconciler.setRepairer(dr, IPHPPartitions.CSS);
-// dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IPHPPartitions.CSS_MULTILINE_COMMENT);
-// reconciler.setRepairer(dr, IPHPPartitions.CSS_MULTILINE_COMMENT);
-// dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IPHPPartitions.JAVASCRIPT);
-// reconciler.setRepairer(dr, IPHPPartitions.JAVASCRIPT);
-// dr = new DefaultDamagerRepairer(getHTMLScanner());
-// reconciler.setDamager(dr, IPHPPartitions.JS_MULTILINE_COMMENT);
-// reconciler.setRepairer(dr, IPHPPartitions.JS_MULTILINE_COMMENT);
- DefaultDamagerRepairer phpDR = new DefaultDamagerRepairer(getSmartyScanner());
- phpReconciler.setDamager(phpDR, IPHPPartitions.SMARTY);
- phpReconciler.setRepairer(phpDR, IPHPPartitions.SMARTY);
- phpDR = new DefaultDamagerRepairer(getSmartyDocScanner());
- phpReconciler.setDamager(phpDR, IPHPPartitions.SMARTY_MULTILINE_COMMENT);
- phpReconciler.setRepairer(phpDR, IPHPPartitions.SMARTY_MULTILINE_COMMENT);
-// dr = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
-// PHPColorProvider.MULTI_LINE_COMMENT))));
-// reconciler.setDamager(dr, IPHPPartitions.HTML_MULTILINE_COMMENT);
-// reconciler.setRepairer(dr, IPHPPartitions.HTML_MULTILINE_COMMENT);
-
- phpDR = new DefaultDamagerRepairer(getCodeScanner());
+ // DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
+ // reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
+ // dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IPHPPartitions.HTML);
+ // reconciler.setRepairer(dr, IPHPPartitions.HTML);
+ // dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IPHPPartitions.CSS);
+ // reconciler.setRepairer(dr, IPHPPartitions.CSS);
+ // dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IPHPPartitions.CSS_MULTILINE_COMMENT);
+ // reconciler.setRepairer(dr, IPHPPartitions.CSS_MULTILINE_COMMENT);
+ // dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IPHPPartitions.JAVASCRIPT);
+ // reconciler.setRepairer(dr, IPHPPartitions.JAVASCRIPT);
+ // dr = new DefaultDamagerRepairer(getHTMLScanner());
+ // reconciler.setDamager(dr, IPHPPartitions.JS_MULTILINE_COMMENT);
+ // reconciler.setRepairer(dr, IPHPPartitions.JS_MULTILINE_COMMENT);
+ // DefaultDamagerRepairer phpDR = new DefaultDamagerRepairer(getSmartyScanner());
+ // phpReconciler.setDamager(phpDR, IPHPPartitions.SMARTY);
+ // phpReconciler.setRepairer(phpDR, IPHPPartitions.SMARTY);
+ // phpDR = new DefaultDamagerRepairer(getSmartyDocScanner());
+ // phpReconciler.setDamager(phpDR, IPHPPartitions.SMARTY_MULTILINE_COMMENT);
+ // phpReconciler.setRepairer(phpDR, IPHPPartitions.SMARTY_MULTILINE_COMMENT);
+ // dr = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
+ // PHPColorProvider.MULTI_LINE_COMMENT))));
+ // reconciler.setDamager(dr, IPHPPartitions.HTML_MULTILINE_COMMENT);
+ // reconciler.setRepairer(dr, IPHPPartitions.HTML_MULTILINE_COMMENT);
+
+ DefaultDamagerRepairer phpDR = new DefaultDamagerRepairer(getCodeScanner());
phpReconciler.setDamager(phpDR, IDocument.DEFAULT_CONTENT_TYPE);
phpReconciler.setRepairer(phpDR, IDocument.DEFAULT_CONTENT_TYPE);
-
+
phpDR = new DefaultDamagerRepairer(getCodeScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_PARTITIONING);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_PARTITIONING);
@@ -730,72 +805,59 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_PHPDOC_COMMENT);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_PHPDOC_COMMENT);
- phpDR = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
- PHPColorProvider.STRING))));
+ phpDR = new DefaultDamagerRepairer(getStringScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_STRING_DQ);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_DQ);
- phpDR = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
- PHPColorProvider.STRING))));
+ phpDR = new DefaultDamagerRepairer(getStringScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_STRING_SQ);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_SQ);
- phpDR = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
- PHPColorProvider.SINGLE_LINE_COMMENT))));
+ phpDR = new DefaultDamagerRepairer(getSinglelineCommentScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT);
- phpDR = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
- PHPColorProvider.MULTI_LINE_COMMENT))));
+ phpDR = new DefaultDamagerRepairer(getMultilineCommentScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_MULTILINE_COMMENT);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_MULTILINE_COMMENT);
-
+
PresentationReconciler reconciler = new PresentationReconciler();
reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-//
+ //
JavaTextTools jspTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
- PHPColorProvider.PHPDOC_TAG))));//jspTextTools.getJSPTextScanner());
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
-
-// dr = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
-// PHPColorProvider.PHPDOC_TAG))));//jspTextTools.getJSPBracketScanner());
-// reconciler.setDamager(dr, JSPScriptScanner.JSP_BRACKET);
-// reconciler.setRepairer(dr, JSPScriptScanner.JSP_BRACKET);
-
+ DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getPHPDocScanner());//jspTextTools.getJSPTextScanner());
+ reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
+ reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
+
+ // dr = new DefaultDamagerRepairer(new SingleTokenScanner(new TextAttribute(fJavaTextTools.getColorManager().getColor(
+ // PHPColorProvider.PHPDOC_TAG))));//jspTextTools.getJSPBracketScanner());
+ // reconciler.setDamager(dr, JSPScriptScanner.JSP_BRACKET);
+ // reconciler.setRepairer(dr, JSPScriptScanner.JSP_BRACKET);
+
// xml partitions
- configureEmbeddedPresentationReconciler(reconciler,
- xmlConfiguration.getPresentationReconciler(sourceViewer),
- xmlConfiguration.getConfiguredContentTypes(sourceViewer),
- PHPDocumentPartitioner.PHP_TEMPLATE_DATA);
-
- // java partitions
- configureEmbeddedPresentationReconciler(reconciler,
- phpReconciler,
- getConfiguredPHPContentTypes(),
- PHPDocumentPartitioner.PHP_SCRIPT_CODE);
-
+ configureEmbeddedPresentationReconciler(reconciler, xmlConfiguration.getPresentationReconciler(sourceViewer), xmlConfiguration
+ .getConfiguredContentTypes(sourceViewer), PHPDocumentPartitioner.PHP_TEMPLATE_DATA);
+
+ // java partitions
+ configureEmbeddedPresentationReconciler(reconciler, phpReconciler, getConfiguredPHPContentTypes(),
+ PHPDocumentPartitioner.PHP_SCRIPT_CODE);
+
return reconciler;
}
-
- private void configureEmbeddedPresentationReconciler(
- PresentationReconciler reconciler,
- IPresentationReconciler embedded,
- String[] types,
- String defaultType
- ) {
- for (int i = 0; i < types.length; i++) {
- String type = types[i];
- IPresentationDamager damager = embedded.getDamager(type);
- IPresentationRepairer repairer = embedded.getRepairer(type);
+ private void configureEmbeddedPresentationReconciler(PresentationReconciler reconciler, IPresentationReconciler embedded,
+ String[] types, String defaultType) {
+ for (int i = 0; i < types.length; i++) {
+ String type = types[i];
- if (type == IDocument.DEFAULT_CONTENT_TYPE) {
- type = defaultType;
- }
+ IPresentationDamager damager = embedded.getDamager(type);
+ IPresentationRepairer repairer = embedded.getRepairer(type);
- reconciler.setDamager(damager, type);
- reconciler.setRepairer(repairer, type);
- }
- }
+ if (type == IDocument.DEFAULT_CONTENT_TYPE) {
+ type = defaultType;
+ }
+
+ reconciler.setDamager(damager, type);
+ reconciler.setRepairer(repairer, type);
+ }
+ }
/*
* (non-Javadoc) Method declared on SourceViewerConfiguration
@@ -836,20 +898,21 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
};
}
- /*
- * @see SourceViewerConfiguration#getInformationPresenter(ISourceViewer)
- * @since 2.0
- */
- public IInformationPresenter getInformationPresenter(ISourceViewer sourceViewer) {
- InformationPresenter presenter= new InformationPresenter(getInformationPresenterControlCreator(sourceViewer));
- presenter.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
- IInformationProvider provider= new JavaInformationProvider(getEditor());
- presenter.setInformationProvider(provider, IDocument.DEFAULT_CONTENT_TYPE);
- presenter.setInformationProvider(provider, IPHPPartitions.PHP_PHPDOC_COMMENT);
-// presenter.setInformationProvider(provider, IPHPPartitions.JAVA_CHARACTER);
- presenter.setSizeConstraints(60, 10, true, true);
- return presenter;
- }
+ /*
+ * @see SourceViewerConfiguration#getInformationPresenter(ISourceViewer)
+ * @since 2.0
+ */
+ public IInformationPresenter getInformationPresenter(ISourceViewer sourceViewer) {
+ InformationPresenter presenter = new InformationPresenter(getInformationPresenterControlCreator(sourceViewer));
+ presenter.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
+ IInformationProvider provider = new JavaInformationProvider(getEditor());
+ presenter.setInformationProvider(provider, IDocument.DEFAULT_CONTENT_TYPE);
+ presenter.setInformationProvider(provider, IPHPPartitions.PHP_PHPDOC_COMMENT);
+ // presenter.setInformationProvider(provider, IPHPPartitions.JAVA_CHARACTER);
+ presenter.setSizeConstraints(60, 10, true, true);
+ return presenter;
+ }
+
/*
* @see SourceViewerConfiguration#getInformationPresenter(ISourceViewer)
* @since 2.0
@@ -919,6 +982,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
presenter.setAnchor(InformationPresenter.ANCHOR_GLOBAL);
IInformationProvider provider = new JavaElementProvider(getEditor(), doCodeResolve);
presenter.setInformationProvider(provider, IDocument.DEFAULT_CONTENT_TYPE);
+ presenter.setInformationProvider(provider, PHPDocumentPartitioner.PHP_SCRIPT_CODE);
presenter.setInformationProvider(provider, IPHPPartitions.PHP_PARTITIONING);
presenter.setInformationProvider(provider, IPHPPartitions.PHP_PHPDOC_COMMENT);
presenter.setInformationProvider(provider, IPHPPartitions.SMARTY_MULTILINE_COMMENT);