From 1d3fcf334bbb538208b0f13d50b529f53dfd7a6a Mon Sep 17 00:00:00 2001 From: jsurfer Date: Sat, 25 Sep 2004 08:02:07 +0000 Subject: [PATCH] added syntax color for {} operators --- .../ui/preferences/JavaEditorPreferencePage.java | 8 +- .../ui/preferences/PreferencesMessages.properties | 3 +- .../ui/text/JavaCompositeReconcilingStrategy.java | 223 ++++---- .../sourceforge/phpdt/ui/PreferenceConstants.java | 33 + .../phpeclipse/IPreferenceConstants.java | 39 ++ .../sourceforge/phpeclipse/PHPeclipsePlugin.java | 644 +++++++++----------- .../phpeclipse/phpeditor/php/HTMLCodeScanner.java | 1 + .../phpeclipse/phpeditor/php/PHPCodeScanner.java | 23 +- 8 files changed, 497 insertions(+), 477 deletions(-) diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java index 69d820c..558b087 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/JavaEditorPreferencePage.java @@ -115,7 +115,9 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben { PreferencesMessages.getString("JavaEditorPreferencePage.operators"), PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.returnKeyword"), - PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR }, + PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR }, + { PreferencesMessages.getString("JavaEditorPreferencePage.braces"), + PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.phpDocKeywords"), PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR }, //$NON-NLS-1$ @@ -357,6 +359,10 @@ public class JavaEditorPreferencePage extends PreferencePage implements IWorkben overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, + PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR)); + overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, + PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_BOLD)); + overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD)); diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/PreferencesMessages.properties b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/PreferencesMessages.properties index ccb6825..14dbec3 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/PreferencesMessages.properties +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/PreferencesMessages.properties @@ -108,7 +108,8 @@ JavaEditorPreferencePage.types=Types JavaEditorPreferencePage.strings=Strings JavaEditorPreferencePage.others=Others JavaEditorPreferencePage.methodNames=Method names -JavaEditorPreferencePage.operators=Operators and brackets +JavaEditorPreferencePage.operators=Operators, brackets excluding '{}' +JavaEditorPreferencePage.braces='{}' brackets JavaEditorPreferencePage.javaCommentTaskTags=Task Tags JavaEditorPreferencePage.phpDocKeywords=PHPDoc keywords JavaEditorPreferencePage.phpDocHtmlTags=PHPDoc HTML tags diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/JavaCompositeReconcilingStrategy.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/JavaCompositeReconcilingStrategy.java index 2a77746..74ae99f 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/JavaCompositeReconcilingStrategy.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/JavaCompositeReconcilingStrategy.java @@ -24,115 +24,122 @@ import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.ITextEditor; /** - * Reconciling strategy for Java code. This is a composite strategy containing the - * regular java model reconciler and the comment spell checking strategy. + * Reconciling strategy for Java code. This is a composite strategy containing the regular java model reconciler and the comment + * spell checking strategy. * - * @since 3.0 + * @since 3.0 */ -public class JavaCompositeReconcilingStrategy extends CompositeReconcilingStrategy { - - private ITextEditor fEditor; - private JavaReconcilingStrategy fJavaStrategy; +public class JavaCompositeReconcilingStrategy extends CompositeReconcilingStrategy { - /** - * Creates a new Java reconciling strategy. - * - * @param editor the editor of the strategy's reconciler - * @param documentPartitioning the document partitioning this strategy uses for configuration - */ - public JavaCompositeReconcilingStrategy(ITextEditor editor, String documentPartitioning) { - fEditor= editor; - fJavaStrategy= new JavaReconcilingStrategy(editor); - setReconcilingStrategies(new IReconcilingStrategy[] { - fJavaStrategy, - new SpellReconcileStrategy(editor, documentPartitioning, PreferenceConstants.getPreferenceStore()) - }); - } - - /** - * Returns the problem requestor for the editor's input element. - * - * @return the problem requestor for the editor's input element - */ - private IProblemRequestorExtension getProblemRequestorExtension() { - IDocumentProvider p= fEditor.getDocumentProvider(); - if (p == null) { - // work around for https://bugs.eclipse.org/bugs/show_bug.cgi?id=51522 - p= PHPeclipsePlugin.getDefault().getCompilationUnitDocumentProvider(); - } - IAnnotationModel m= p.getAnnotationModel(fEditor.getEditorInput()); - if (m instanceof IProblemRequestorExtension) - return (IProblemRequestorExtension) m; - return null; - } - - /* - * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion, org.eclipse.jface.text.IRegion) - */ - public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) { - IProblemRequestorExtension e= getProblemRequestorExtension(); - if (e != null) { - try { - e.beginReportingSequence(); - super.reconcile(dirtyRegion, subRegion); - } finally { - e.endReportingSequence(); - } - } else { - super.reconcile(dirtyRegion, subRegion); - } - } - - /* - * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#reconcile(org.eclipse.jface.text.IRegion) - */ - public void reconcile(IRegion partition) { - IProblemRequestorExtension e= getProblemRequestorExtension(); - if (e != null) { - try { - e.beginReportingSequence(); - super.reconcile(partition); - } finally { - e.endReportingSequence(); - } - } else { - super.reconcile(partition); - } - } - - /** - * Tells this strategy whether to inform its listeners. - * - * @param notify true if listeners should be notified - */ - public void notifyListeners(boolean notify) { - fJavaStrategy.notifyListeners(notify); - } - - /* - * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#initialReconcile() - */ - public void initialReconcile() { - IProblemRequestorExtension e= getProblemRequestorExtension(); - if (e != null) { - try { - e.beginReportingSequence(); - super.initialReconcile(); - } finally { - e.endReportingSequence(); - } - } else { - super.initialReconcile(); - } - } + private ITextEditor fEditor; - /** - * Called before reconciling is started. - * - * @since 3.0 - */ - public void aboutToBeReconciled() { - fJavaStrategy.aboutToBeReconciled(); - - } -} + private JavaReconcilingStrategy fJavaStrategy; + + /** + * Creates a new Java reconciling strategy. + * + * @param editor + * the editor of the strategy's reconciler + * @param documentPartitioning + * the document partitioning this strategy uses for configuration + */ + public JavaCompositeReconcilingStrategy(ITextEditor editor, String documentPartitioning) { + fEditor = editor; + fJavaStrategy = new JavaReconcilingStrategy(editor); + setReconcilingStrategies(new IReconcilingStrategy[] { fJavaStrategy, + new SpellReconcileStrategy(editor, documentPartitioning, PreferenceConstants.getPreferenceStore()) }); + } + + /** + * Returns the problem requestor for the editor's input element. + * + * @return the problem requestor for the editor's input element + */ + private IProblemRequestorExtension getProblemRequestorExtension() { + IDocumentProvider p = fEditor.getDocumentProvider(); + if (p == null) { + try { + // work around for https://bugs.eclipse.org/bugs/show_bug.cgi?id=51522 + p = PHPeclipsePlugin.getDefault().getCompilationUnitDocumentProvider(); + } catch (NullPointerException npe) { + return null; + } + } + IAnnotationModel m = p.getAnnotationModel(fEditor.getEditorInput()); + if (m instanceof IProblemRequestorExtension) + return (IProblemRequestorExtension) m; + return null; + } + + /* + * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion, + * org.eclipse.jface.text.IRegion) + */ + public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) { + IProblemRequestorExtension e = getProblemRequestorExtension(); + if (e != null) { + try { + e.beginReportingSequence(); + super.reconcile(dirtyRegion, subRegion); + } finally { + e.endReportingSequence(); + } + } else { + super.reconcile(dirtyRegion, subRegion); + } + } + + /* + * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#reconcile(org.eclipse.jface.text.IRegion) + */ + public void reconcile(IRegion partition) { + IProblemRequestorExtension e = getProblemRequestorExtension(); + if (e != null) { + try { + e.beginReportingSequence(); + super.reconcile(partition); + } finally { + e.endReportingSequence(); + } + } else { + super.reconcile(partition); + } + } + + /** + * Tells this strategy whether to inform its listeners. + * + * @param notify + * true if listeners should be notified + */ + public void notifyListeners(boolean notify) { + fJavaStrategy.notifyListeners(notify); + } + + /* + * @see org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy#initialReconcile() + */ + public void initialReconcile() { + IProblemRequestorExtension e = getProblemRequestorExtension(); + if (e != null) { + try { + e.beginReportingSequence(); + super.initialReconcile(); + } finally { + e.endReportingSequence(); + } + } else { + super.initialReconcile(); + } + } + + /** + * Called before reconciling is started. + * + * @since 3.0 + */ + public void aboutToBeReconciled() { + fJavaStrategy.aboutToBeReconciled(); + + } +} \ No newline at end of file diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/PreferenceConstants.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/PreferenceConstants.java index f751f9f..a013788 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/PreferenceConstants.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/PreferenceConstants.java @@ -1092,6 +1092,39 @@ public final static String EDITOR_TEXT_FONT= "net.sourceforge.phpdt.ui.editors.t */ public final static String EDITOR_PHP_OPERATOR_ITALIC= IPreferenceConstants.PHP_OPERATOR + EDITOR_ITALIC_SUFFIX; + /** + * A named preference that holds the color used to render operators and brackets. + *

