From 369f8f3eed1b0bad05457b0fa8a50a879fde3d9f Mon Sep 17 00:00:00 2001 From: Yaroslav Pankratyev Date: Mon, 15 Oct 2018 20:41:29 +0700 Subject: [PATCH] Support named colors in ThemeJsonCompletionContributor --- .../ThemeJsonCompletionContributor.java | 2 +- .../completion/UiDefaultsHardcodedKeys.java | 198 +++++++++++++++++- 2 files changed, 198 insertions(+), 2 deletions(-) diff --git a/plugins/devkit/devkit-core/src/completion/ThemeJsonCompletionContributor.java b/plugins/devkit/devkit-core/src/completion/ThemeJsonCompletionContributor.java index 4143e091e072..cb144facc4ff 100644 --- a/plugins/devkit/devkit-core/src/completion/ThemeJsonCompletionContributor.java +++ b/plugins/devkit/devkit-core/src/completion/ThemeJsonCompletionContributor.java @@ -107,7 +107,7 @@ public class ThemeJsonCompletionContributor extends CompletionContributor { conditionFilter = key -> key.startsWith(presentNamePart); mapFunction = key -> key.substring(presentNamePart.length() + 1); // + 1 for dot } - return UiDefaultsHardcodedKeys.UI_DEFAULTS_KEYS.stream() + return UiDefaultsHardcodedKeys.ALL_KEYS.stream() .filter(conditionFilter) .map(mapFunction) .map(key -> createLookupElement(key, shouldSurroundWithQuotes)) diff --git a/plugins/devkit/devkit-core/src/completion/UiDefaultsHardcodedKeys.java b/plugins/devkit/devkit-core/src/completion/UiDefaultsHardcodedKeys.java index ceb81c3a5ba2..ef94d2c451ba 100644 --- a/plugins/devkit/devkit-core/src/completion/UiDefaultsHardcodedKeys.java +++ b/plugins/devkit/devkit-core/src/completion/UiDefaultsHardcodedKeys.java @@ -4,10 +4,18 @@ package org.jetbrains.idea.devkit.completion; import com.google.common.collect.Sets; import org.jetbrains.annotations.ApiStatus; +import java.awt.*; import java.util.Set; +/** + * @see ThemeJsonCompletionContributor + * @see javax.swing.UIDefaults + * @see com.intellij.ui.JBColor#namedColor(String, Color) + * @see com.intellij.ui.JBColor#namedColor(String, int) + */ @ApiStatus.Experimental -public final class UiDefaultsHardcodedKeys { //TODO move +public final class UiDefaultsHardcodedKeys { + // hardcoded because these keys can differ from platform to platform and from theme to theme. public static final Set UI_DEFAULTS_KEYS = Sets.newHashSet( "AATextInfoPropertyKey", "AbstractButton.click.textAndMnemonic", @@ -1123,5 +1131,193 @@ public final class UiDefaultsHardcodedKeys { //TODO move "window", "windowBorder", "windowText" + ); + + + public static final Set NAMED_COLORS = Sets.newHashSet( + "ActionButton.hoverBackground", + "ActionButton.hoverBorderColor", + "ActionButton.pressedBackground", + "ActionButton.pressedBorderColor", + "Borders.ContrastBorderColor", + "Borders.color", + "Button.darcula.defaultEndColor", + "Button.darcula.defaultFocusedOutlineColor", + "Button.darcula.defaultShadowColor", + "Button.darcula.defaultStartColor", + "Button.darcula.disabledOutlineColor", + "Button.darcula.endColor", + "Button.darcula.focusedOutlineColor", + "Button.darcula.outlineDefaultEndColor", + "Button.darcula.outlineDefaultStartColor", + "Button.darcula.outlineEndColor", + "Button.darcula.outlineStartColor", + "Button.darcula.shadowColor", + "Button.darcula.smallComboButtonBackground", + "Button.darcula.startColor", + "ComboBox.darcula.arrowButtonBackground", + "ComboBox.darcula.arrowButtonDisabledForeground", + "ComboBox.darcula.arrowButtonForeground", + "ComboBox.darcula.editable.arrowButtonBackground", + "ComboBox.darcula.nonEditableBackground", + "ComboBox.disabledForeground", + "CompletionPopup.background", + "CompletionPopup.foreground", + "CompletionPopup.grayedForeground", + "CompletionPopup.matchForeground", + "CompletionPopup.matchSelectedForeground", + "CompletionPopup.selectedForeground", + "CompletionPopup.selectedGrayedForeground", + "CompletionPopup.selectionBackground", + "CompletionPopup.selectionInactiveBackground", + "DragAndDrop.backgroundBorderColor", + "DragAndDrop.backgroundColor", + "DragAndDrop.foregroundColor", + "Editor.background", + "Editor.foreground", + "Editor.shortcutForeground", + "EditorTabs.active.background", + "EditorTabs.active.foreground", + "EditorTabs.active.underlineColor", + "EditorTabs.borderColor", + "EditorTabs.inactive.maskColor", + "FileColor.Blue", + "FileColor.Green", + "FileColor.Orange", + "FileColor.Rose", + "FileColor.Violet", + "FileColor.Yellow", + "FlameGraph.JVMBackground", + "FlameGraph.JVMFocusBackground", + "FlameGraph.JVMFocusSearchNotMatchedBackground", + "FlameGraph.JVMSearchNotMatchedBackground", + "FlameGraph.frameForeground", + "FlameGraph.nativeBackground", + "FlameGraph.nativeFocusBackground", + "FlameGraph.nativeFocusSearchNotMatchedBackground", + "FlameGraph.nativeSearchNotMatchedBackground", + "FlameGraph.parentBackground", + "FlameGraph.parentFocusBackground", + "FlameGraph.parentFocusSearchNotMatchedBackground", + "FlameGraph.parentSearchNotMatchedBackground", + "Focus.activeErrorBorderColor", + "Focus.activeWarningBorderColor", + "Focus.borderColor", + "Focus.defaultButtonBorderColor", + "Focus.inactiveErrorBorderColor", + "Focus.inactiveWarningBorderColor", + "Github.List.tallRow.foreground", + "Github.List.tallRow.secondary.foreground", + "Github.List.tallRow.selectionBackground", + "Github.List.tallRow.selectionBackground.unfocused", + "Github.List.tallRow.selectionForeground", + "Github.List.tallRow.selectionForeground.unfocused", + "Group.separatorColor", + "HeaderColor.inactive", + "HelpTooltip.backgroundColor", + "HelpTooltip.borderColor", + "HelpTooltip.shortcutTextColor", + "HelpTooltip.textColor", + "Label.disabledForeground", + "Label.disabledText", + "Label.errorForeground", + "Label.foreground", + "Label.grayForeground", + "Label.selectedDisabledForeground", + "Label.selectedForeground", + "Menu.borderColor", + "MenuBar.borderColor", + "NavBar.borderColor", + "Notification.Error.background", + "Notification.Error.borderColor", + "Notification.MoreButton.background", + "Notification.MoreButton.foreground", + "Notification.MoreButton.innerBorderColor", + "Notification.ToolWindowError.background", + "Notification.ToolWindowError.borderColor", + "Notification.ToolWindowInfo.background", + "Notification.ToolWindowInfo.borderColor", + "Notification.ToolWindowWarning.background", + "Notification.ToolWindowWarning.borderColor", + "Notification.background", + "Notification.borderColor", + "Outline.color", + "Outline.disabledColor", + "Outline.focusedColor", + "Panel.background", + "Popup.Advertiser.background", + "Popup.Advertiser.borderColor", + "Popup.Advertiser.foreground", + "Popup.Border.color", + "Popup.Border.inactiveColor", + "Popup.Header.activeBackground", + "Popup.Header.inactiveBackground", + "Popup.Separator.foreground", + "Popup.Toolbar.Border.color", + "Popup.Toolbar.background", + "Popup.separatorColor", + "ProgressBar.failedColor", + "ProgressBar.failedEndColor", + "ProgressBar.indeterminateEndColor", + "ProgressBar.indeterminateStartColor", + "ProgressBar.passedColor", + "ProgressBar.passedEndColor", + "ProgressBar.progressColor", + "ProgressBar.trackColor", + "SearchEverywhere.Advertiser.background", + "SearchEverywhere.Advertiser.foreground", + "SearchEverywhere.Header.background", + "SearchEverywhere.List.Separator.Color", + "SearchEverywhere.SearchField.background", + "SearchEverywhere.SearchField.borderColor", + "SearchEverywhere.SearchField.grayForeground", + "SearchEverywhere.Tab.active.background", + "SearchEverywhere.Tab.active.foreground", + "SearchMatch.endColor", + "SearchMatch.startColor", + "Separator.foreground", + "SidePanel.background", + "StatusBar.borderColor", + "TabbedPane.contentAreaColor", + "TabbedPane.disabledText", + "TabbedPane.focusColor", + "TabbedPane.hoverColor", + "TabbedPane.selectedColor", + "TabbedPane.selectedDisabledColor", + "TitlePane.background", + "ToolTip.actions.background", + "ToolWindow.Button.hoverBackground", + "ToolWindow.Button.selectedBackground", + "ToolWindow.Button.selectedForeground", + "ToolWindow.header.active.background", + "ToolWindow.header.background", + "ToolWindow.header.border.background", + "ToolWindow.header.closeButton.background", + "ToolWindow.header.tab.hovered.active.background", + "ToolWindow.header.tab.hovered.background", + "ToolWindow.header.tab.selected.active.background", + "ToolWindow.header.tab.selected.background", + "ValidationTooltip.errorBackgroundColor", + "ValidationTooltip.errorBorderColor", + "ValidationTooltip.warningBackgroundColor", + "ValidationTooltip.warningBorderColor", + "WelcomeScreen.Projects.background", + "WelcomeScreen.Projects.selectionBackground", + "WelcomeScreen.Projects.selectionInactiveBackground", + "WelcomeScreen.background", + "WelcomeScreen.borderColor", + "WelcomeScreen.captionBackground", + "WelcomeScreen.captionForeground", + "WelcomeScreen.footerBackground", + "WelcomeScreen.footerForeground", + "WelcomeScreen.groupIconBorderColor", + "WelcomeScreen.headerBackground", + "WelcomeScreen.headerForeground", + "WelcomeScreen.separatorColor", + "tooltips.actions.keymap.text.color", + "tooltips.actions.settings.icon.background.color", + "tooltips.description.title.text.color" ); + + public static final Set ALL_KEYS = Sets.union(UI_DEFAULTS_KEYS, NAMED_COLORS); }