Contributors:
IBM Corporation - Initial implementation
- Klaus Hartlage - www.eclipseproject.de
+ www.phpeclipse.de
**********************************************************************/
package net.sourceforge.phpdt.ui.text;
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.JavaColorManager;
import net.sourceforge.phpdt.internal.ui.text.JavaCompositeReconcilingStrategy;
import net.sourceforge.phpdt.internal.ui.text.JavaElementProvider;
import net.sourceforge.phpdt.internal.ui.text.JavaOutlineInformationControl;
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.PHPDocumentPartitioner;
import net.sourceforge.phpeclipse.phpeditor.php.PHPDoubleClickSelector;
import net.sourceforge.phpeclipse.phpeditor.php.PHPPartitionScanner;
-import net.sourceforge.phpeclipse.phpeditor.php.SmartyCodeScanner;
-import net.sourceforge.phpeclipse.phpeditor.php.SmartyDocCodeScanner;
-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;
private AbstractJavaScanner fSinglelineCommentScanner;
/**
- * The Java string scanner
- *
- * @since 3.0
+ * The PHP double quoted string scanner
*/
- private AbstractJavaScanner fStringScanner;
-
+ private AbstractJavaScanner fStringDQScanner;
+ /**
+ * The PHP single quoted string scanner
+ */
+ private AbstractJavaScanner fStringSQScanner;
+
/**
* The Javadoc scanner
*
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;
-
+ fColorManager = colorManager;
+ fPreferenceStore = preferenceStore;
+ fTextEditor = editor;
+ fDocumentPartitioning = partitioning;
+
initializeScanners();
}
/**
- * 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);
-// }
-
+ * 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();
+ // fStringDQScanner = (AbstractJavaScanner) fJavaTextTools.getStringScanner();
+ // fJavaDocScanner = (AbstractJavaScanner) fJavaTextTools.getJavaDocScanner();
+ // fTextEditor = editor;
+ // fXMLTextTools = XMLPlugin.getDefault().getXMLTextTools();
+ // xmlConfiguration = new XMLConfiguration(fXMLTextTools);
+ // }
/**
* Returns the color manager for this configuration.
*
IPreferenceConstants.PHP_MULTILINE_COMMENT);
fSinglelineCommentScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore,
IPreferenceConstants.PHP_SINGLELINE_COMMENT);
- fStringScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore, IPreferenceConstants.PHP_STRING);
+// fStringDQScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore, IPreferenceConstants.PHP_STRING_DQ);
+ fStringDQScanner = new PHPStringDQCodeScanner(getColorManager(), fPreferenceStore);
+ fStringSQScanner = new SingleTokenPHPScanner(getColorManager(), fPreferenceStore, IPreferenceConstants.PHP_STRING_SQ);
fJavaDocScanner = new PHPDocCodeScanner(getColorManager(), fPreferenceStore);
}
*/
public boolean affectsTextPresentation(PropertyChangeEvent event) {
return fCodeScanner.affectsBehavior(event) || fMultilineCommentScanner.affectsBehavior(event)
- || fSinglelineCommentScanner.affectsBehavior(event) || fStringScanner.affectsBehavior(event)
+ || fSinglelineCommentScanner.affectsBehavior(event) || fStringDQScanner.affectsBehavior(event)|| fStringSQScanner.affectsBehavior(event)
|| fJavaDocScanner.affectsBehavior(event);
}
fMultilineCommentScanner.adaptToPreferenceChange(event);
if (fSinglelineCommentScanner.affectsBehavior(event))
fSinglelineCommentScanner.adaptToPreferenceChange(event);
- if (fStringScanner.affectsBehavior(event))
- fStringScanner.adaptToPreferenceChange(event);
+ if (fStringDQScanner.affectsBehavior(event))
+ fStringDQScanner.adaptToPreferenceChange(event);
+ if (fStringSQScanner.affectsBehavior(event))
+ fStringSQScanner.adaptToPreferenceChange(event);
if (fJavaDocScanner.affectsBehavior(event))
fJavaDocScanner.adaptToPreferenceChange(event);
}
* (non-Javadoc) Method declared on SourceViewerConfiguration
*/
public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) {
- if (IPHPPartitions.PHP_STRING_DQ.equals(contentType) || IPHPPartitions.PHP_STRING_SQ.equals(contentType))
- return new JavaStringAutoIndentStrategy(getConfiguredDocumentPartitioning(sourceViewer));
+ 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 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)
protected RuleBasedScanner 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;
- }
+
+ /**
+ * 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 PHP double quoted string scanner for this configuration.
+ *
+ * @return the PHP double quoted string scanner
+ */
+ protected RuleBasedScanner getStringDQScanner() {
+ return fStringDQScanner;
+ }
+
+ /**
+ * Returns the PHP single quoted string scanner for this configuration.
+ *
+ * @return the PHP single quoted string scanner
+ */
+ protected RuleBasedScanner getStringSQScanner() {
+ return fStringSQScanner;
+ }
/**
* Returns the HTML 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)
*/
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
*
* @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.
*
// 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);
+ // 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);
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_PHPDOC_COMMENT);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_PHPDOC_COMMENT);
- phpDR = new DefaultDamagerRepairer(getStringScanner());
+ phpDR = new DefaultDamagerRepairer(getStringDQScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_STRING_DQ);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_DQ);
- phpDR = new DefaultDamagerRepairer(getStringScanner());
+ phpDR = new DefaultDamagerRepairer(getStringSQScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_STRING_SQ);
- phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_SQ);
+ phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_SQ);
phpDR = new DefaultDamagerRepairer(getSinglelineCommentScanner());
phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT);
phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT);
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);