diff --git a/toolchains/arduino/org.eclipse.cdt.arduino.core/src/org/eclipse/cdt/arduino/core/internal/launch/ArduinoLaunchConfigurationProvider.java b/toolchains/arduino/org.eclipse.cdt.arduino.core/src/org/eclipse/cdt/arduino/core/internal/launch/ArduinoLaunchConfigurationProvider.java index a8c3393405d..cf14117a846 100644 --- a/toolchains/arduino/org.eclipse.cdt.arduino.core/src/org/eclipse/cdt/arduino/core/internal/launch/ArduinoLaunchConfigurationProvider.java +++ b/toolchains/arduino/org.eclipse.cdt.arduino.core/src/org/eclipse/cdt/arduino/core/internal/launch/ArduinoLaunchConfigurationProvider.java @@ -14,20 +14,19 @@ import org.eclipse.cdt.arduino.core.internal.ArduinoProjectNature; import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.launchbar.core.ILaunchDescriptor; -import org.eclipse.launchbar.core.ProjectPerTypeLaunchConfigProvider; +import org.eclipse.launchbar.core.ProjectPerTargetLaunchConfigProvider; import org.eclipse.remote.core.IRemoteConnection; -public class ArduinoLaunchConfigurationProvider extends ProjectPerTypeLaunchConfigProvider { +public class ArduinoLaunchConfigurationProvider extends ProjectPerTargetLaunchConfigProvider { @Override - protected String getLaunchConfigurationTypeId() { - return ArduinoLaunchConfigurationDelegate.TYPE_ID; - } - - @Override - protected String getRemoteConnectionTypeId() { - return ArduinoRemoteConnection.TYPE_ID; + public ILaunchConfigurationType getLaunchConfigurationType(ILaunchDescriptor descriptor, IRemoteConnection target) + throws CoreException { + return DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType( + ArduinoLaunchConfigurationDelegate.TYPE_ID); } @Override @@ -36,6 +35,10 @@ public class ArduinoLaunchConfigurationProvider extends ProjectPerTypeLaunchConf return false; } + if (!target.getConnectionType().getId().equals(ArduinoRemoteConnection.TYPE_ID)) { + return false; + } + // must have the arduino nature IProject project = descriptor.getAdapter(IProject.class); return ArduinoProjectNature.hasNature(project);