From 35d906d82b9ec58ddd2fd0de691cc4201d9a97ad Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 2 Oct 2018 11:20:36 +0200 Subject: [PATCH] Add extension point for registry keys (IDEA-CR-36577, IDEA-177378) --- .../registry/RegistryExtensionCollector.kt | 27 +++++++++++++++++++ .../src/META-INF/PlatformExtensionPoints.xml | 2 ++ .../src/componentSets/Platform.xml | 4 +++ 3 files changed, 33 insertions(+) create mode 100644 platform/platform-impl/src/com/intellij/openapi/util/registry/RegistryExtensionCollector.kt diff --git a/platform/platform-impl/src/com/intellij/openapi/util/registry/RegistryExtensionCollector.kt b/platform/platform-impl/src/com/intellij/openapi/util/registry/RegistryExtensionCollector.kt new file mode 100644 index 000000000000..7319b10dcb24 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/openapi/util/registry/RegistryExtensionCollector.kt @@ -0,0 +1,27 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.openapi.util.registry + +import com.intellij.openapi.extensions.ExtensionPointName +import com.intellij.util.xmlb.annotations.Attribute + +/** + * @author yole + */ +class RegistryKeyBean { + @JvmField @Attribute("key") val key: String = "" + @JvmField @Attribute("description") val description: String = "" + @JvmField @Attribute("defaultValue") val defaultValue: String = "" + @JvmField @Attribute("restartRequired") val restartRequired: Boolean = false + + companion object { + val EP_NAME = ExtensionPointName.create("com.intellij.registryKey") + } +} + +class RegistryExtensionCollector { + init { + for (extension in RegistryKeyBean.EP_NAME.extensions) { + Registry.addKey(extension.key, extension.description, extension.defaultValue, extension.restartRequired) + } + } +} diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml index 5907e6f8de55..d9d3719af564 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml @@ -323,5 +323,7 @@ beanClass="com.intellij.lang.LanguageExtensionPoint"> + + diff --git a/platform/platform-resources/src/componentSets/Platform.xml b/platform/platform-resources/src/componentSets/Platform.xml index ad06eee5a402..9c000936f4fb 100644 --- a/platform/platform-resources/src/componentSets/Platform.xml +++ b/platform/platform-resources/src/componentSets/Platform.xml @@ -147,6 +147,10 @@ com.intellij.diagnostic.LowMemoryNotifier + + + com.intellij.openapi.util.registry.RegistryExtensionCollector +