Example #1
0
        internal static IProjectLauncher GetLauncher(IServiceProvider serviceProvider, IPythonProject project)
        {
            var launchProvider = serviceProvider.GetUIThread().Invoke <string>(() => project.GetProperty(PythonConstants.LaunchProvider));

            IPythonLauncherProvider defaultLaunchProvider = null;

            foreach (var launcher in serviceProvider.GetComponentModel().GetExtensions <IPythonLauncherProvider>())
            {
                if (launcher.Name == launchProvider)
                {
                    return(serviceProvider.GetUIThread().Invoke <IProjectLauncher>(() => launcher.CreateLauncher(project)));
                }

                if (launcher.Name == DefaultLauncherProvider.DefaultLauncherName)
                {
                    defaultLaunchProvider = launcher;
                }
            }

            // no launcher configured, use the default one.
            Debug.Assert(defaultLaunchProvider != null);
            return((defaultLaunchProvider != null) ?
                   serviceProvider.GetUIThread().Invoke <IProjectLauncher>(() => defaultLaunchProvider.CreateLauncher(project)) :
                   null);
        }
Example #2
0
 public LauncherInfo(PythonProjectNode project, IPythonLauncherProvider launcher)
 {
     Launcher        = launcher;
     LauncherOptions = launcher.GetLauncherOptions(project);
     OptionsControl  = LauncherOptions.Control;
     LauncherOptions.LoadSettings();
 }
Example #3
0
        public override IProjectLauncher GetLauncher()
        {
            var compModel      = PythonToolsPackage.ComponentModel;
            var launchers      = compModel.GetExtensions <IPythonLauncherProvider>();
            var launchProvider = GetProjectProperty(PythonConstants.LaunchProvider, false);

            IProjectLauncher        res = null;
            IPythonLauncherProvider defaultLaunchProvider = null;

            foreach (var launcher in launchers)
            {
                if (launcher.Name == launchProvider)
                {
                    res = launcher.CreateLauncher(this);
                    break;
                }
                else if (res == null && launcher.Name == DefaultLauncherProvider.DefaultLauncherDescription)
                {
                    defaultLaunchProvider = launcher;
                }
            }

            if (res == null)
            {
                // no launcher configured, use the default one.
                Debug.Assert(defaultLaunchProvider != null);
                res = defaultLaunchProvider.CreateLauncher(this);
            }

            return(res);
        }
 public LauncherInfo(PythonProjectNode project, IPythonLauncherProvider launcher) {
     Launcher = launcher;
     LauncherOptions = launcher.GetLauncherOptions(project);
     OptionsControl = LauncherOptions.Control;
     LauncherOptions.LoadSettings();
 }