diff --git a/python/pluginMinor/com/intellij/python/community/plugin/minor/facet/PyPluginSdkModuleConfigurable.kt b/python/pluginMinor/com/intellij/python/community/plugin/minor/facet/PyPluginSdkModuleConfigurable.kt index 909aa197a263..312cdb80bb99 100644 --- a/python/pluginMinor/com/intellij/python/community/plugin/minor/facet/PyPluginSdkModuleConfigurable.kt +++ b/python/pluginMinor/com/intellij/python/community/plugin/minor/facet/PyPluginSdkModuleConfigurable.kt @@ -12,48 +12,58 @@ import com.jetbrains.python.configuration.PyActiveSdkConfigurable import com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable import com.jetbrains.python.sdk.removeTransferredRoots import com.jetbrains.python.sdk.transferRoots +import org.jetbrains.annotations.ApiStatus internal class PyPluginSdkModuleConfigurable(project: Project?) : PyActiveSdkModuleConfigurable(project) { override fun createModuleConfigurable(module: Module): UnnamedConfigurable { return object : PyActiveSdkConfigurable(module) { override fun setSdk(item: Sdk?) { - val facetManager = FacetManager.getInstance(module) - val facet = facetManager.getFacetByType(MinorPythonFacet.ID) - if (facet == null) { - ApplicationManager.getApplication().runWriteAction { - addFacet(facetManager, item, module) - } - } - else { - setFacetSdk(facet, item, module) - } - + setSdkToFacet(item, module) } override fun getSdk(): Sdk? { - val facetManager = FacetManager.getInstance(module) - val facet = facetManager.getFacetByType(MinorPythonFacet.ID) - return facet?.configuration?.sdk + return getSdkFromFacet(module) } } } +} - private fun setFacetSdk(facet: MinorPythonFacet, - item: Sdk?, - module: Module) { - removeTransferredRoots(module, facet.configuration.sdk) - facet.configuration.sdk = item - transferRoots(module, item) - - FacetManager.getInstance(module).facetConfigurationChanged(facet) - PythonFacetUtil.updateLibrary(module, facet.configuration) +@ApiStatus.Internal +fun setSdkToFacet(item: Sdk?, module: Module) { + val facetManager = FacetManager.getInstance(module) + val facet = facetManager.getFacetByType(MinorPythonFacet.ID) + if (facet == null) { + ApplicationManager.getApplication().runWriteAction { + addFacet(facetManager, item, module) + } } - - private fun addFacet(facetManager: FacetManager, - sdk: Sdk?, - module: Module) { - val facet = facetManager.addFacet( - MinorPythonFacetType.getInstance(), "Python facet", null) - setFacetSdk(facet, sdk, module) + else { + setFacetSdk(facet, item, module) } -} \ No newline at end of file +} + +@ApiStatus.Internal +fun getSdkFromFacet(module: Module): Sdk? { + val facetManager = FacetManager.getInstance(module) + val facet = facetManager.getFacetByType(MinorPythonFacet.ID) + return facet?.configuration?.sdk +} + +private fun setFacetSdk(facet: MinorPythonFacet, + item: Sdk?, + module: Module) { + removeTransferredRoots(module, facet.configuration.sdk) + facet.configuration.sdk = item + transferRoots(module, item) + + FacetManager.getInstance(module).facetConfigurationChanged(facet) + PythonFacetUtil.updateLibrary(module, facet.configuration) +} + +private fun addFacet(facetManager: FacetManager, + sdk: Sdk?, + module: Module) { + val facet = facetManager.addFacet( + MinorPythonFacetType.getInstance(), "Python facet", null) + setFacetSdk(facet, sdk, module) +}