@Override
  public void addListener(@NotNull CodeStyleSettingsServiceListener listener, @Nullable Disposable disposable) {
    FileTypeIndentOptionsProvider.EP_NAME.addExtensionPointListener(new ExtensionPointListener<>() {
      @Override
      public void extensionAdded(@NotNull FileTypeIndentOptionsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        listener.fileTypeIndentOptionsFactoryAdded(extension);
      }

      @Override
      public void extensionRemoved(@NotNull FileTypeIndentOptionsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        listener.fileTypeIndentOptionsFactoryRemoved(extension);
      }
    }, disposable);
    LanguageCodeStyleSettingsProvider.EP_NAME.addExtensionPointListener(new ExtensionPointListener<>() {
      @Override
      public void extensionAdded(@NotNull LanguageCodeStyleSettingsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        LanguageCodeStyleSettingsProvider.registerSettingsPageProvider(extension);
        listener.languageCodeStyleProviderAdded(extension);
      }

      @Override
      public void extensionRemoved(@NotNull LanguageCodeStyleSettingsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        LanguageCodeStyleSettingsProvider.unregisterSettingsPageProvider(extension);
        listener.languageCodeStyleProviderRemoved(extension);
      }
    }, disposable);
    CodeStyleSettingsProvider.EXTENSION_POINT_NAME.addExtensionPointListener(new ExtensionPointListener<>() {
      @Override
      public void extensionAdded(@NotNull CodeStyleSettingsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        listener.customCodeStyleSettingsFactoryAdded(extension);
      }

      @Override
      public void extensionRemoved(@NotNull CodeStyleSettingsProvider extension, @NotNull PluginDescriptor pluginDescriptor) {
        listener.customCodeStyleSettingsFactoryRemoved(extension);
      }
    }, disposable);
  }
@Override
  public void addListener(@NotNull CodeStyleSettingsServiceListener listener, @Nullable Disposable disposable)