From a758bbd843e2ca5178ced0a855e2c0c6b18be079 Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Fri, 22 Jul 2022 08:45:01 +0200 Subject: [PATCH] settings_guide.md: add configurable examples --- topics/reference_guide/settings_guide.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/topics/reference_guide/settings_guide.md b/topics/reference_guide/settings_guide.md index 92166a567..6dc2da9fc 100644 --- a/topics/reference_guide/settings_guide.md +++ b/topics/reference_guide/settings_guide.md @@ -164,6 +164,12 @@ There are classes in the IntelliJ Platform specialized in particular types of Se These subtypes are based on `com.intellij.openapi.options.ConfigurableEP`. For example, Settings/Preferences | Editor | General | Appearance allows adding Settings via [`EditorSmartKeysConfigurableEP`](upsource:///platform/lang-impl/src/com/intellij/application/options/editor/EditorSmartKeysConfigurableEP.java) and `com.intellij.editorSmartKeysConfigurable` EP. +#### Examples + +Existing implementations of `Configurable` in the IntelliJ Platform that can serve as a reference are: +* [`ConsoleConfigurable`](upsource:///platform/lang-impl/src/com/intellij/execution/console/ConsoleConfigurable.java) (application configurable) +* [`AutoImportOptionsConfigurable`](upsource:///platform/lang-impl/src/com/intellij/application/options/editor/AutoImportOptionsConfigurable.kt) (project configurable) + ### The ConfigurableProvider Class The [`ConfigurableProvider`](upsource:///platform/ide-core/src/com/intellij/openapi/options/ConfigurableProvider.java) class only provides a `Configurable` implementation if its runtime conditions are met. @@ -173,3 +179,5 @@ In that case the IntelliJ Platform calls `ConfigurableProvider.createConfigurabl By choosing not to provide a `Configuration` implementation in some circumstances, the `ConfigurableProvider` opts out of the Settings display and modification process. The use of `ConfigurableProvider` as a basis for a Settings implementation is declared using [attributes](#table-of-attributes) in the EP declaration. + +**Example**: [`RunToolbarSettingsConfigurableProvider`](upsource:///platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarSettingsConfigurableProvider.kt)