diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java index 64554799e38..e5e91863565 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.core.language.settings.providers; import java.util.ArrayList; import java.util.List; +import java.util.Set; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.model.ILanguage; @@ -140,6 +141,14 @@ public class LanguageSettingsManager { return LanguageSettingsExtensionManager.getProviderCopy(provider, deep); } + /** + * Returns list of provider id-s contributed by all extensions. + * @return the provider id-s. + */ + public static Set getExtensionProviderIds() { + return LanguageSettingsExtensionManager.getExtensionProviderIds(); + } + /** * Get language settings provider defined via extension point * {@code org.eclipse.cdt.core.LanguageSettingsProvider}. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index 21f7cbcebe9..81086f767c1 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -159,7 +159,8 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { private static boolean isReconfigured(ILanguageSettingsProvider provider) { if (provider instanceof ILanguageSettingsEditableProvider) { - return ! LanguageSettingsManager.isEqualExtensionProvider(provider, false); + return (LanguageSettingsManager.getExtensionProviderIds().contains(provider.getId()) && + ! LanguageSettingsManager.isEqualExtensionProvider(provider, false)); } return false; }