+ * Value is of type String. A RGB color value encoded as a string + * using class PreferenceConverter + *

+ * + * @see org.eclipse.jface.resource.StringConverter + * @see org.eclipse.jface.preference.PreferenceConverter + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_COLOR= IPreferenceConstants.PHP_BRACE_OPERATOR; + + /** + * A named preference that controls whether operators and brackets are rendered in bold. + *

+ * Value is of type Boolean. + *

+ * + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_BOLD= IPreferenceConstants.PHP_BRACE_OPERATOR + EDITOR_BOLD_SUFFIX; + + /** + * A named preference that controls whether operators and brackets are rendered in italic. + *

+ * Value is of type Boolean. + *

+ * + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_ITALIC= IPreferenceConstants.PHP_BRACE_OPERATOR + EDITOR_ITALIC_SUFFIX; + /** * A named preference that holds the color used to render the 'return' keyword. *

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/IPreferenceConstants.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/IPreferenceConstants.java index 97775d7..309f4c0 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/IPreferenceConstants.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/IPreferenceConstants.java @@ -63,6 +63,12 @@ public interface IPreferenceConstants { */ public static final String PHP_OPERATOR = "__php_operator"; //$NON-NLS-1$ + /** The color key for {} in PHP code + * (value "__php_brace_operator"). + * @since 3.0 + */ + public static final String PHP_BRACE_OPERATOR = "__php_brace_operator"; //$NON-NLS-1$ + /** * A named preference that holds the color used to render operators and brackets. *

