X-Git-Url: http://git.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 d1e9583..9973c82 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,7 +7,7 @@ Contributors: IBM Corporation - Initial implementation - Klaus Hartlage - www.eclipseproject.de + www.phpeclipse.de **********************************************************************/ package net.sourceforge.phpdt.ui.text; @@ -24,19 +24,18 @@ 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.PreferencesAdapter; import net.sourceforge.phpdt.internal.ui.text.java.JavaFormattingStrategy; 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.html.HTMLFormattingStrategy; import net.sourceforge.phpeclipse.phpeditor.php.HTMLCompletionProcessor; import net.sourceforge.phpeclipse.phpeditor.php.PHPAutoIndentStrategy; import net.sourceforge.phpeclipse.phpeditor.php.PHPCodeScanner; @@ -51,9 +50,9 @@ import net.sourceforge.phpeclipse.xml.ui.text.XMLTextTools; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.text.DefaultAutoIndentStrategy; +import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy; import org.eclipse.jface.text.DefaultInformationControl; -import org.eclipse.jface.text.IAutoIndentStrategy; +import org.eclipse.jface.text.IAutoEditStrategy; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IInformationControl; import org.eclipse.jface.text.IInformationControlCreator; @@ -83,12 +82,9 @@ 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.Assert; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.editors.text.EditorsUI; -import org.eclipse.ui.texteditor.ChainedPreferenceStore; import org.eclipse.ui.texteditor.ITextEditor; /** @@ -97,14 +93,14 @@ import org.eclipse.ui.texteditor.ITextEditor; public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Preference key used to look up display tab width. - * + * * @since 2.0 */ public final static String PREFERENCE_TAB_WIDTH = PreferenceConstants.EDITOR_TAB_WIDTH; /** * Preference key for inserting spaces rather than tabs. - * + * * @since 2.0 */ public final static String SPACES_FOR_TABS = PreferenceConstants.EDITOR_SPACES_FOR_TABS; @@ -112,21 +108,19 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // public static final String HTML_DEFAULT = // IPHPPartitionScannerConstants.HTML; //IDocument.DEFAULT_CONTENT_TYPE; - private JavaTextTools fJavaTextTools; +// private JavaTextTools fJavaTextTools; private ITextEditor fTextEditor; /** * The document partitioning. - * + * * @since 3.0 */ private String fDocumentPartitioning; private ContentFormatter fFormatter; - private HTMLFormattingStrategy fFormattingStrategy; - /** * Single token scanner. */ @@ -138,55 +132,57 @@ 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 + * The PHP double quoted string scanner + */ + private AbstractJavaScanner fStringDQScanner; + /** + * The PHP single quoted string scanner */ - private AbstractJavaScanner fStringScanner; + private AbstractJavaScanner fStringSQScanner; /** * 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; @@ -203,7 +199,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { * {@link JavaSourceViewerConfiguration#handlePropertyChangeEvent(PropertyChangeEvent)}and disallowed to call * {@link JavaSourceViewerConfiguration#getPreferenceStore()}on the resulting Java source viewer configuration. *

