From 1d3391978a32f13e036fa5464ba8ace937f688ca Mon Sep 17 00:00:00 2001 From: Vera Petrenkova Date: Fri, 21 Jun 2024 09:27:40 +0200 Subject: [PATCH] IJPL-150222 Make function 'loadDescriptorsFromCustomPluginDir' suspending and move 'runBlocking' invocation GitOrigin-RevId: c0ad4ad027b985d2a69bfdec0fc7d72a382a8c24 --- .../src/com/intellij/ide/plugins/PluginDescriptorLoader.kt | 4 ++-- .../openapi/application/migrations/Localization242.kt | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/core-impl/src/com/intellij/ide/plugins/PluginDescriptorLoader.kt b/platform/core-impl/src/com/intellij/ide/plugins/PluginDescriptorLoader.kt index 8232cfc85a6a..1760437063b7 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/PluginDescriptorLoader.kt +++ b/platform/core-impl/src/com/intellij/ide/plugins/PluginDescriptorLoader.kt @@ -1129,14 +1129,14 @@ fun loadDescriptorsFromOtherIde( } } -fun loadDescriptorsFromCustomPluginDir(customPluginDir: Path, ignoreCompatibility: Boolean = false) : PluginLoadingResult{ +suspend fun loadDescriptorsFromCustomPluginDir(customPluginDir: Path, ignoreCompatibility: Boolean = false) : PluginLoadingResult{ return DescriptorListLoadingContext( isMissingIncludeIgnored = true, isMissingSubDescriptorIgnored = true ).use { context -> val result = PluginLoadingResult() result.addAll( - descriptors = toSequence(runBlocking { + descriptors = toSequence( coroutineScope { loadDescriptorsFromDir( dir = customPluginDir, context = context, diff --git a/platform/platform-impl/src/com/intellij/openapi/application/migrations/Localization242.kt b/platform/platform-impl/src/com/intellij/openapi/application/migrations/Localization242.kt index 3f6c041b5bbb..a87074f3dae5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/migrations/Localization242.kt +++ b/platform/platform-impl/src/com/intellij/openapi/application/migrations/Localization242.kt @@ -1,17 +1,20 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. + + package com.intellij.openapi.application.migrations import com.intellij.ide.plugins.loadDescriptorsFromCustomPluginDir import com.intellij.l10n.LocalizationUtil import com.intellij.openapi.util.registry.EarlyAccessRegistryManager import com.intellij.openapi.util.text.StringUtil +import kotlinx.coroutines.runBlocking import java.nio.file.Path internal fun enableL10nIfPluginInstalled(previousVersion: String?, oldPluginsDir: Path) { if (previousVersion == null || StringUtil.compareVersionNumbers(previousVersion, "2024.2") != -1) return - - val loadedDescriptors = loadDescriptorsFromCustomPluginDir(oldPluginsDir, true) + @Suppress("SSBasedInspection") + val loadedDescriptors = runBlocking { loadDescriptorsFromCustomPluginDir (oldPluginsDir, true) } val bundledL10nPluginsIds = LocalizationUtil.l10nPluginIdToLanguageTag.keys loadedDescriptors.enabledPluginsById.keys