void (@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); }