- * + * * @param colorManager * the color manager * @param preferenceStore @@ -220,44 +216,45 @@ 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; - + 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. - * + * * @return the color manager */ protected IColorManager getColorManager() { @@ -266,23 +263,25 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Initializes the scanners. - * + * * @since 3.0 */ private void initializeScanners() { - Assert.isTrue(isNewSetup()); +// 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); +// 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); } /** * 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 @@ -290,7 +289,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { */ 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); } @@ -299,22 +298,24 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { *

* 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()); +// 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 (fStringDQScanner.affectsBehavior(event)) + fStringDQScanner.adaptToPreferenceChange(event); + if (fStringSQScanner.affectsBehavior(event)) + fStringSQScanner.adaptToPreferenceChange(event); if (fJavaDocScanner.affectsBehavior(event)) fJavaDocScanner.adaptToPreferenceChange(event); } @@ -346,7 +347,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the names of the document position categories used by the document partitioners created by this object to manage their * partition information. If the partitioners don't use document position categories, the returned result is null. - * + * * @return the partition managing position categories or null if there is none */ public String[] getPartitionManagingPositionCategories() { @@ -375,9 +376,9 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the preference store used by this configuration to initialize the individual bits and pieces. - * + * * @return the preference store used to initialize this configuration - * + * * @since 2.0 */ protected IPreferenceStore getPreferenceStore() { @@ -408,7 +409,10 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /* * (non-Javadoc) Method declared on SourceViewerConfiguration */ - public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) { + public IAutoEditStrategy getAutoEditStrategy(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 JavaStringAutoIndentStrategyDQ(getConfiguredDocumentPartitioning(sourceViewer)); if (IPHPPartitions.PHP_STRING_SQ.equals(contentType)) @@ -417,49 +421,58 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { 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()); + : new DefaultIndentLineAutoEditStrategy()); } /** * Returns the PHP source code scanner for this configuration. - * + * * @return the PHP source code scanner */ 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 HTML source code scanner */ // protected RuleBasedScanner getHTMLScanner() { @@ -467,13 +480,12 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // } /** * 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) */ @@ -497,16 +509,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 @@ -572,16 +574,15 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the SmartyDoc source code scanner for this configuration. - * + * * @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() { @@ -596,7 +597,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { 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.PHP_STRING_DQ, IPHPPartitions.PHP_STRING_SQ, IPHPPartitions.PHP_STRING_HEREDOC, IPHPPartitions.CSS, IPHPPartitions.CSS_MULTILINE_COMMENT, IPHPPartitions.JAVASCRIPT, IPHPPartitions.JS_MULTILINE_COMMENT, IPHPPartitions.SMARTY, IPHPPartitions.SMARTY_MULTILINE_COMMENT, @@ -620,7 +621,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { 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.PHP_STRING_SQ, IPHPPartitions.PHP_STRING_HEREDOC, IPHPPartitions.CSS, IPHPPartitions.CSS_MULTILINE_COMMENT, IPHPPartitions.JAVASCRIPT, IPHPPartitions.JS_MULTILINE_COMMENT, IPHPPartitions.SMARTY, IPHPPartitions.SMARTY_MULTILINE_COMMENT, }; } @@ -663,6 +664,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_PARTITIONING); assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_STRING_DQ); assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_STRING_SQ); + assistant.setContentAssistProcessor(processor, IPHPPartitions.PHP_STRING_HEREDOC); assistant.setContentAssistProcessor(new PHPDocCompletionProcessor(getEditor()), IPHPPartitions.PHP_PHPDOC_COMMENT); // assistant.enableAutoActivation(true); @@ -735,28 +737,28 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * @return true iff the new setup without text tools is in use. - * + * * @since 3.0 */ - private boolean isNewSetup() { - return fJavaTextTools == null; - } +// 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 }); - } +// 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 @@ -787,12 +789,12 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // 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); @@ -810,12 +812,15 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { 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); + phpDR = new DefaultDamagerRepairer(getStringDQScanner()); + phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_STRING_HEREDOC); + phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_STRING_HEREDOC); phpDR = new DefaultDamagerRepairer(getSinglelineCommentScanner()); phpReconciler.setDamager(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT); phpReconciler.setRepairer(phpDR, IPHPPartitions.PHP_SINGLELINE_COMMENT); @@ -826,7 +831,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { PresentationReconciler reconciler = new PresentationReconciler(); reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer)); // - JavaTextTools jspTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); +// JavaTextTools jspTextTools = PHPeclipsePlugin.getDefault().getJavaTextTools(); DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getPHPDocScanner());//jspTextTools.getJSPTextScanner()); reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); @@ -936,7 +941,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the information presenter control creator. The creator is a factory creating the presenter controls for the given * source viewer. This implementation always returns a creator for DefaultInformationControl instances. - * + * * @param sourceViewer * the source viewer to be configured by this configuration * @return an information control creator @@ -956,7 +961,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the outline presenter control creator. The creator is a factory creating outline presenter controls for the given * source viewer. This implementation always returns a creator for JavaOutlineInformationControl instances. - * + * * @param sourceViewer * the source viewer to be configured by this configuration * @return an information control creator @@ -974,7 +979,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * Returns the outline presenter which will determine and shown information requested for the current cursor position. - * + * * @param sourceViewer * the source viewer to be configured by this configuration * @param doCodeResolve @@ -987,6 +992,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);