From 4d41a0c5b5c8a8cbb88b985db771e93fcd2af7e1 Mon Sep 17 00:00:00 2001 From: Vera Petrenkova Date: Tue, 13 Feb 2024 10:04:02 +0100 Subject: [PATCH] IDEA-341743 Refactor LocalizationUtil to a singleton object and make some function as Path extension function GitOrigin-RevId: 45cb00ee18919de78ce7b8417437377af7b81d90 --- .../ex/InspectionToolWrapper.java | 6 +-- .../src/com/intellij/DynamicBundle.java | 4 +- .../src/com/intellij/util/LocalizationUtil.kt | 46 +++++++++---------- .../impl/config/ResourceTextDescriptor.java | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolWrapper.java b/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolWrapper.java index 258548016441..f3afacd4a152 100644 --- a/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolWrapper.java +++ b/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolWrapper.java @@ -29,7 +29,7 @@ import java.util.Set; */ public abstract class InspectionToolWrapper { public static final InspectionToolWrapper[] EMPTY_ARRAY = new InspectionToolWrapper[0]; - public static final String INSPECTION_DESCRIPTIONS_FOLDER = "inspectionDescriptions"; + private static final String INSPECTION_DESCRIPTIONS_FOLDER = "inspectionDescriptions"; private static final Logger LOG = Logger.getInstance(InspectionToolWrapper.class); @@ -187,10 +187,10 @@ public abstract class InspectionToolWrapper paths = LocalizationUtil.Companion.getLocalizedPaths(bundlePath, locale); + List paths = LocalizationUtil.INSTANCE.getLocalizedPaths(bundlePath, locale); Map bundleOrderMap = new HashMap<>(); if (pluginClassLoader != null) { resolveBundleOrder(pluginClassLoader, true, bundlePath, paths, bundleOrderMap, bundleResolver, locale); @@ -97,7 +97,7 @@ public class DynamicBundle extends AbstractBundle { @ApiStatus.Internal private static List getBundlesFromLocalizationFolder(Path pathToBundle, ClassLoader loader, Locale locale) { - List paths = LocalizationUtil.Companion.getFolderLocalizedPaths(pathToBundle, locale); + List paths = LocalizationUtil.INSTANCE.getFolderLocalizedPaths(pathToBundle, locale); List resourceBundles = new ArrayList<>(); for (Path path : paths) { try { diff --git a/platform/core-api/src/com/intellij/util/LocalizationUtil.kt b/platform/core-api/src/com/intellij/util/LocalizationUtil.kt index 0dc0c2d21ab4..056d7674b4ed 100644 --- a/platform/core-api/src/com/intellij/util/LocalizationUtil.kt +++ b/platform/core-api/src/com/intellij/util/LocalizationUtil.kt @@ -13,24 +13,23 @@ import kotlin.io.path.nameWithoutExtension import kotlin.io.path.pathString @ApiStatus.Internal -class LocalizationUtil { - companion object { +object LocalizationUtil { private fun getPluginClassLoader(): ClassLoader? = DynamicBundle.findLanguageBundle()?.pluginDescriptor?.pluginClassLoader - private fun convertPathToLocalizationFolderUsage(path: Path, locale: Locale, withRegion: Boolean): Path { + private fun Path.convertToLocalizationFolderUsage(locale: Locale, withRegion: Boolean): Path { val localizationFolderName = "localization" var result = Path(localizationFolderName).resolve(locale.language) if (withRegion && locale.country.isNotEmpty()) { result = result.resolve(locale.country) } - result = result.resolve(path) + result = result.resolve(this) return result } - private fun convertPathToLocaleSuffixUsage(path: Path, locale: Locale?, withRegion: Boolean): Path { - if (locale == null) return path - val fileName = StringBuilder(path.nameWithoutExtension) - val extension = path.extension - val foldersPath = path.parent ?: Path("") + private fun Path.convertPathToLocaleSuffixUsage(locale: Locale?, withRegion: Boolean): Path { + if (locale == null) return this + val fileName = StringBuilder(this.nameWithoutExtension) + val extension = this.extension + val foldersPath = this.parent ?: Path("") val language = locale.language if (!language.isEmpty()) { fileName.append('_').append(language) @@ -61,20 +60,22 @@ class LocalizationUtil { @JvmOverloads fun getLocalizedPaths(path: Path, specialLocale: Locale? = null): List { val locale = specialLocale ?: getLocale() - val result = mutableListOf() - //localizations/zh/CN/inspectionDescriptions/name.html - result.add(convertPathToLocalizationFolderUsage(path, locale, true)) + val result = listOf( + //localizations/zh/CN/inspectionDescriptions/name.html + path.convertToLocalizationFolderUsage(locale, true), - //inspectionDescriptions/name_zh_CN.html - result.add(convertPathToLocaleSuffixUsage(path, locale, true)) + //inspectionDescriptions/name_zh_CN.html + path.convertPathToLocaleSuffixUsage(locale, true), - //localizations/zh/inspectionDescriptions/name.html - result.add(convertPathToLocalizationFolderUsage(path, locale, false)) + //localizations/zh/inspectionDescriptions/name.html + path.convertToLocalizationFolderUsage(locale, false), - //inspectionDescriptions/name_zh.html - result.add(convertPathToLocaleSuffixUsage(path, locale, false)) - //inspectionDescriptions/name.html - result.add(path) + //inspectionDescriptions/name_zh.html + path.convertPathToLocaleSuffixUsage(locale, false), + + //inspectionDescriptions/name.html + path + ) return result } @@ -83,11 +84,10 @@ class LocalizationUtil { val locale = specialLocale ?: getLocale() val result = mutableListOf() //localizations/zh/CN/inspectionDescriptions/name.html - result.add(convertPathToLocalizationFolderUsage(path, locale, true)) + result.add(path.convertToLocalizationFolderUsage(locale, true)) //localizations/zh/inspectionDescriptions/name.html - result.add(convertPathToLocalizationFolderUsage(path, locale, false)) + result.add(path.convertToLocalizationFolderUsage(locale, false)) return result } - } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/ResourceTextDescriptor.java b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/ResourceTextDescriptor.java index ce5da7d14af9..41d52dbbb935 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/ResourceTextDescriptor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/ResourceTextDescriptor.java @@ -38,7 +38,7 @@ final class ResourceTextDescriptor implements TextDescriptor { @Override public @NotNull String getText() throws IOException { - InputStream inputStream = LocalizationUtil.Companion.getResourceAsStream(myLoader, Path.of(myResourcePath)); + InputStream inputStream = LocalizationUtil.INSTANCE.getResourceAsStream(myLoader, Path.of(myResourcePath)); if (inputStream != null) { try (inputStream) { return ResourceUtil.loadText(inputStream); //NON-NLS