diff --git a/python/python-exec-service/src/com/intellij/python/community/execService/impl/processLaunchers/targets.kt b/python/python-exec-service/src/com/intellij/python/community/execService/impl/processLaunchers/targets.kt index ca99a2596241..0e86b7d8a3d1 100644 --- a/python/python-exec-service/src/com/intellij/python/community/execService/impl/processLaunchers/targets.kt +++ b/python/python-exec-service/src/com/intellij/python/community/execService/impl/processLaunchers/targets.kt @@ -38,7 +38,10 @@ import kotlin.time.Duration.Companion.milliseconds private val logger = fileLogger() -internal suspend fun createProcessLauncherOnTarget(binOnTarget: BinOnTarget, launchRequest: LaunchRequest): Result = withContext(Dispatchers.IO) { +internal suspend fun createProcessLauncherOnTarget( + binOnTarget: BinOnTarget, + launchRequest: LaunchRequest, +): Result = withContext(Dispatchers.IO) { val target = binOnTarget.target val request = if (target != null) { @@ -115,7 +118,13 @@ internal suspend fun createProcessLauncherOnTarget(binOnTarget: BinOnTarget, lau commandLineBuilder.addEnvironmentVariable(k, v) } }.build() - return@withContext Result.success(ProcessLauncher(exeForError = Exe.OnTarget(exePath), args = args, processCommands = TargetProcessCommands(launchRequest.scopeToBind, exePath, targetEnv, cmdLine, downloadConfig))) + return@withContext Result.success(ProcessLauncher(exeForError = Exe.OnTarget(exePath), + args = args, + processCommands = TargetProcessCommands(launchRequest.scopeToBind, + exePath, + targetEnv, + cmdLine, + downloadConfig))) } private class TargetProcessCommands( @@ -134,16 +143,17 @@ private class TargetProcessCommands( private var process: Process? = null - override val processFunctions: ProcessFunctions = ProcessFunctions(waitForExit = { // `waitForExit` seems to be broken in Targets API, hence polling - while (process?.isAlive == true) { - delay(100.milliseconds) - } - downloadAfterExecution() - targetEnv.shutdown() - }, killProcess = { - process?.destroyForcibly() - targetEnv.shutdown() - }) + override val processFunctions: ProcessFunctions = + ProcessFunctions(waitForExit = { // `waitForExit` seems to be broken in Targets API, hence polling + while (process?.isAlive == true) { + delay(100.milliseconds) + } + downloadAfterExecution() + targetEnv.shutdown() + }, killProcess = { + process?.destroyForcibly() + targetEnv.shutdown() + }) private suspend fun downloadAfterExecution() { if (downloadConfig == null) return @@ -180,4 +190,5 @@ private class TargetProcessCommands( } } -private fun ExecutionException.asCantStart(): Result.Failure = Result.failure(ExecErrorReason.CantStart(null, localizedMessage)) +private fun ExecutionException.asCantStart(): Result.Failure = + Result.failure(ExecErrorReason.CantStart(null, localizedMessage)) diff --git a/python/src/com/jetbrains/python/sdk/skeletons/PyTargetsSkeletonGenerator.kt b/python/src/com/jetbrains/python/sdk/skeletons/PyTargetsSkeletonGenerator.kt index f3bf5cf453cc..d92bb4650cfa 100644 --- a/python/src/com/jetbrains/python/sdk/skeletons/PyTargetsSkeletonGenerator.kt +++ b/python/src/com/jetbrains/python/sdk/skeletons/PyTargetsSkeletonGenerator.kt @@ -33,8 +33,8 @@ import kotlin.io.path.div import kotlin.io.path.exists import kotlin.io.path.setPosixFilePermissions -class PyTargetsSkeletonGenerator(skeletonPath: String, pySdk: Sdk, currentFolder: String?, project: Project?) - : PySkeletonGenerator(skeletonPath, pySdk, currentFolder) { +class PyTargetsSkeletonGenerator(skeletonPath: String, pySdk: Sdk, currentFolder: String?, project: Project?) : + PySkeletonGenerator(skeletonPath, pySdk, currentFolder) { private val pyRequest: HelpersAwareTargetEnvironmentRequest = checkNotNull( // TODO Get rid of the dependency on the default project PythonInterpreterTargetEnvironmentFactory.findPythonTargetInterpreter(mySdk, project ?: ProjectManager.getInstance().defaultProject)