jetbrains/intellij-community · Archived

registry

Use the IntelliJ Registry API for registry keys and feature flags.

First seen Jul 30, 2026

Installation

$ npx skills add jetbrains/intellij-community --skill registry

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jetbrains/intellij-community · top by installs.

npx skills add jetbrains/intellij-community

Browse all from jetbrains/intellij-community

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 20.5K
License license
Default branch master
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,692 B
  • docs SUMMARY.md 82 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

<!-- Generated by community/.ai/render-guides.mjs; edit community/.agents/skills/registry/SKILL.md -->

Working with Registry

Guidelines for using the IntelliJ Registry API.

Documentation

  • Defining Registry Keys: [Registry.md](../../../../docs/IntelliJ-Platform/4_man/Registry.md) - How to declare keys in plugin.xml or registry.properties
  • Cloud Registry: [Cloud Registry and Notifications.md](../../../../docs/IntelliJ-Platform/4_man/Cloud%20Registry%20and%20Notifications.md) - Remote registry updates for JetBrains IDEs

Quick Reference

Defining a Registry Key

Always 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"/>

Accessing the Registry

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.

Early Startup: Registry.is() with Default Value

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:

  1. Search in community/platform/util/resources/misc/registry.properties
  2. Or check the <registryKey> declaration in plugin.xml

Why: 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.

Override via Command Line

For testing or run configurations:

-Dmy.registry.key=value

Registry in Tests

Use @RegistryKey annotation instead of Registry.get().setValue():

@Test
@RegistryKey(key = "my.registry.key", value = "true")
fun testWithRegistryEnabled() { ... }

See [writing-tests.md](../writing-tests/SKILL.md#registry-values-in-tests) for more test patterns.