X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/PHPLaunchConfigurationDelegate.java b/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/PHPLaunchConfigurationDelegate.java index 881ad17..1a7973f 100644 --- a/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/PHPLaunchConfigurationDelegate.java +++ b/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/PHPLaunchConfigurationDelegate.java @@ -24,45 +24,58 @@ import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; import org.eclipse.debug.core.model.LaunchConfigurationDelegate; public class PHPLaunchConfigurationDelegate extends LaunchConfigurationDelegate { - + protected static final InterpreterRunner interpreterRunner; + protected static final DebuggerRunner debuggerRunner; - + static { - interpreterRunner = new InterpreterRunner(); + interpreterRunner = new InterpreterRunner(); debuggerRunner = new DebuggerRunner(); } - /** (non-Javadoc) - * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String) + /** + * (non-Javadoc) + * + * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, + * java.lang.String) */ - public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) - throws CoreException { + public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) + throws CoreException { PHPSourceLocator locator = new PHPSourceLocator(); locator.initializeDefaults(configuration); return new Launch(configuration, mode, locator); } - + /** - * @see ILaunchConfigurationDelegate#launch(ILaunchConfiguration, String, ILaunch, IProgressMonitor) + * @see ILaunchConfigurationDelegate#launch(ILaunchConfiguration, String, + * ILaunch, IProgressMonitor) */ - public void - launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { - if (PHPRuntime.getDefault().getSelectedInterpreter() == null) { - String pid = PHPLaunchingPlugin.PLUGIN_ID; - String msg = "You must define an interpreter before running PHP."; - IStatus s = new Status(IStatus.ERROR, pid, IStatus.OK, msg, null); - throw new CoreException(s); + public void launch(ILaunchConfiguration configuration, String mode, + ILaunch launch, IProgressMonitor monitor) throws CoreException { + //if (PHPRuntime.getDefault().getSelectedInterpreter() == null) { + if (configuration.getAttribute( + PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "") + .equals("")) { + if (!configuration.getAttribute( + PHPLaunchConfigurationAttribute.REMOTE_DEBUG, false) + && mode.equals("debug") || mode.equals("run")) { + String pid = PHPLaunchingPlugin.PLUGIN_ID; + String msg = "You must define an interpreter before running PHP."; + IStatus s = new Status(IStatus.ERROR, pid, IStatus.OK, msg, + null); + throw new CoreException(s); + } } - - InterpreterRunnerConfiguration conf = new - InterpreterRunnerConfiguration(configuration); + + InterpreterRunnerConfiguration conf = new InterpreterRunnerConfiguration( + configuration); ILaunchManager m = DebugPlugin.getDefault().getLaunchManager(); conf.setEnvironment(m.getEnvironment(configuration)); if (mode.equals("debug")) { debuggerRunner.run(conf, launch); } else { interpreterRunner.run(conf, launch); - } + } } }