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()) }
}
}