From 4016ee39b11c359e995b72bc9e2011fdc8ff3ab7 Mon Sep 17 00:00:00 2001 From: Egor Eliseev Date: Thu, 24 Oct 2024 19:24:06 +0000 Subject: [PATCH] PY-76806 Missing Docker container settings in Run/Debug configurations Add test Merge-request: IJ-MR-147678 Merged-by: Egor Eliseev (cherry picked from commit 3b4ae8c55909518b01312cf5ece964b44a2b6110) IJ-MR-147678 GitOrigin-RevId: 40c75203a5246704c32f06542fbb6418b902dbe9 --- .../python/run/PyRunConfigurationTargetOptions.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/python/src/com/jetbrains/python/run/PyRunConfigurationTargetOptions.kt b/python/src/com/jetbrains/python/run/PyRunConfigurationTargetOptions.kt index b21cbca50962..02fe808dd718 100644 --- a/python/src/com/jetbrains/python/run/PyRunConfigurationTargetOptions.kt +++ b/python/src/com/jetbrains/python/run/PyRunConfigurationTargetOptions.kt @@ -3,6 +3,8 @@ package com.jetbrains.python.run import com.intellij.execution.target.RunConfigurationTargetEnvironmentAdjuster import com.intellij.openapi.options.SettingsEditor +import com.intellij.openapi.projectRoots.Sdk +import org.jetbrains.annotations.TestOnly import java.util.* class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension { @@ -10,6 +12,10 @@ class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension { override fun accepts(configuration: AbstractPythonRunConfiguration>): PyRunConfigurationEditorFactory? { val sdk = configuration.sdk ?: return null + return acceptsForSdk(sdk) + } + + private fun acceptsForSdk(sdk: Sdk): PyRunConfigurationEditorFactory? { val adjuster = RunConfigurationTargetEnvironmentAdjuster.Factory.findTargetEnvironmentRequestAdjuster(sdk) ?: return null return if (adjuster.providesAdditionalRunConfigurationUI()) { factoriesCache.computeIfAbsent(adjuster) { RunConfigurationsTargetOptionsFactory(adjuster) } @@ -19,6 +25,9 @@ class PyRunConfigurationTargetOptions : PyRunConfigurationEditorExtension { } } + @TestOnly + fun accepts(sdk: Sdk): PyRunConfigurationEditorFactory? = acceptsForSdk(sdk) + private class RunConfigurationsTargetOptionsFactory(private val adjuster: RunConfigurationTargetEnvironmentAdjuster) : PyRunConfigurationEditorFactory { override fun createEditor(configuration: AbstractPythonRunConfiguration<*>): SettingsEditor> { val adjuster = RunConfigurationTargetEnvironmentAdjuster.Factory.findTargetEnvironmentRequestAdjuster(configuration.sdk!!)!!