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 cfd2d31..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 @@ -24,7 +24,6 @@ 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; @@ -37,7 +36,6 @@ 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; @@ -52,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; @@ -84,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; /** @@ -98,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; @@ -113,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. */ @@ -139,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; @@ -204,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 @@ -234,7 +229,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { /** * 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 @@ -251,7 +246,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // fCodeScanner = (AbstractJavaScanner) fJavaTextTools.getCodeScanner(); // fMultilineCommentScanner = (AbstractJavaScanner) fJavaTextTools.getMultilineCommentScanner(); // fSinglelineCommentScanner = (AbstractJavaScanner) fJavaTextTools.getSinglelineCommentScanner(); - // fStringScanner = (AbstractJavaScanner) fJavaTextTools.getStringScanner(); + // fStringDQScanner = (AbstractJavaScanner) fJavaTextTools.getStringScanner(); // fJavaDocScanner = (AbstractJavaScanner) fJavaTextTools.getJavaDocScanner(); // fTextEditor = editor; // fXMLTextTools = XMLPlugin.getDefault().getXMLTextTools(); @@ -259,7 +254,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration { // } /** * Returns the color manager for this configuration. - * + * * @return the color manager */ protected IColorManager getColorManager() { @@ -268,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 * @returntrue
if event causes a behavioral change
@@ -292,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);
}
@@ -301,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); } @@ -348,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 isnull
.
- *
+ *
* @return the partition managing position categories or null
if there is none
*/
public String[] getPartitionManagingPositionCategories() {
@@ -377,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() {
@@ -410,8 +409,8 @@ 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)
+ 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))
@@ -422,12 +421,12 @@ 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() {
@@ -436,7 +435,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
/**
* Returns the Java multi-line comment scanner for this configuration.
- *
+ *
* @return the Java multi-line comment scanner
* @since 2.0
*/
@@ -446,7 +445,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
/**
* Returns the Java single-line comment scanner for this configuration.
- *
+ *
* @return the Java single-line comment scanner
* @since 2.0
*/
@@ -455,18 +454,25 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
}
/**
- * Returns the Java string scanner for this configuration.
- *
- * @return the Java string scanner
- * @since 2.0
+ * Returns the PHP double quoted string scanner for this configuration.
+ *
+ * @return the PHP double quoted string scanner
*/
- protected RuleBasedScanner getStringScanner() {
- return fStringScanner;
+ 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() {
@@ -474,7 +480,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
// }
/**
* Returns the Smarty source code scanner for this configuration.
- *
+ *
* @return the Smarty source code scanner
*/
// protected RuleBasedScanner getSmartyScanner() {
@@ -568,7 +574,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
/**
* Returns the SmartyDoc source code scanner for this configuration.
- *
+ *
* @return the SmartyDoc source code scanner
*/
// protected RuleBasedScanner getSmartyDocScanner() {
@@ -576,7 +582,7 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
// }
/**
* Returns the PHPDoc source code scanner for this configuration.
- *
+ *
* @return the PHPDoc source code scanner
*/
protected RuleBasedScanner getPHPDocScanner() {
@@ -591,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,
@@ -615,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, };
}
@@ -658,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);
@@ -730,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
@@ -805,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);
@@ -821,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);
@@ -931,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
@@ -951,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
@@ -969,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