From d1ee8fef17d7b8ebf21aa3a1207112b0de921d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Tue, 18 Jun 2019 21:27:19 +0200 Subject: [PATCH] IDEA-216532 Theme metadata: new property "since" GitOrigin-RevId: 41f5e0dfb1212e8978db24cde3aad422c63308d8 --- .../src/com/intellij/ide/ui/UIThemeMetadata.java | 13 +++++++++++++ .../resources/schemes/themeMetadata.schema.json | 9 ++++++++- .../src/themes/ThemeJsonCompletionContributor.java | 7 ++++--- .../src/themes/ThemeJsonDocumentationProvider.java | 5 +++++ 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/UIThemeMetadata.java b/platform/platform-impl/src/com/intellij/ide/ui/UIThemeMetadata.java index b89fd2466729..09e2089215a4 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/UIThemeMetadata.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/UIThemeMetadata.java @@ -31,6 +31,8 @@ public class UIThemeMetadata { private boolean deprecated; + private String since; + public boolean isDeprecated() { return deprecated; } @@ -49,6 +51,11 @@ public class UIThemeMetadata { return source; } + @Nullable + public String getSince() { + return since; + } + @SuppressWarnings("unused") private void setKey(String key) { this.key = key; @@ -69,6 +76,11 @@ public class UIThemeMetadata { this.source = source; } + @SuppressWarnings("unused") + public void setSince(String since) { + this.since = since; + } + @Override public String toString() { return "UIKeyMetadata{" + @@ -76,6 +88,7 @@ public class UIThemeMetadata { ", description='" + description + '\'' + ", source='" + source + '\'' + ", deprecated=" + deprecated + + ", since='" + since + '\'' + '}'; } } diff --git a/plugins/devkit/devkit-core/resources/schemes/themeMetadata.schema.json b/plugins/devkit/devkit-core/resources/schemes/themeMetadata.schema.json index dc52ae534558..a2a8772563a6 100644 --- a/plugins/devkit/devkit-core/resources/schemes/themeMetadata.schema.json +++ b/plugins/devkit/devkit-core/resources/schemes/themeMetadata.schema.json @@ -1,5 +1,5 @@ { - "version": "0.1", + "version": "0.2", "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ @@ -46,6 +46,13 @@ "type": "boolean", "description": "Whether this key is deprecated. Note replacement (if any) in description.", "default": false + }, + "since": { + "type": "string", + "description": "Version in which key was introduced.", + "examples": [ + "2019.2" + ] } }, "required": [ diff --git a/plugins/devkit/devkit-core/src/themes/ThemeJsonCompletionContributor.java b/plugins/devkit/devkit-core/src/themes/ThemeJsonCompletionContributor.java index bfc8ac03cb0d..f5bf61e93592 100644 --- a/plugins/devkit/devkit-core/src/themes/ThemeJsonCompletionContributor.java +++ b/plugins/devkit/devkit-core/src/themes/ThemeJsonCompletionContributor.java @@ -103,13 +103,14 @@ public class ThemeJsonCompletionContributor extends CompletionContributor { final String description = uiKeyMetadata.getDescription(); final boolean deprecated = uiKeyMetadata.isDeprecated(); final String source = uiKeyMetadata.getSource(); - final String tailText = (StringUtil.isEmpty(description) ? "" : " (" + description + ")") + - (StringUtil.isEmpty(source) ? "" : " in " + source); + final String since = uiKeyMetadata.getSince(); final LookupElementBuilder builder = LookupElementBuilder.create(completionKey) .withPresentableText(key) .withStrikeoutness(deprecated) - .withTailText(tailText, true) + .appendTailText(StringUtil.isEmpty(since) ? "" : " [" + since + "]", true) + .appendTailText(StringUtil.isEmpty(description) ? "" : " (" + description + ")", true) + .appendTailText(StringUtil.isEmpty(source) ? "" : " in " + source, true) .withTypeText("[" + ObjectUtils.chooseNotNull(themeMetadata.getName(), themeMetadata.getPluginId()) + "]") .withInsertHandler(shouldSurroundWithQuotes ? MyInsertHandler.SURROUND_WITH_QUOTES : MyInsertHandler.INSTANCE); diff --git a/plugins/devkit/devkit-core/src/themes/ThemeJsonDocumentationProvider.java b/plugins/devkit/devkit-core/src/themes/ThemeJsonDocumentationProvider.java index e9338ad8956d..522f967c88c9 100644 --- a/plugins/devkit/devkit-core/src/themes/ThemeJsonDocumentationProvider.java +++ b/plugins/devkit/devkit-core/src/themes/ThemeJsonDocumentationProvider.java @@ -65,6 +65,11 @@ public class ThemeJsonDocumentationProvider extends AbstractDocumentationProvide }); } + final String since = uiKeyMetadata.getSince(); + if (since != null) { + appendSection(sb, "Since", since); + } + sb.append(DocumentationMarkup.SECTIONS_END); return sb.toString(); }