interface="com.intellij.openapi.vcs.VcsConfigurableProvider"
dynamic="true"/>
+ <extensionPoint name="generalVcsSettingsExtension"
+ beanClass="com.intellij.openapi.vcs.configurable.GeneralVcSettingsProviderEP"
+ area="IDEA_PROJECT" dynamic="true">
+ <with attribute="instance" implements="com.intellij.openapi.options.UnnamedConfigurable"/>
+ </extensionPoint>
+
<!--<extensionPoint name="writingAccessProvider"-->
<!--interface="com.intellij.openapi.vfs.WritingAccessProvider"-->
<!--area="IDEA_PROJECT"/>-->
import com.intellij.ide.actions.RevealFileAction
import com.intellij.openapi.application.ApplicationNamesInfo
import com.intellij.openapi.application.runInEdt
-import com.intellij.openapi.options.BoundSearchableConfigurable
+import com.intellij.openapi.extensions.ExtensionPointName
+import com.intellij.openapi.options.BoundCompositeConfigurable
import com.intellij.openapi.options.Configurable
import com.intellij.openapi.options.Configurable.NoScroll
+import com.intellij.openapi.options.ConfigurableEP
+import com.intellij.openapi.options.UnnamedConfigurable
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.ComboBox
import com.intellij.openapi.ui.DialogPanel
import org.jetbrains.annotations.Nls
import javax.swing.JComponent
-class VcsGeneralSettingsConfigurable(val project: Project)
- : BoundSearchableConfigurable(message("configurable.VcsGeneralConfigurationConfigurable.display.name"),
- "project.propVCSSupport.Confirmation"), NoScroll, Configurable.WithEpDependencies {
- override fun getDependencies() = listOf(VcsEP.EP_NAME)
+internal class GeneralVcSettingsProviderEP(project: Project) : ConfigurableEP<UnnamedConfigurable>(project)
+
+private val VCS_SETTINGS_EP_NAME = ExtensionPointName<GeneralVcSettingsProviderEP>("com.intellij.generalVcsSettingsExtension")
+
+class VcsGeneralSettingsConfigurable(val project: Project) : BoundCompositeConfigurable<UnnamedConfigurable>(
+ message("configurable.VcsGeneralConfigurationConfigurable.display.name"),
+ "project.propVCSSupport.Confirmation"
+), NoScroll, Configurable.WithEpDependencies {
+
+ override fun createConfigurables(): List<UnnamedConfigurable> =
+ VCS_SETTINGS_EP_NAME.getExtensions(project).mapNotNull { it.createConfigurable() }
+
+ override fun getDependencies() = listOf(VcsEP.EP_NAME, VCS_SETTINGS_EP_NAME)
override fun createPanel(): DialogPanel {
val vcsManager = ProjectLevelVcsManagerEx.getInstanceEx(project)
label(message("settings.checkbox.rows"))
}
}
+
+ for (configurable in configurables) {
+ appendDslConfigurableRow(configurable)
+ }
}
}