원클릭으로
registry
Guidelines for using the IntelliJ Registry API. Use when working with registry keys or feature flags.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Guidelines for using the IntelliJ Registry API. Use when working with registry keys or feature flags.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Pluginize a Product DSL module set by hand-writing a wrapper plugin module next to its feature modules. Use when promoting modules out of an aggregate module set (e.g. `essential`, `ide.common`) into a bundled plugin so products can include or omit them through normal plugin wiring, when updating bundled plugin registration for such a wrapper, or when fixing tests whose plugin loading logs show a missing wrapper plugin for a former module set.
Pluginize a Product DSL module set by hand-writing a wrapper plugin module next to its feature modules. Use when promoting modules out of an aggregate module set (e.g. `essential`, `ide.common`) into a bundled plugin so products can include or omit them through normal plugin wiring, when updating bundled plugin registration for such a wrapper, or when fixing tests whose plugin loading logs show a missing wrapper plugin for a former module set.
Extract an optional dependency from a plugin module into a new content module. Use when making a library dependency optional by separating integration code into its own module.
Extract an optional dependency from a plugin module into a new content module. Use when making a library dependency optional by separating integration code into its own module.
How to manage module dependencies in IntelliJ codebase. Use when adding or modifying module dependencies in iml files.
Guidelines for structuring and developing IntelliJ remote development modules. Use when working on Remote Development features.
| name | registry |
| description | Guidelines for using the IntelliJ Registry API. Use when working with registry keys or feature flags. |
Guidelines for using the IntelliJ Registry API.
plugin.xml or registry.propertiesAlways prefer declaring in plugin.xml (not registry.properties):
<registryKey key="my.feature.enabled"
defaultValue="true"
description="Enables my feature"
restartRequired="false"/>
To override in a dependent plugin:
<registryKey key="my.feature.enabled"
defaultValue="false"
description="Enables my feature"
restartRequired="false"
overrides="true"/>
In suspending code:
val isEnabled = RegistryManager.getInstanceAsync().get("my.key")
In blocking code:
val isEnabled = RegistryManager.getInstance().get("my.key")
Access via Registry.get() or Registry.is() is effectively deprecated, since it might cause problems during early IDE startup.
Always prefer the RegistryManager when possible.
When code may run before COMPONENTS_LOADED state (e.g., during EULA dialog, splash screen),
you MUST use Registry.is(key, defaultValue) with an explicit default:
// Required for early startup code
Registry.`is`("my.key", false) // default must match registry.properties
How to find the default value:
community/platform/util/resources/misc/registry.properties<registryKey> declaration in plugin.xmlWhy: Registry.is(key) without default throws an exception if called before
LoadingState.COMPONENTS_LOADED. The safe overload returns the provided default
when Registry is not yet initialized.
For testing or run configurations:
-Dmy.registry.key=value
Use @RegistryKey annotation instead of Registry.get().setValue():
@Test
@RegistryKey(key = "my.registry.key", value = "true")
fun testWithRegistryEnabled() { ... }
See writing-tests.md for more test patterns.