public BallerinaDebugProcess(@NotNull XDebugSession session, @NotNull BallerinaWebSocketConnector connector, @Nullable ExecutionResult executionResult) { super(session); myConnector = connector; myProcessHandler = executionResult == null ? super.getProcessHandler() : executionResult.getProcessHandler(); myExecutionConsole = executionResult == null ? super.createConsole() : executionResult.getExecutionConsole(); myEditorsProvider = new BallerinaDebuggerEditorsProvider(); myBreakPointHandler = new BallerinaBreakpointHandler(); if (executionResult == null) { isRemoteDebugMode = true; } }
@Nullable @Override protected RunContentDescriptor doExecute(@NotNull RunProfileState state, @NotNull ExecutionEnvironment environment) throws ExecutionException { assert state instanceof GoTestRunningState; GoTestRunningState runningState = (GoTestRunningState)state; GoTestRunConfiguration runConfiguration = ObjectUtils.tryCast(environment.getRunProfile(), GoTestRunConfiguration.class); if (runConfiguration == null) { return null; } FileDocumentManager.getInstance().saveAllDocuments(); CoverageEnabledConfiguration coverageEnabledConfiguration = CoverageEnabledConfiguration.getOrCreate(runConfiguration); runningState.setCoverageFilePath(coverageEnabledConfiguration.getCoverageFilePath()); ExecutionResult executionResult = state.execute(environment.getExecutor(), this); if (executionResult == null) { return null; } CoverageHelper.attachToProcess(runConfiguration, executionResult.getProcessHandler(), environment.getRunnerSettings()); return new RunContentBuilder(executionResult, environment).showRunContent(environment.getContentToReuse()); } }
@Nullable @Override protected ProcessHandler doGetProcessHandler() { return myExecutionResult.getProcessHandler(); }
StopProcessAction.stopProcess(myExecutionResult.getProcessHandler());