X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index 911cceb..b4b4e07 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -14,28 +14,47 @@ package net.sourceforge.phpeclipse; import java.util.MissingResourceException; import java.util.ResourceBundle; +import net.sourceforge.phpeclipse.phpeditor.PHPDocumentProvider; +import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPluginDescriptor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.plugin.AbstractUIPlugin; /** * The main plugin class to be used in the desktop. */ -public class PHPeclipsePlugin extends AbstractUIPlugin { - public static final String LOCALHOST_PREF = "_localhost"; - public static final String DOCUMENTROOT_PREF = "_documentroot"; - public static final String USE_EXTERNAL_BROWSER_PREF = "_use_external_browser"; - public static final String EXTERNAL_BROWSER_PREF = "_external_browser"; - public static final String MYSQL_PREF = "_my_sql"; - public static final String APACHE_START_PREF = "_apache_start"; - public static final String APACHE_STOP_PREF = "_apache_stop"; - public static final String APACHE_RESTART_PREF = "_apache_restart"; +public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceConstants { +// public static final String LOCALHOST_PREF = "_localhost"; +// public static final String DOCUMENTROOT_PREF = "_documentroot"; +// public static final String USE_EXTERNAL_BROWSER_PREF = "_use_external_browser"; +// public static final String EXTERNAL_BROWSER_PREF = "_external_browser"; +// public static final String MYSQL_PREF = "_my_sql"; +// public static final String APACHE_START_PREF = "_apache_start"; +// public static final String APACHE_STOP_PREF = "_apache_stop"; +// public static final String APACHE_RESTART_PREF = "_apache_restart"; +// public static final String SHOW_OUTPUT_IN_CONSOLE = "_sho_output_in_console"; +// public static final String EXTERNAL_PARSER_PREF = "_external_parser"; + + /** + * The id of the PHP plugin (value "net.sourceforge.phpeclipse"). + */ + public static final String ID_PLUGIN= "net.sourceforge.phpeclipse"; //$NON-NLS-1$ + //The shared instance. private static PHPeclipsePlugin plugin; //Resource bundle. private ResourceBundle resourceBundle; + + private PHPDocumentProvider fCompilationUnitDocumentProvider; /** * The Java virtual machine that we are running on. */ @@ -75,6 +94,13 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { } } + // @TODO: refactor this into a better method name ! + public PHPDocumentProvider getCompilationUnitDocumentProvider() { + if (fCompilationUnitDocumentProvider == null) + fCompilationUnitDocumentProvider= new PHPDocumentProvider(); + return fCompilationUnitDocumentProvider; + } + public static void setJVM() { String osName = System.getProperty("os.name"); @@ -124,6 +150,52 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { public static IWorkspace getWorkspace() { return ResourcesPlugin.getWorkspace(); } + + public static IWorkbenchPage getActivePage() { + return getDefault().getActivePage(); + } + + public static IWorkbenchWindow getActiveWorkbenchWindow() { + return getDefault().getWorkbench().getActiveWorkbenchWindow(); + } + + public static Shell getActiveWorkbenchShell() { + return getActiveWorkbenchWindow().getShell(); + } + + public static String getPluginId() { + return getDefault().getDescriptor().getUniqueIdentifier(); + } + + public static void log(IStatus status) { + getDefault().getLog().log(status); + } + +// public static void logErrorMessage(String message) { +// log(new Status(IStatus.ERROR, getPluginId(), JavaStatusConstants.INTERNAL_ERROR, message, null)); +// } +// +// public static void logErrorStatus(String message, IStatus status) { +// if (status == null) { +// logErrorMessage(message); +// return; +// } +// MultiStatus multi= new MultiStatus(getPluginId(), JavaStatusConstants.INTERNAL_ERROR, message, null); +// multi.add(status); +// log(multi); +// } +// +// public static void log(Throwable e) { +// log(new Status(IStatus.ERROR, getPluginId(), JavaStatusConstants.INTERNAL_ERROR, JavaUIMessages.getString("JavaPlugin.internal_error"), e)); //$NON-NLS-1$ +// } + + public static boolean isDebug() { + return getDefault().isDebugging(); + } + + static IPath getInstallLocation() { + return new Path(getDefault().getDescriptor().getInstallURL().getFile()); + } /** * Returns the string from the plugin's resource bundle, @@ -150,6 +222,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { store.setDefault(LOCALHOST_PREF, "http://localhost"); store.setDefault(USE_EXTERNAL_BROWSER_PREF, "false"); + store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true"); if (jvm == WINDOWS_9x) { store.setDefault(EXTERNAL_BROWSER_PREF, "command.com /c start iexplore {0}"); } else if (jvm == WINDOWS_NT) { @@ -158,17 +231,30 @@ public class PHPeclipsePlugin extends AbstractUIPlugin { store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); } if ((jvm == WINDOWS_9x) || (jvm == WINDOWS_NT)) { + store.setDefault(EXTERNAL_PARSER_PREF, "c:\\apache\\php\\php -l -f {0}"); store.setDefault(DOCUMENTROOT_PREF, "c:\\eclipse\\workspace"); store.setDefault(MYSQL_PREF, "c:\\apache\\mysql\\bin\\mysqld.exe --standalone"); store.setDefault(APACHE_START_PREF, "c:\\apache\\apache.exe -c \"DocumentRoot \"{0}\"\""); store.setDefault(APACHE_STOP_PREF, "c:\\apache\\apache.exe -k shutdown"); store.setDefault(APACHE_RESTART_PREF, "c:\\apache\\apache.exe -k restart"); } else { + store.setDefault(EXTERNAL_PARSER_PREF, "/apache/php/php -l -f {0}"); store.setDefault(DOCUMENTROOT_PREF, "/eclipse/workspace"); store.setDefault(MYSQL_PREF, "/apache/mysql/bin/mysqld --standalone"); store.setDefault(APACHE_START_PREF, "/apache/apache -c \"DocumentRoot \"{0}\"\""); store.setDefault(APACHE_STOP_PREF, "/apache/apache.exe -k shutdown"); store.setDefault(APACHE_RESTART_PREF, "/apache/apache -k restart"); + } + + // php syntax highlighting + PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, PHPColorProvider.MULTI_LINE_COMMENT); + PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, PHPColorProvider.SINGLE_LINE_COMMENT); + 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_STRING, PHPColorProvider.STRING); + PreferenceConverter.setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT); + } } \ No newline at end of file