diff --git a/plugins/grazie/resources/META-INF/plugin.xml b/plugins/grazie/resources/META-INF/plugin.xml index 4d12787077f4..4472bb660399 100644 --- a/plugins/grazie/resources/META-INF/plugin.xml +++ b/plugins/grazie/resources/META-INF/plugin.xml @@ -105,6 +105,8 @@ dynamic="true"> + { + private val EP: ExtensionPointName = ExtensionPointName("com.intellij.grazie.proofreadSettingsExtension") private val languages = GrazieLanguagesComponent(::download) private fun download(lang: Lang): Boolean { @@ -28,12 +31,17 @@ class ProofreadSettingsPanel : ConfigurableUi { return isSucceed } - override fun reset(settings: GrazieConfig) = languages.reset(settings.state) + override fun reset(settings: GrazieConfig) { + languages.reset(settings.state) + EP.extensionList.forEach { it.reset() } + } - override fun isModified(settings: GrazieConfig) = languages.isModified(settings.state) + override fun isModified(settings: GrazieConfig): Boolean = languages.isModified(settings.state) + || EP.extensionList.any { it.isModified } override fun apply(settings: GrazieConfig) { GrazieConfig.update { state -> + EP.extensionList.forEach { it.apply() } languages.apply(state) } } @@ -58,6 +66,8 @@ class ProofreadSettingsPanel : ConfigurableUi { } } } - add(link, CC()) + add(link, CC().wrap()) + + EP.extensionList.forEach { add(it.createComponent(), CC().wrap()) } } }