Selaa lähdekoodia

fix compatibility issues with ProgramRunner

windchargerj 1 vuosi sitten
vanhempi
commit
ab8b50b6fa
1 muutettua tiedostoa jossa 7 lisäystä ja 15 poistoa
  1. 7 15
      src/main/kotlin/io/xmake/run/XMakeDefaultRunner.kt

+ 7 - 15
src/main/kotlin/io/xmake/run/XMakeDefaultRunner.kt

@@ -1,26 +1,18 @@
 package io.xmake.run
 
-import com.intellij.execution.ExecutionManager
-import com.intellij.execution.configurations.RunProfile
 import com.intellij.execution.configurations.RunProfileState
 import com.intellij.execution.configurations.RunnerSettings
-import com.intellij.execution.executors.DefaultRunExecutor
-import com.intellij.execution.runners.*
+import com.intellij.execution.runners.AsyncProgramRunner
+import com.intellij.execution.runners.ExecutionEnvironment
+import com.intellij.execution.runners.executeState
 import com.intellij.execution.ui.RunContentDescriptor
-import com.intellij.openapi.diagnostic.Logger
+import org.jetbrains.concurrency.Promise
 import org.jetbrains.concurrency.resolvedPromise
-import java.util.concurrent.ExecutionException
-import kotlin.jvm.Throws
 
-abstract class XMakeDefaultRunner : ProgramRunner<RunnerSettings> {
+abstract class XMakeDefaultRunner : AsyncProgramRunner<RunnerSettings>() {
 
-    @Throws(ExecutionException::class)
-    override fun execute(environment: ExecutionEnvironment) {
-        val state = environment.state ?: return
-        @Suppress("UnstableApiUsage")
-        ExecutionManager.getInstance(environment.project).startRunProfile(environment) {
-            resolvedPromise(doExecute(state, environment))
-        }
+    override fun execute(environment: ExecutionEnvironment, state: RunProfileState): Promise<RunContentDescriptor?> {
+        return resolvedPromise(doExecute(state, environment))
     }
     protected open fun doExecute(state: RunProfileState, environment: ExecutionEnvironment) : RunContentDescriptor? {
         return executeState(state, environment, this)