From 8ec55d96fae0fa71acdf78953fdbb6218d6ce541 Mon Sep 17 00:00:00 2001 From: Ilia Epelbaum Date: Wed, 23 Apr 2025 19:05:09 +0000 Subject: [PATCH] DBE-23071 Add cache clearing for LanguageCodeStyleSettingsProvider Merge-request: IJ-MR-160932 Merged-by: Ilia Epelbaum GitOrigin-RevId: 9bdac9e6560debbe75f0567449b06c33e71b0dcf --- platform/lang-api/api-dump-unreviewed.txt | 1 + .../psi/codeStyle/LanguageCodeStyleSettingsProvider.java | 4 ++++ .../codeStyle/LanguageCodeStyleSettingsProviderService.java | 1 + 3 files changed, 6 insertions(+) diff --git a/platform/lang-api/api-dump-unreviewed.txt b/platform/lang-api/api-dump-unreviewed.txt index 28aa2218dc8f..2328a43fe049 100644 --- a/platform/lang-api/api-dump-unreviewed.txt +++ b/platform/lang-api/api-dump-unreviewed.txt @@ -4947,6 +4947,7 @@ a:com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider - com.intellij.psi.codeStyle.CodeStyleSettingsProvider - sf:EP_NAME:com.intellij.openapi.extensions.ExtensionPointName - ():V +- s:cleanSettingsPagesProvidersCache():V - createConfigurable(com.intellij.psi.codeStyle.CodeStyleSettings,com.intellij.psi.codeStyle.CodeStyleSettings):com.intellij.psi.codeStyle.CodeStyleConfigurable - createFileFromText(com.intellij.openapi.project.Project,java.lang.String):com.intellij.psi.PsiFile - p:customizeDefaults(com.intellij.psi.codeStyle.CommonCodeStyleSettings,com.intellij.psi.codeStyle.CommonCodeStyleSettings$IndentOptions):V diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProvider.java b/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProvider.java index 2160a6558e9c..f21cb3298d1e 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProvider.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProvider.java @@ -371,6 +371,10 @@ public abstract class LanguageCodeStyleSettingsProvider extends CodeStyleSetting return ourSettingsPagesProviders.updateAndGet(providers -> providers != null ? providers : calcSettingPagesProviders()); } + public static void cleanSettingsPagesProvidersCache() { + ourSettingsPagesProviders.set(null); + } + private static @NotNull Set calcSettingPagesProviders() { Set settingsPagesProviders = new HashSet<>(); for (LanguageCodeStyleSettingsProvider provider : getAllProviders()) { diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProviderService.java b/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProviderService.java index 89af1912e5c7..4564cab853dd 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProviderService.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/LanguageCodeStyleSettingsProviderService.java @@ -23,6 +23,7 @@ final class LanguageCodeStyleSettingsProviderService implements Disposable { public LanguageCodeStyleSettingsProviderService() { LanguageCodeStyleSettingsProvider.EP_NAME.addChangeListener(() -> { allProviders = null; + LanguageCodeStyleSettingsProvider.cleanSettingsPagesProvidersCache(); }, this); LanguageCodeStyleSettingsContributor.EP_NAME.addChangeListener(() -> {