public void Validate(LaunchParameters launchParameters)
        {
            if (string.IsNullOrEmpty(launchParameters.FrameworkPath))
                throw new Exception("No clojure framework path defined in project properties.");

            if (string.IsNullOrEmpty(launchParameters.StartupFile))
                throw new Exception("No startup file defined in project properties.");

            if (launchParameters.StartupFileType == StartupFileType.Unknown)
                throw new Exception("Cannot start file " + launchParameters.StartupFile);
        }
 private static VsDebugTargetInfo CreateClojureLaunchInfo(LaunchParameters launchParameters)
 {
     var info = new VsDebugTargetInfo();
     info.cbSize = (uint) Marshal.SizeOf(info);
     info.dlo = DEBUG_LAUNCH_OPERATION.DLO_CreateProcess;
     info.bstrExe = launchParameters.RunnerPath;
     info.bstrCurDir = launchParameters.ApplicationPath;
     info.fSendStdoutToOutputWindow = 0;
     info.grfLaunch = (uint)__VSDBGLAUNCHFLAGS2.DBGLAUNCH_MergeEnv;
     info.bstrArg = "-i " + launchParameters.StartupFile;
     info.bstrRemoteMachine = launchParameters.RemoteDebugMachine;
     info.clsidCustom = launchParameters.DebugType;
     return info;
 }
 private static VsDebugTargetInfo CreateExecutableLaunchInfo(LaunchParameters launchParameters)
 {
     var info = new VsDebugTargetInfo();
     info.cbSize = (uint) Marshal.SizeOf(info);
     info.dlo = DEBUG_LAUNCH_OPERATION.DLO_CreateProcess;
     info.bstrExe = Path.Combine(launchParameters.ApplicationPath, launchParameters.StartupFile);
     info.bstrCurDir = launchParameters.ApplicationPath;
     info.fSendStdoutToOutputWindow = 0;
     info.grfLaunch = (uint) __VSDBGLAUNCHFLAGS2.DBGLAUNCH_MergeEnv;
     info.bstrArg = launchParameters.StartupArguments;
     info.bstrRemoteMachine = launchParameters.RemoteDebugMachine;
     info.bstrEnv = "clojure.load.path=" + launchParameters.FrameworkPath + ";" + launchParameters.ClojureLoadPath + "\0";
     info.clsidCustom = launchParameters.DebugType;
     return info;
 }