Prepared better HEREDOC support; see comment for bug #1319276
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / PHPeclipsePlugin.java
index 1574650..622ca18 100644 (file)
@@ -124,8 +124,9 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
    * The id of the PHP plugin (value <code>"net.sourceforge.phpeclipse"</code>).
    */
   public static final String PLUGIN_ID = "net.sourceforge.phpeclipse"; //$NON-NLS-1$
+  public static final String EDITOR_ID = PHPeclipsePlugin.PLUGIN_ID+".PHPUnitEditor";
   public static final String ID_PERSPECTIVE = "net.sourceforge.phpeclipse.PHPPerspective"; //$NON-NLS-1$
-       
+
   IWorkspace w;
 
   /**
@@ -145,27 +146,27 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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";
@@ -208,28 +209,28 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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;
@@ -271,27 +272,27 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Property change listener on this plugin's preference store.
-   * 
+   *
    * @since 3.0
    */
   //  private IPropertyChangeListener fPropertyChangeListener;
   /**
    * The combined preference store.
-   * 
+   *
    * @since 3.0
    */
   private IPreferenceStore fCombinedPreferenceStore;
 
   /**
    * The extension point registry for the <code>net.sourceforge.phpdt.ui.javaFoldingStructureProvider</code> extension point.
-   * 
+   *
    * @since 3.0
    */
   private JavaFoldingStructureProviderRegistry fFoldingStructureProviderRegistry;
 
   /**
    * Mockup preference store for firing events and registering listeners on project setting changes. FIXME: Temporary solution.
-   * 
+   *
    * @since 3.0
    */
   private MockupPreferenceStore fMockupPreferenceStore;
@@ -327,7 +328,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
   //  }
   /**
    * Returns all Java editor text hovers contributed to the workbench.
-   * 
+   *
    * @return an array of JavaEditorTextHoverDescriptor
    * @since 2.1
    */
@@ -414,7 +415,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
    * <p>
    * This will force a rebuild of the descriptors the next time a client asks for them.
    * </p>
-   * 
+   *
    * @return an array of JavaEditorTextHoverDescriptor
    * @since 2.1
    */
@@ -452,7 +453,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
   /**
    * 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.
    */
   public static IEditorPart[] getDirtyEditors() {
@@ -560,14 +561,26 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
     getDefault().getLog().log(status);
   }
 
-  public static void log(Throwable e) {
-    log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "PHPeclipsePlugin.internalErrorOccurred", e)); //$NON-NLS-1$
+  public static void log(Throwable t) {
+         log(error(t));
+  }
+
+  public static void log(String message, Throwable t) {
+    log(error(message, t));
   }
 
   public static void logErrorMessage(String message) {
     log(new Status(IStatus.ERROR, getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, message, null));
   }
 
+  public static IStatus error(Throwable t) {
+         return error("PHPeclipsePlugin.internalErrorOccurred", t); //$NON-NLS-1$
+  }
+
+  public static IStatus error(String message, Throwable t) {
+         return new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, message, t);
+  }
+
   //  private static void setJVM() {
   //    String osName = System.getProperty("os.name");
   //    if (osName.startsWith("Mac OS")) {
@@ -605,7 +618,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Get the identifier index manager for the given project
-   * 
+   *
    * @param iProject
    *          the current project
    * @return
@@ -620,7 +633,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 //      e.printStackTrace();
 //    } catch (SQLException e) {
 //      e.printStackTrace();
-//    } 
+//    }
     IdentifierIndexManager indexManager = (IdentifierIndexManager) fIndexManagerMap.get(indexFilename);
     if (indexManager == null) {
       indexManager = new IdentifierIndexManager(indexFilename);
@@ -733,21 +746,21 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 //      store.setDefault(APACHE_RESTART_BACKGROUND, "true");
     }
 
-    store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true");
-    store.setDefault(PHP_OBFUSCATOR_DEFAULT, "c:\\temp");
-    if (operatingSystem.equals(Platform.OS_WIN32)) {
+//    store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true");
+//    store.setDefault(PHP_OBFUSCATOR_DEFAULT, "c:\\temp");
+//    if (operatingSystem.equals(Platform.OS_WIN32)) {
       //    store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}");
-    } else if (operatingSystem.equals(Platform.OS_MACOSX)) {
-      store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp");
+//    } else if (operatingSystem.equals(Platform.OS_MACOSX)) {
+//      store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp");
       // TODO How do we start Safari on Mac OS X ?
       //    store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}");
-    } else {
-      store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp");
+//    } else {
+//      store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp");
       //    store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}");
-    }
+//    }
+
+//    store.setDefault(PHP_EXTENSION_PREFS, "php,php3,php4,php5,phtml,inc,module,class");
 
-    store.setDefault(PHP_EXTENSION_PREFS, "php,php3,php4,php5,phtml,inc,module,class");
-    
     //    store.setDefault(PHP_PARSER_DEFAULT, PHP_EXTERNAL_PARSER);
     //    store.setDefault(PHP_INTERNAL_PARSER, "false");
     //    store.setDefault(PHP_EXTERNAL_PARSER, "true");
@@ -763,12 +776,13 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
     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_VARIABLE_DOLLAR, 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_DQ, PHPColorProvider.STRING_DQ);
-//    store.setDefault(PHP_STRING_BOLD_DQ, true); 
-//    PreferenceConverter.setDefault(store, PHP_STRING_SQ, PHPColorProvider.STRING_SQ); 
+//    store.setDefault(PHP_STRING_BOLD_DQ, true);
+//    PreferenceConverter.setDefault(store, PHP_STRING_SQ, PHPColorProvider.STRING_SQ);
     PreferenceConverter.setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT);
     PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, PHPColorProvider.PHPDOC_KEYWORD);
     PreferenceConverter.setDefault(store, PHPDOC_TAG, PHPColorProvider.PHPDOC_TAG);
@@ -850,7 +864,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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
    */
@@ -896,7 +910,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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
@@ -919,7 +933,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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
@@ -1315,9 +1329,9 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Returns a combined preference store, this store is read-only.
-   * 
+   *
    * @return the combined preference store
-   * 
+   *
    * @since 3.0
    */
   public IPreferenceStore getCombinedPreferenceStore() {
@@ -1340,7 +1354,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
   /**
    * Returns the registry of the extensions to the <code>net.sourceforge.phpdt.ui.javaFoldingStructureProvider</code> extension
    * point.
-   * 
+   *
    * @return the registry of contributed <code>IJavaFoldingStructureProvider</code>
    * @since 3.0
    */
@@ -1364,7 +1378,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
    * <p>
    * If this method is called in the dynamic scope of another such call, this method simply runs the action.
    * </p>
-   * 
+   *
    * @param action
    *          the action to perform
    * @param monitor
@@ -1395,7 +1409,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
    * The supplied scheduling rule is used to determine whether this operation can be run simultaneously with workspace changes in
    * other threads. See <code>IWorkspace.run(...)</code> for more details.
    * </p>
-   * 
+   *
    * @param action
    *          the action to perform
    * @param rule
@@ -1420,7 +1434,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Returns the template context type registry for the java plugin.
-   * 
+   *
    * @return the template context type registry for the java plugin
    * @since 3.0
    */
@@ -1438,7 +1452,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Returns the template store for the java editor templates.
-   * 
+   *
    * @return the template store for the java editor templates
    * @since 3.0
    */
@@ -1465,7 +1479,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * 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
    */
@@ -1481,7 +1495,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon
 
   /**
    * Returns the template store for the code generation templates.
-   * 
+   *
    * @return the template store for the code generation templates
    * @since 3.0
    */