@@ -96,6 +102,39 @@ public interface IPreferenceConstants { */ public final static String EDITOR_PHP_OPERATOR_ITALIC= PHP_OPERATOR + EDITOR_ITALIC_SUFFIX; + /** + * A named preference that holds the color used to render operators and brackets. + *

+ * Value is of type String. A RGB color value encoded as a string + * using class PreferenceConverter + *

+ * + * @see org.eclipse.jface.resource.StringConverter + * @see org.eclipse.jface.preference.PreferenceConverter + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_COLOR= PHP_BRACE_OPERATOR; + + /** + * A named preference that controls whether operators and brackets are rendered in bold. + *

+ * Value is of type Boolean. + *

+ * + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_BOLD= PHP_BRACE_OPERATOR + EDITOR_BOLD_SUFFIX; + + /** + * A named preference that controls whether operators and brackets are rendered in italic. + *

+ * Value is of type Boolean. + *

+ * + * @since 3.0 + */ + public final static String EDITOR_PHP_BRACE_OPERATOR_ITALIC= PHP_BRACE_OPERATOR + EDITOR_ITALIC_SUFFIX; + /** The color key for keyword 'return' in PHP code * (value "__php_keyword_return"). * @since 3.0 diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index b0b2811..6ae57ad 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -118,8 +118,7 @@ import org.osgi.framework.BundleContext; /** * The main plugin class to be used in the desktop. */ -public class PHPeclipsePlugin extends AbstractUIPlugin implements - IPreferenceConstants { +public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceConstants { /** * The id of the PHP plugin (value "net.sourceforge.phpeclipse"). */ @@ -140,26 +139,32 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements public final static int MAX_PROPOSALS = 200; /** - * The key to store customized templates. - * @since 3.0 - */ - private static final String TEMPLATES_KEY= "net.sourceforge.phpdt.ui.text.custom_templates"; //$NON-NLS-1$ - /** - * The key to store customized code templates. - * @since 3.0 - */ - private static final String CODE_TEMPLATES_KEY= "net.sourceforge.phpdt.ui.text.custom_code_templates"; //$NON-NLS-1$ - /** - * The key to store whether the legacy templates have been migrated - * @since 3.0 - */ -// private static final String TEMPLATES_MIGRATION_KEY= "net.sourceforge.phpdt.ui.text.templates_migrated"; //$NON-NLS-1$ - /** - * The key to store whether the legacy code templates have been migrated - * @since 3.0 - */ -// private static final String CODE_TEMPLATES_MIGRATION_KEY= "net.sourceforge.phpdt.ui.text.code_templates_migrated"; //$NON-NLS-1$ - + * The key to store customized templates. + * + * @since 3.0 + */ + private static final String TEMPLATES_KEY = "net.sourceforge.phpdt.ui.text.custom_templates"; //$NON-NLS-1$ + + /** + * The key to store customized code templates. + * + * @since 3.0 + */ + private static final String CODE_TEMPLATES_KEY = "net.sourceforge.phpdt.ui.text.custom_code_templates"; //$NON-NLS-1$ + + /** + * The key to store whether the legacy templates have been migrated + * + * @since 3.0 + */ + // private static final String TEMPLATES_MIGRATION_KEY= "net.sourceforge.phpdt.ui.text.templates_migrated"; //$NON-NLS-1$ + /** + * The key to store whether the legacy code templates have been migrated + * + * @since 3.0 + */ + // private static final String CODE_TEMPLATES_MIGRATION_KEY= "net.sourceforge.phpdt.ui.text.code_templates_migrated"; + // //$NON-NLS-1$ private static ExternalToolsPlugin externalTools; @@ -185,8 +190,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // public static final String PHP_RESOURCES_VIEW_ID = PLUGIN_ID + // ".resourcesview.ViewPHPResources"; //$NON-NLS-1$ - public static final String PHP_CODING_ACTION_SET_ID = PLUGIN_ID - + ".ui.CodingActionSet"; //$NON-NLS-1$ + public static final String PHP_CODING_ACTION_SET_ID = PLUGIN_ID + ".ui.CodingActionSet"; //$NON-NLS-1$ public final static String PHP_NATURE_ID = PLUGIN_ID + ".phpnature"; @@ -200,28 +204,34 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements //The shared instance. private static PHPeclipsePlugin plugin; - /** - * The template context type registry for the java editor. - * @since 3.0 - */ - private ContextTypeRegistry fContextTypeRegistry; - /** - * The code template context type registry for the java editor. - * @since 3.0 - */ - private ContextTypeRegistry fCodeTemplateContextTypeRegistry; - - /** - * The template store for the java editor. - * @since 3.0 - */ - private TemplateStore fTemplateStore; - /** - * The coded template store for the java editor. - * @since 3.0 - */ - private TemplateStore fCodeTemplateStore; - + /** + * The template context type registry for the java editor. + * + * @since 3.0 + */ + private ContextTypeRegistry fContextTypeRegistry; + + /** + * The code template context type registry for the java editor. + * + * @since 3.0 + */ + private ContextTypeRegistry fCodeTemplateContextTypeRegistry; + + /** + * The template store for the java editor. + * + * @since 3.0 + */ + private TemplateStore fTemplateStore; + + /** + * The coded template store for the java editor. + * + * @since 3.0 + */ + private TemplateStore fCodeTemplateStore; + /** Windows 9x */ private static final int WINDOWS_9x = 6; @@ -272,17 +282,14 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements private IPreferenceStore fCombinedPreferenceStore; /** - * The extension point registry for the - * net.sourceforge.phpdt.ui.javaFoldingStructureProvider extension - * point. + * The extension point registry for the net.sourceforge.phpdt.ui.javaFoldingStructureProvider extension point. * * @since 3.0 */ private JavaFoldingStructureProviderRegistry fFoldingStructureProviderRegistry; /** - * Mockup preference store for firing events and registering listeners on - * project setting changes. FIXME: Temporary solution. + * Mockup preference store for firing events and registering listeners on project setting changes. FIXME: Temporary solution. * * @since 3.0 */ @@ -325,15 +332,13 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements */ public JavaEditorTextHoverDescriptor[] getJavaEditorTextHoverDescriptors() { if (fJavaEditorTextHoverDescriptors == null) { - fJavaEditorTextHoverDescriptors = JavaEditorTextHoverDescriptor - .getContributedHovers(); + fJavaEditorTextHoverDescriptors = JavaEditorTextHoverDescriptor.getContributedHovers(); ConfigurationElementSorter sorter = new ConfigurationElementSorter() { /* * @see org.eclipse.ui.texteditor.ConfigurationElementSorter#getConfigurationElement(java.lang.Object) */ public IConfigurationElement getConfigurationElement(Object object) { - return ((JavaEditorTextHoverDescriptor) object) - .getConfigurationElement(); + return ((JavaEditorTextHoverDescriptor) object).getConfigurationElement(); } }; sorter.sort(fJavaEditorTextHoverDescriptors); @@ -357,13 +362,11 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements if (first == -1) first = i; - if (fJavaEditorTextHoverDescriptors[i].getId().equals( - "net.sourceforge.phpdt.ui.AnnotationHover")) { //$NON-NLS-1$ + if (fJavaEditorTextHoverDescriptors[i].getId().equals("net.sourceforge.phpdt.ui.AnnotationHover")) { //$NON-NLS-1$ annotationHoverIndex = i; continue; } - if (fJavaEditorTextHoverDescriptors[i].getId().equals( - "net.sourceforge.phpdt.ui.ProblemHover")) { //$NON-NLS-1$ + if (fJavaEditorTextHoverDescriptors[i].getId().equals("net.sourceforge.phpdt.ui.ProblemHover")) { //$NON-NLS-1$ problemHoverIndex = i; continue; } @@ -391,8 +394,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // Move Best Match hover to front for (int i = 0; i < fJavaEditorTextHoverDescriptors.length - 1; i++) { - if (PreferenceConstants.ID_BESTMATCH_HOVER - .equals(fJavaEditorTextHoverDescriptors[i].getId())) { + if (PreferenceConstants.ID_BESTMATCH_HOVER.equals(fJavaEditorTextHoverDescriptors[i].getId())) { hoverDescriptor = fJavaEditorTextHoverDescriptors[i]; for (int j = i; j > 0; j--) fJavaEditorTextHoverDescriptors[j] = fJavaEditorTextHoverDescriptors[j - 1]; @@ -409,8 +411,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements /** * Resets the Java editor text hovers contributed to the workbench. *

- * This will force a rebuild of the descriptors the next time a client asks - * for them. + * This will force a rebuild of the descriptors the next time a client asks for them. *

* * @return an array of JavaEditorTextHoverDescriptor @@ -448,9 +449,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Returns an array of all editors that have an unsaved content. If the - * identical content is presented in more than one editor, only one of those - * editor parts is part of the result. + * Returns an array of all editors that have an unsaved content. If the identical content is presented in more than one editor, + * only one of those editor parts is part of the result. * * @return an array of all dirty editor parts. */ @@ -504,9 +504,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Returns the standard display to be used. The method first checks, if the - * thread calling this method has an associated display. If so, this display - * is returned. Otherwise the method returns the default display. + * Returns the standard display to be used. The method first checks, if the thread calling this method has an associated display. + * If so, this display is returned. Otherwise the method returns the default display. */ public static Display getStandardDisplay() { Display display = Display.getCurrent(); @@ -561,13 +560,11 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } public static void log(Throwable e) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, - "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$ + log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$ } public static void logErrorMessage(String message) { - log(new Status(IStatus.ERROR, getPluginId(), - IJavaStatusConstants.INTERNAL_ERROR, message, null)); + log(new Status(IStatus.ERROR, getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, message, null)); } private static void setJVM() { @@ -613,10 +610,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements * @return */ public IdentifierIndexManager getIndexManager(IProject iProject) { - String indexFilename = iProject.getLocation() + File.separator - + "project.index"; - IdentifierIndexManager indexManager = (IdentifierIndexManager) fIndexManagerMap - .get(indexFilename); + String indexFilename = iProject.getLocation() + File.separator + "project.index"; + IdentifierIndexManager indexManager = (IdentifierIndexManager) fIndexManagerMap.get(indexFilename); if (indexManager == null) { indexManager = new IdentifierIndexManager(indexFilename); fIndexManagerMap.put(indexFilename, indexManager); @@ -639,8 +634,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Returns the mockup preference store for firing events and registering - * listeners on project setting changes. Temporary solution. + * Returns the mockup preference store for firing events and registering listeners on project setting changes. Temporary solution. */ public MockupPreferenceStore getMockupPreferenceStore() { if (fMockupPreferenceStore == null) @@ -662,8 +656,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // } public synchronized JavaTextTools getJavaTextTools() { if (fJavaTextTools == null) - fJavaTextTools = new JavaTextTools(getPreferenceStore(), JavaCore - .getPlugin().getPluginPreferences()); + fJavaTextTools = new JavaTextTools(getPreferenceStore(), JavaCore.getPlugin().getPluginPreferences()); return fJavaTextTools; } @@ -672,8 +665,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Returns the string from the plugin's resource bundle, or 'key' if not - * found. + * Returns the string from the plugin's resource bundle, or 'key' if not found. */ // public static String getResourceString(String key) { // ResourceBundle bundle = PHPeclipsePlugin.getDefault().getResourceBundle(); @@ -694,27 +686,25 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // store.setDefault(LOCALHOST_PREF, "http://localhost"); // store.setDefault(DOCUMENTROOT_PREF, // getWorkspace().getRoot().getLocation().toString()); -// store.setDefault(PHP_LOCALHOST_PREF, "http://localhost"); -// store.setDefault(PHP_DOCUMENTROOT_PREF, getWorkspace().getRoot() -// .getLocation().toString()); + // store.setDefault(PHP_LOCALHOST_PREF, "http://localhost"); + // store.setDefault(PHP_DOCUMENTROOT_PREF, getWorkspace().getRoot() + // .getLocation().toString()); // store.setDefault(SHOW_EXTERNAL_PREVIEW_PREF, "true"); store.setDefault(USE_EXTERNAL_BROWSER_PREF, "false"); store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true"); store.setDefault(PHP_OBFUSCATOR_DEFAULT, "c:\\temp"); -// store.setDefault(PHP_BOOKMARK_DEFAULT, ""); -// -// store.setDefault(PHP_AUTO_PREVIEW_DEFAULT, "true"); -// store.setDefault(PHP_BRING_TO_TOP_PREVIEW_DEFAULT, "true"); -// store.setDefault(PHP_SHOW_HTML_FILES_LOCAL, "true"); + // store.setDefault(PHP_BOOKMARK_DEFAULT, ""); + // + // store.setDefault(PHP_AUTO_PREVIEW_DEFAULT, "true"); + // store.setDefault(PHP_BRING_TO_TOP_PREVIEW_DEFAULT, "true"); + // store.setDefault(PHP_SHOW_HTML_FILES_LOCAL, "true"); String windowsSystem = Platform.getWS(); if (jvm == WINDOWS_9x) { - store.setDefault(EXTERNAL_BROWSER_PREF, - "command.com /c start iexplore {0}"); + store.setDefault(EXTERNAL_BROWSER_PREF, "command.com /c start iexplore {0}"); } else if (windowsSystem.equals(Platform.WS_WIN32)) { - store.setDefault(EXTERNAL_BROWSER_PREF, - "rundll32 url.dll,FileProtocolHandler {0}"); + store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}"); } else if (windowsSystem.equals(Platform.WS_CARBON)) { // TODO How do we start Safari on Mac OS X ? store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); @@ -753,42 +743,32 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // php syntax highlighting store.setDefault(PHP_USERDEF_XMLFILE, ""); //assume there is none chooA - PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, - PHPColorProvider.MULTI_LINE_COMMENT); - PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, - PHPColorProvider.SINGLE_LINE_COMMENT); + PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, PHPColorProvider.MULTI_LINE_COMMENT); + PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, PHPColorProvider.SINGLE_LINE_COMMENT); PreferenceConverter.setDefault(store, PHP_TAG, PHPColorProvider.TAG); - PreferenceConverter - .setDefault(store, PHP_KEYWORD, PHPColorProvider.KEYWORD); - PreferenceConverter.setDefault(store, PHP_VARIABLE, - PHPColorProvider.VARIABLE); - PreferenceConverter.setDefault(store, PHP_FUNCTIONNAME, - PHPColorProvider.FUNCTION_NAME); - PreferenceConverter.setDefault(store, PHP_CONSTANT, - PHPColorProvider.CONSTANT); + PreferenceConverter.setDefault(store, PHP_KEYWORD, PHPColorProvider.KEYWORD); + PreferenceConverter.setDefault(store, PHP_VARIABLE, PHPColorProvider.VARIABLE); + PreferenceConverter.setDefault(store, PHP_FUNCTIONNAME, PHPColorProvider.FUNCTION_NAME); + PreferenceConverter.setDefault(store, PHP_CONSTANT, PHPColorProvider.CONSTANT); PreferenceConverter.setDefault(store, PHP_TYPE, PHPColorProvider.TYPE); PreferenceConverter.setDefault(store, PHP_STRING, PHPColorProvider.STRING); - PreferenceConverter - .setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT); - PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, - PHPColorProvider.PHPDOC_KEYWORD); - PreferenceConverter.setDefault(store, PHPDOC_TAG, - PHPColorProvider.PHPDOC_TAG); - PreferenceConverter.setDefault(store, PHPDOC_LINK, - PHPColorProvider.PHPDOC_LINK); - PreferenceConverter.setDefault(store, PHPDOC_DEFAULT, - PHPColorProvider.PHPDOC_DEFAULT); - - PreferenceConverter.setDefault(store, EDITOR_PHP_KEYWORD_RETURN_COLOR, - new RGB(127, 0, 85)); + PreferenceConverter.setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT); + PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, PHPColorProvider.PHPDOC_KEYWORD); + PreferenceConverter.setDefault(store, PHPDOC_TAG, PHPColorProvider.PHPDOC_TAG); + PreferenceConverter.setDefault(store, PHPDOC_LINK, PHPColorProvider.PHPDOC_LINK); + PreferenceConverter.setDefault(store, PHPDOC_DEFAULT, PHPColorProvider.PHPDOC_DEFAULT); + + PreferenceConverter.setDefault(store, EDITOR_PHP_KEYWORD_RETURN_COLOR, new RGB(127, 0, 85)); store.setDefault(EDITOR_PHP_KEYWORD_RETURN_BOLD, true); store.setDefault(EDITOR_PHP_KEYWORD_RETURN_ITALIC, false); - PreferenceConverter.setDefault(store, EDITOR_PHP_OPERATOR_COLOR, new RGB(0, - 0, 0)); + PreferenceConverter.setDefault(store, EDITOR_PHP_OPERATOR_COLOR, new RGB(0, 0, 0)); store.setDefault(EDITOR_PHP_OPERATOR_BOLD, false); store.setDefault(EDITOR_PHP_OPERATOR_ITALIC, false); + PreferenceConverter.setDefault(store, EDITOR_PHP_BRACE_OPERATOR_COLOR, new RGB(0, 0, 0)); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_BOLD, false); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_ITALIC, false); // PreferenceConverter.setDefault( // store, // PHP_EDITOR_BACKGROUND, @@ -829,7 +809,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // store.setDefault(RESOURCE_BUNDLE_DE, "false"); // store.setDefault(RESOURCE_BUNDLE_FR, "false"); // store.setDefault(RESOURCE_BUNDLE_ES, "false"); -// TemplatePreferencePage.initDefaults(store); + // TemplatePreferencePage.initDefaults(store); //this will initialize the static fields in the syntaxrdr class new PHPSyntaxRdr(); JavaCore.initializeDefaultPluginPreferences(); @@ -852,8 +832,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Open a file in the Workbench that may or may not exist in the workspace. - * Must be run on the UI thread. + * Open a file in the Workbench that may or may not exist in the workspace. Must be run on the UI thread. * * @param filename * @throws CoreException @@ -899,25 +878,21 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Open a file in the Workbench that may or may not exist in the workspace. - * Must be run on the UI thread. + * Open a file in the Workbench that may or may not exist in the workspace. Must be run on the UI thread. * * @param filename * @param line * @throws CoreException */ - public void openFileAndGotoLine(String filename, int line) - throws CoreException { + public void openFileAndGotoLine(String filename, int line) throws CoreException { ITextEditor textEditor = openFileInTextEditor(filename); if (textEditor != null) { // If a line number was given, go to it if (line > 0) { try { line--; // document is 0 based - IDocument document = textEditor.getDocumentProvider().getDocument( - textEditor.getEditorInput()); - textEditor.selectAndReveal(document.getLineOffset(line), document - .getLineLength(line)); + IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); + textEditor.selectAndReveal(document.getLineOffset(line), document.getLineLength(line)); } catch (BadLocationException e) { // invalid text position -> do nothing } @@ -926,35 +901,30 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Open a file in the Workbench that may or may not exist in the workspace. - * Must be run on the UI thread. + * Open a file in the Workbench that may or may not exist in the workspace. Must be run on the UI thread. * * @param filename * @param offset * @throws CoreException */ - public void openFileAndGotoOffset(String filename, int offset, int length) - throws CoreException { + public void openFileAndGotoOffset(String filename, int offset, int length) throws CoreException { ITextEditor textEditor = openFileInTextEditor(filename); if (textEditor != null) { // If a line number was given, go to it if (offset >= 0) { - IDocument document = textEditor.getDocumentProvider().getDocument( - textEditor.getEditorInput()); + IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); textEditor.selectAndReveal(offset, length); } } } - public void openFileAndFindString(String filename, String findString) - throws CoreException { + public void openFileAndFindString(String filename, String findString) throws CoreException { ITextEditor textEditor = openFileInTextEditor(filename); if (textEditor != null) { // If a string was given, go to it if (findString != null) { try { - IDocument document = textEditor.getDocumentProvider().getDocument( - textEditor.getEditorInput()); + IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); int offset = document.search(0, findString, true, false, true); textEditor.selectAndReveal(offset, findString.length()); } catch (BadLocationException e) { @@ -976,8 +946,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // JavaCore.stop(this, context); plugin.savePluginPreferences(); IWorkspace workspace = ResourcesPlugin.getWorkspace(); - workspace.removeResourceChangeListener(JavaModelManager - .getJavaModelManager().deltaState); + workspace.removeResourceChangeListener(JavaModelManager.getJavaModelManager().deltaState); workspace.removeSaveParticipant(plugin); JavaModelManager.getJavaModelManager().shutdown(); @@ -1081,69 +1050,56 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements private void installPreferenceStoreBackwardsCompatibility() { /* - * Installs backwards compatibility: propagate the Java editor font from a - * pre-2.1 plug-in to the Platform UI's preference store to preserve the - * Java editor font from a pre-2.1 workspace. This is done only once. + * Installs backwards compatibility: propagate the Java editor font from a pre-2.1 plug-in to the Platform UI's preference store + * to preserve the Java editor font from a pre-2.1 workspace. This is done only once. */ String fontPropagatedKey = "fontPropagated"; //$NON-NLS-1$ - if (getPreferenceStore().contains(JFaceResources.TEXT_FONT) - && !getPreferenceStore().isDefault(JFaceResources.TEXT_FONT)) { + if (getPreferenceStore().contains(JFaceResources.TEXT_FONT) && !getPreferenceStore().isDefault(JFaceResources.TEXT_FONT)) { if (!getPreferenceStore().getBoolean(fontPropagatedKey)) - PreferenceConverter.setValue(PlatformUI.getWorkbench() - .getPreferenceStore(), PreferenceConstants.EDITOR_TEXT_FONT, - PreferenceConverter.getFontDataArray(getPreferenceStore(), - JFaceResources.TEXT_FONT)); + PreferenceConverter.setValue(PlatformUI.getWorkbench().getPreferenceStore(), PreferenceConstants.EDITOR_TEXT_FONT, + PreferenceConverter.getFontDataArray(getPreferenceStore(), JFaceResources.TEXT_FONT)); } getPreferenceStore().setValue(fontPropagatedKey, true); /* - * Backwards compatibility: set the Java editor font in this plug-in's - * preference store to let older versions access it. Since 2.1 the Java - * editor font is managed by the workbench font preference page. + * Backwards compatibility: set the Java editor font in this plug-in's preference store to let older versions access it. Since + * 2.1 the Java editor font is managed by the workbench font preference page. */ - PreferenceConverter.putValue(getPreferenceStore(), - JFaceResources.TEXT_FONT, JFaceResources.getFontRegistry().getFontData( - PreferenceConstants.EDITOR_TEXT_FONT)); + PreferenceConverter.putValue(getPreferenceStore(), JFaceResources.TEXT_FONT, JFaceResources.getFontRegistry().getFontData( + PreferenceConstants.EDITOR_TEXT_FONT)); fFontPropertyChangeListener = new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (PreferenceConstants.EDITOR_TEXT_FONT.equals(event.getProperty())) - PreferenceConverter.putValue(getPreferenceStore(), - JFaceResources.TEXT_FONT, JFaceResources.getFontRegistry() - .getFontData(PreferenceConstants.EDITOR_TEXT_FONT)); + PreferenceConverter.putValue(getPreferenceStore(), JFaceResources.TEXT_FONT, JFaceResources.getFontRegistry() + .getFontData(PreferenceConstants.EDITOR_TEXT_FONT)); } }; JFaceResources.getFontRegistry().addListener(fFontPropertyChangeListener); /* - * Backwards compatibility: propagate the Java editor tab width from a - * pre-3.0 plug-in to the new preference key. This is done only once. + * Backwards compatibility: propagate the Java editor tab width from a pre-3.0 plug-in to the new preference key. This is done + * only once. */ final String oldTabWidthKey = PreferenceConstants.EDITOR_TAB_WIDTH; final String newTabWidthKey = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH; String tabWidthPropagatedKey = "tabWidthPropagated"; //$NON-NLS-1$ - if (getPreferenceStore().contains(oldTabWidthKey) - && !getPreferenceStore().isDefault(oldTabWidthKey)) { + if (getPreferenceStore().contains(oldTabWidthKey) && !getPreferenceStore().isDefault(oldTabWidthKey)) { if (!getPreferenceStore().getBoolean(tabWidthPropagatedKey)) - getPreferenceStore().setValue(newTabWidthKey, - getPreferenceStore().getInt(oldTabWidthKey)); + getPreferenceStore().setValue(newTabWidthKey, getPreferenceStore().getInt(oldTabWidthKey)); } getPreferenceStore().setValue(tabWidthPropagatedKey, true); /* - * Backwards compatibility: set the Java editor tab width in this plug-in's - * preference store with the old key to let older versions access it. Since - * 3.0 the tab width is managed by the extended texteditor and uses a new - * key. + * Backwards compatibility: set the Java editor tab width in this plug-in's preference store with the old key to let older + * versions access it. Since 3.0 the tab width is managed by the extended texteditor and uses a new key. */ - getPreferenceStore().putValue(oldTabWidthKey, - getPreferenceStore().getString(newTabWidthKey)); + getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); fPropertyChangeListener = new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (newTabWidthKey.equals(event.getProperty())) - getPreferenceStore().putValue(oldTabWidthKey, - getPreferenceStore().getString(newTabWidthKey)); + getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); } }; getPreferenceStore().addPropertyChangeListener(fPropertyChangeListener); @@ -1160,8 +1116,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements * Uninstalls backwards compatibility for the preference store. */ private void uninstallPreferenceStoreBackwardsCompatibility() { - JFaceResources.getFontRegistry() - .removeListener(fFontPropertyChangeListener); + JFaceResources.getFontRegistry().removeListener(fFontPropertyChangeListener); getPreferenceStore().removePropertyChangeListener(fPropertyChangeListener); } @@ -1170,7 +1125,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements */ public void start(BundleContext context) throws Exception { super.start(context); - + // JavaCore.start(this, context); final JavaModelManager manager = JavaModelManager.getJavaModelManager(); try { @@ -1185,46 +1140,41 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements // manager.loadVariablesAndContainers(); final IWorkspace workspace = ResourcesPlugin.getWorkspace(); - workspace.addResourceChangeListener( - manager.deltaState, - IResourceChangeEvent.PRE_BUILD - | IResourceChangeEvent.POST_BUILD - | IResourceChangeEvent.POST_CHANGE - | IResourceChangeEvent.PRE_DELETE - | IResourceChangeEvent.PRE_CLOSE); - -// startIndexing(); - ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); - - // process deltas since last activated in indexer thread so that indexes are up-to-date. - // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=38658 -// Job processSavedState = new Job(Util.bind("savedState.jobName")) { //$NON-NLS-1$ -// protected IStatus run(IProgressMonitor monitor) { -// try { -// // add save participant and process delta atomically -// // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59937 -// workspace.run( -// new IWorkspaceRunnable() { -// public void run(IProgressMonitor progress) throws CoreException { -// ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); -// if (savedState != null) { -// // the event type coming from the saved state is always POST_AUTO_BUILD -// // force it to be POST_CHANGE so that the delta processor can handle it -// manager.deltaState.getDeltaProcessor().overridenEventType = IResourceChangeEvent.POST_CHANGE; -// savedState.processResourceChangeEvents(manager.deltaState); -// } -// } -// }, -// monitor); -// } catch (CoreException e) { -// return e.getStatus(); -// } -// return Status.OK_STATUS; -// } -// }; -// processSavedState.setSystem(true); -// processSavedState.setPriority(Job.SHORT); // process asap -// processSavedState.schedule(); + workspace.addResourceChangeListener(manager.deltaState, IResourceChangeEvent.PRE_BUILD | IResourceChangeEvent.POST_BUILD + | IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE); + + // startIndexing(); + ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); + + // process deltas since last activated in indexer thread so that indexes are up-to-date. + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=38658 + // Job processSavedState = new Job(Util.bind("savedState.jobName")) { //$NON-NLS-1$ + // protected IStatus run(IProgressMonitor monitor) { + // try { + // // add save participant and process delta atomically + // // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59937 + // workspace.run( + // new IWorkspaceRunnable() { + // public void run(IProgressMonitor progress) throws CoreException { + // ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); + // if (savedState != null) { + // // the event type coming from the saved state is always POST_AUTO_BUILD + // // force it to be POST_CHANGE so that the delta processor can handle it + // manager.deltaState.getDeltaProcessor().overridenEventType = IResourceChangeEvent.POST_CHANGE; + // savedState.processResourceChangeEvents(manager.deltaState); + // } + // } + // }, + // monitor); + // } catch (CoreException e) { + // return e.getStatus(); + // } + // return Status.OK_STATUS; + // } + // }; + // processSavedState.setSystem(true); + // processSavedState.setPriority(Job.SHORT); // process asap + // processSavedState.schedule(); } catch (RuntimeException e) { manager.shutdown(); throw e; @@ -1360,11 +1310,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements public IPreferenceStore getCombinedPreferenceStore() { if (fCombinedPreferenceStore == null) { IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore(); - fCombinedPreferenceStore = new ChainedPreferenceStore( - new IPreferenceStore[] { - getPreferenceStore(), - new PreferencesAdapter(PHPeclipsePlugin.getDefault() - .getPluginPreferences()), generalTextStore }); + fCombinedPreferenceStore = new ChainedPreferenceStore(new IPreferenceStore[] { getPreferenceStore(), + new PreferencesAdapter(PHPeclipsePlugin.getDefault().getPluginPreferences()), generalTextStore }); } return fCombinedPreferenceStore; } @@ -1376,12 +1323,10 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements } /** - * Returns the registry of the extensions to the - * net.sourceforge.phpdt.ui.javaFoldingStructureProvider extension + * Returns the registry of the extensions to the net.sourceforge.phpdt.ui.javaFoldingStructureProvider extension * point. * - * @return the registry of contributed - * IJavaFoldingStructureProvider + * @return the registry of contributed IJavaFoldingStructureProvider * @since 3.0 */ public synchronized JavaFoldingStructureProviderRegistry getFoldingStructureProviderRegistry() { @@ -1393,177 +1338,160 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements /** * Runs the given action as an atomic Java model operation. *

- * After running a method that modifies java elements, registered listeners - * receive after-the-fact notification of what just transpired, in the form of - * a element changed event. This method allows clients to call a number of - * methods that modify java elements and only have element changed event - * notifications reported at the end of the entire batch. + * After running a method that modifies java elements, registered listeners receive after-the-fact notification of what just + * transpired, in the form of a element changed event. This method allows clients to call a number of methods that modify java + * elements and only have element changed event notifications reported at the end of the entire batch. *

*

- * If this method is called outside the dynamic scope of another such call, - * this method runs the action and then reports a single element changed event - * describing the net effect of all changes done to java elements by the - * action. + * If this method is called outside the dynamic scope of another such call, this method runs the action and then reports a single + * element changed event describing the net effect of all changes done to java elements by the action. *

*

- * If this method is called in the dynamic scope of another such call, this - * method simply runs the action. + * If this method is called in the dynamic scope of another such call, this method simply runs the action. *

* * @param action * the action to perform * @param monitor - * a progress monitor, or null if progress reporting - * and cancellation are not desired + * a progress monitor, or null if progress reporting and cancellation are not desired * @exception CoreException * if the operation failed. * @since 2.1 */ - public static void run(IWorkspaceRunnable action, IProgressMonitor monitor) - throws CoreException { + public static void run(IWorkspaceRunnable action, IProgressMonitor monitor) throws CoreException { run(action, ResourcesPlugin.getWorkspace().getRoot(), monitor); } /** * Runs the given action as an atomic Java model operation. *

- * After running a method that modifies java elements, registered listeners - * receive after-the-fact notification of what just transpired, in the form of - * a element changed event. This method allows clients to call a number of - * methods that modify java elements and only have element changed event - * notifications reported at the end of the entire batch. + * After running a method that modifies java elements, registered listeners receive after-the-fact notification of what just + * transpired, in the form of a element changed event. This method allows clients to call a number of methods that modify java + * elements and only have element changed event notifications reported at the end of the entire batch. *

*

- * If this method is called outside the dynamic scope of another such call, - * this method runs the action and then reports a single element changed event - * describing the net effect of all changes done to java elements by the - * action. + * If this method is called outside the dynamic scope of another such call, this method runs the action and then reports a single + * element changed event describing the net effect of all changes done to java elements by the action. *

*

- * If this method is called in the dynamic scope of another such call, this - * method simply runs the action. + * If this method is called in the dynamic scope of another such call, this method simply runs the action. *

*

- * The supplied scheduling rule is used to determine whether this operation - * can be run simultaneously with workspace changes in other threads. See - * IWorkspace.run(...) for more details. + * The supplied scheduling rule is used to determine whether this operation can be run simultaneously with workspace changes in + * other threads. See IWorkspace.run(...) for more details. *

* * @param action * the action to perform * @param rule - * the scheduling rule to use when running this operation, or - * null if there are no scheduling restrictions for - * this operation. + * the scheduling rule to use when running this operation, or null if there are no scheduling restrictions + * for this operation. * @param monitor - * a progress monitor, or null if progress reporting - * and cancellation are not desired + * a progress monitor, or null if progress reporting and cancellation are not desired * @exception CoreException * if the operation failed. * @since 3.0 */ - public static void run(IWorkspaceRunnable action, ISchedulingRule rule, - IProgressMonitor monitor) throws CoreException { + public static void run(IWorkspaceRunnable action, ISchedulingRule rule, IProgressMonitor monitor) throws CoreException { IWorkspace workspace = ResourcesPlugin.getWorkspace(); if (workspace.isTreeLocked()) { new BatchOperation(action).run(monitor); } else { // use IWorkspace.run(...) to ensure that a build will be done in // autobuild mode - workspace.run(new BatchOperation(action), rule, IWorkspace.AVOID_UPDATE, - monitor); + workspace.run(new BatchOperation(action), rule, IWorkspace.AVOID_UPDATE, monitor); } } - + /** - * Returns the template context type registry for the java plugin. - * - * @return the template context type registry for the java plugin - * @since 3.0 - */ - public ContextTypeRegistry getTemplateContextRegistry() { - if (fContextTypeRegistry == null) { - fContextTypeRegistry= new ContributionContextTypeRegistry(); - - fContextTypeRegistry.addContextType(new JavaContextType()); - fContextTypeRegistry.addContextType(new JavaDocContextType()); - fContextTypeRegistry.addContextType(new HTMLContextType()); - } - - return fContextTypeRegistry; - } - - /** - * Returns the template store for the java editor templates. - * - * @return the template store for the java editor templates - * @since 3.0 - */ - public TemplateStore getTemplateStore() { - if (fTemplateStore == null) { -// boolean alreadyMigrated= getPreferenceStore().getBoolean(TEMPLATES_MIGRATION_KEY); -// if (alreadyMigrated) - fTemplateStore= new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), TEMPLATES_KEY); -// else { -// fTemplateStore= new CompatibilityTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), TEMPLATES_KEY, Templates.getInstance()); -// getPreferenceStore().setValue(TEMPLATES_MIGRATION_KEY, true); -// } - - try { - fTemplateStore.load(); - } catch (IOException e) { - log(e); - } - } - - return fTemplateStore; - } - - /** - * Returns the template context type registry for the code generation - * templates. - * - * @return the template context type registry for the code generation - * templates - * @since 3.0 - */ - public ContextTypeRegistry getCodeTemplateContextRegistry() { - if (fCodeTemplateContextTypeRegistry == null) { - fCodeTemplateContextTypeRegistry= new ContributionContextTypeRegistry(); - - CodeTemplateContextType.registerContextTypes(fCodeTemplateContextTypeRegistry); - } - - return fCodeTemplateContextTypeRegistry; - } - - /** - * Returns the template store for the code generation templates. - * - * @return the template store for the code generation templates - * @since 3.0 - */ - public TemplateStore getCodeTemplateStore() { - if (fCodeTemplateStore == null) { -// boolean alreadyMigrated= getPreferenceStore().getBoolean(CODE_TEMPLATES_MIGRATION_KEY); -// if (alreadyMigrated) - fCodeTemplateStore= new ContributionTemplateStore(getCodeTemplateContextRegistry(), getPreferenceStore(), CODE_TEMPLATES_KEY); -// else { -// fCodeTemplateStore= new CompatibilityTemplateStore(getCodeTemplateContextRegistry(), getPreferenceStore(), CODE_TEMPLATES_KEY, CodeTemplates.getInstance()); -// getPreferenceStore().setValue(CODE_TEMPLATES_MIGRATION_KEY, true); -// } - - try { - fCodeTemplateStore.load(); - } catch (IOException e) { - log(e); - } - - // compatibility / bug fixing code for duplicated templates - // TODO remove for 3.0 -// CompatibilityTemplateStore.pruneDuplicates(fCodeTemplateStore, true); - } - - return fCodeTemplateStore; - } + * Returns the template context type registry for the java plugin. + * + * @return the template context type registry for the java plugin + * @since 3.0 + */ + public ContextTypeRegistry getTemplateContextRegistry() { + if (fContextTypeRegistry == null) { + fContextTypeRegistry = new ContributionContextTypeRegistry(); + + fContextTypeRegistry.addContextType(new JavaContextType()); + fContextTypeRegistry.addContextType(new JavaDocContextType()); + fContextTypeRegistry.addContextType(new HTMLContextType()); + } + + return fContextTypeRegistry; + } + + /** + * Returns the template store for the java editor templates. + * + * @return the template store for the java editor templates + * @since 3.0 + */ + public TemplateStore getTemplateStore() { + if (fTemplateStore == null) { + // boolean alreadyMigrated= getPreferenceStore().getBoolean(TEMPLATES_MIGRATION_KEY); + // if (alreadyMigrated) + fTemplateStore = new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), TEMPLATES_KEY); + // else { + // fTemplateStore= new CompatibilityTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), TEMPLATES_KEY, + // Templates.getInstance()); + // getPreferenceStore().setValue(TEMPLATES_MIGRATION_KEY, true); + // } + + try { + fTemplateStore.load(); + } catch (IOException e) { + log(e); + } + } + + return fTemplateStore; + } + + /** + * Returns the template context type registry for the code generation templates. + * + * @return the template context type registry for the code generation templates + * @since 3.0 + */ + public ContextTypeRegistry getCodeTemplateContextRegistry() { + if (fCodeTemplateContextTypeRegistry == null) { + fCodeTemplateContextTypeRegistry = new ContributionContextTypeRegistry(); + + CodeTemplateContextType.registerContextTypes(fCodeTemplateContextTypeRegistry); + } + + return fCodeTemplateContextTypeRegistry; + } + + /** + * Returns the template store for the code generation templates. + * + * @return the template store for the code generation templates + * @since 3.0 + */ + public TemplateStore getCodeTemplateStore() { + if (fCodeTemplateStore == null) { + // boolean alreadyMigrated= getPreferenceStore().getBoolean(CODE_TEMPLATES_MIGRATION_KEY); + // if (alreadyMigrated) + fCodeTemplateStore = new ContributionTemplateStore(getCodeTemplateContextRegistry(), getPreferenceStore(), CODE_TEMPLATES_KEY); + // else { + // fCodeTemplateStore= new CompatibilityTemplateStore(getCodeTemplateContextRegistry(), getPreferenceStore(), + // CODE_TEMPLATES_KEY, CodeTemplates.getInstance()); + // getPreferenceStore().setValue(CODE_TEMPLATES_MIGRATION_KEY, true); + // } + + try { + fCodeTemplateStore.load(); + } catch (IOException e) { + log(e); + } + + // compatibility / bug fixing code for duplicated templates + // TODO remove for 3.0 + // CompatibilityTemplateStore.pruneDuplicates(fCodeTemplateStore, true); + } + + return fCodeTemplateStore; + } } \ No newline at end of file diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCodeScanner.java index 7ff01e8..d3be107 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCodeScanner.java @@ -58,6 +58,7 @@ public class HTMLCodeScanner extends AbstractJavaScanner { IPreferenceConstants.PHP_CONSTANT, IPreferenceConstants.PHP_DEFAULT, IPreferenceConstants.PHP_OPERATOR, + IPreferenceConstants.PHP_BRACE_OPERATOR, IPreferenceConstants.PHP_KEYWORD_RETURN}; /* * @see AbstractJavaScanner#getTokenProperties() diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java index 7e5c2cb..23212ba 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCodeScanner.java @@ -45,18 +45,21 @@ public class PHPCodeScanner extends AbstractJavaScanner { protected class OperatorRule implements IRule { /** Java operators */ - private final char[] JAVA_OPERATORS= { ';', '(', ')', '{', '}', '.', '=', '/', '\\', '+', '-', '*', '[', ']', '<', '>', ':', '?', '!', ',', '|', '&', '^', '%', '~', '@'}; + private final char[] JAVA_OPERATORS= { ';', '(', ')', '.', '=', '/', '\\', '+', '-', '*', '[', ']', '<', '>', ':', '?', '!', ',', '|', '&', '^', '%', '~', '@'}; /** Token to return for this rule */ private final IToken fToken; - + /** Token to return for braces */ + private final IToken fTokenBraces; /** * Creates a new operator rule. * * @param token * Token to use for this rule */ - public OperatorRule(IToken token) { + public OperatorRule(IToken token, IToken tokenBraces) { fToken= token; + fTokenBraces= tokenBraces; + } /** @@ -81,10 +84,13 @@ public class PHPCodeScanner extends AbstractJavaScanner { public IToken evaluate(ICharacterScanner scanner) { int character= scanner.read(); + if (character=='{' || character=='}') { + return fTokenBraces; + } if (isOperator((char) character)) { int lastCharacter = character; character= scanner.read(); - if (!isOperator((char) character)) { + if (!isOperator((char) character)) { scanner.unread(); return fToken; } @@ -92,12 +98,11 @@ public class PHPCodeScanner extends AbstractJavaScanner { scanner.unread(); scanner.unread(); return Token.UNDEFINED; - } - if (lastCharacter=='?' && character=='>') { + } else if (lastCharacter=='?' && character=='>') { scanner.unread(); scanner.unread(); return Token.UNDEFINED; - } + } do { character= scanner.read(); } while (isOperator((char) character)); @@ -211,6 +216,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { IPreferenceConstants.PHP_CONSTANT, IPreferenceConstants.PHP_DEFAULT, IPreferenceConstants.PHP_OPERATOR, + IPreferenceConstants.PHP_BRACE_OPERATOR, IPreferenceConstants.PHP_KEYWORD_RETURN}; /** * Creates a PHP code scanner @@ -357,8 +363,7 @@ public class PHPCodeScanner extends AbstractJavaScanner { wordRule.addWord("return", token); // Add rule for operators and brackets (at the end !) - token= getToken(IPreferenceConstants.PHP_OPERATOR); - rules.add(new OperatorRule(token)); + rules.add(new OperatorRule(getToken(IPreferenceConstants.PHP_OPERATOR), getToken(IPreferenceConstants.PHP_BRACE_OPERATOR))); rules.add(wordRule); -- 1.7.1