From 9882d1536dd9ed1d1427e56f6eb8592a34d2dfa0 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 9 Mar 2016 15:18:33 +0300 Subject: [PATCH] IDEA-152258 IDEA-134212 vcs: add VCS color settings * allow to configure colors of vcs annotations * generate annotations colors from couple of given anchors * move LST gutter colors settings from `General` group * add preview for LST markers --- .../colors/pages/GeneralColorsPage.java | 7 - .../src/messages/ApplicationBundle.properties | 1 + .../src/messages/OptionsBundle.properties | 17 +- .../src/DefaultColorSchemesManager.xml | 12 ++ .../src/META-INF/VcsExtensions.xml | 4 + .../vcs/actions/AnnotateToggleAction.java | 16 +- .../openapi/vcs/actions/AnnotationColors.java | 23 +- .../vcs/actions/AnnotationsSettings.java | 77 +++++++ .../vcs/actions/VcsColorsPageFactory.java | 99 +++++++++ .../openapi/vcs/actions/VcsPreviewPanel.java | 200 ++++++++++++++++++ .../openapi/vcs/ui/ColorGenerator.java | 77 +++++++ .../openapi/vcs/ui/ColorGeneratorTest.kt | 61 ++++++ 12 files changed, 554 insertions(+), 40 deletions(-) create mode 100644 platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotationsSettings.java create mode 100644 platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsColorsPageFactory.java create mode 100644 platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsPreviewPanel.java create mode 100644 platform/vcs-impl/src/com/intellij/openapi/vcs/ui/ColorGenerator.java create mode 100644 platform/vcs-impl/testSrc/com/intellij/openapi/vcs/ui/ColorGeneratorTest.kt diff --git a/platform/lang-impl/src/com/intellij/openapi/options/colors/pages/GeneralColorsPage.java b/platform/lang-impl/src/com/intellij/openapi/options/colors/pages/GeneralColorsPage.java index 0327f604c1c0..5dadbc92a131 100644 --- a/platform/lang-impl/src/com/intellij/openapi/options/colors/pages/GeneralColorsPage.java +++ b/platform/lang-impl/src/com/intellij/openapi/options/colors/pages/GeneralColorsPage.java @@ -115,15 +115,8 @@ public class GeneralColorsPage implements ColorSettingsPage, InspectionColorSett new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.indent.guide"), EditorColors.INDENT_GUIDE_COLOR, ColorDescriptor.Kind.BACKGROUND), new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.indent.guide.selected"), EditorColors.SELECTED_INDENT_GUIDE_COLOR, ColorDescriptor.Kind.BACKGROUND), new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.line.number"), EditorColors.LINE_NUMBERS_COLOR, ColorDescriptor.Kind.FOREGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.vcs.annotations"), EditorColors.ANNOTATIONS_COLOR, ColorDescriptor.Kind.FOREGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.vcs.annotations.merged"), EditorColors.ANNOTATIONS_MERGED_COLOR, ColorDescriptor.Kind.FOREGROUND), new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.tearline"), EditorColors.TEARLINE_COLOR, ColorDescriptor.Kind.FOREGROUND), new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.tearline.selected"), EditorColors.SELECTED_TEARLINE_COLOR, ColorDescriptor.Kind.FOREGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.added.lines"), EditorColors.ADDED_LINES_COLOR, ColorDescriptor.Kind.BACKGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.modified.lines"), EditorColors.MODIFIED_LINES_COLOR, ColorDescriptor.Kind.BACKGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.deleted.lines"), EditorColors.DELETED_LINES_COLOR, ColorDescriptor.Kind.BACKGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.whitespaces.modified.lines"), EditorColors.WHITESPACES_MODIFIED_LINES_COLOR, ColorDescriptor.Kind.BACKGROUND), - new ColorDescriptor(OptionsBundle.message("options.general.color.descriptor.border.lines"), EditorColors.BORDER_LINES_COLOR, ColorDescriptor.Kind.BACKGROUND), new ColorDescriptor(OptionsBundle.message("options.java.color.descriptor.method.separator.color"), CodeInsightColors.METHOD_SEPARATORS_COLOR, ColorDescriptor.Kind.FOREGROUND), new ColorDescriptor(OptionsBundle.message("options.general.color.soft.wrap.sign"), EditorColors.SOFT_WRAP_SIGN_COLOR, ColorDescriptor.Kind.FOREGROUND), }; diff --git a/platform/platform-resources-en/src/messages/ApplicationBundle.properties b/platform/platform-resources-en/src/messages/ApplicationBundle.properties index 822e9322e391..7729be0d29e6 100644 --- a/platform/platform-resources-en/src/messages/ApplicationBundle.properties +++ b/platform/platform-resources-en/src/messages/ApplicationBundle.properties @@ -549,6 +549,7 @@ checkbox.font.italic=Italic label.font.type=Font label.inherit.attributes=Use inherited attributes title.diff=Diff \\& Merge +title.vcs=VCS title.file.status=File Status title.scope.based=By Scope title.colors.and.fonts=Colors \\& Fonts diff --git a/platform/platform-resources-en/src/messages/OptionsBundle.properties b/platform/platform-resources-en/src/messages/OptionsBundle.properties index d0876d581808..492c40501e58 100644 --- a/platform/platform-resources-en/src/messages/OptionsBundle.properties +++ b/platform/platform-resources-en/src/messages/OptionsBundle.properties @@ -117,7 +117,7 @@ options.xml.attribute.descriptor.descriptor.entity,reference=Entity reference #Color descriptors options.general.color.descriptor.background.in.readonly.files=Text//Background in readonly files options.general.color.descriptor.readonly.fragment.background=Text//Readonly fragment background -options.general.color.descriptor.gutter.background=Gutter//Background +options.general.color.descriptor.gutter.background=Editor//Gutter background options.general.color.descriptor.notification.background=Editor//Notification background options.general.color.descriptor.selection.background=Editor//Selection background options.general.color.descriptor.selection.foreground=Editor//Selection foreground @@ -128,15 +128,16 @@ options.general.color.descriptor.whitespaces=Text//Whitespaces options.general.color.descriptor.indent.guide=Code//Vertical indent guide options.general.color.descriptor.indent.guide.selected=Code//Selected vertical indent guide options.general.color.descriptor.line.number=Code//Line number -options.general.color.descriptor.vcs.annotations=VCS Annotations//Regular -options.general.color.descriptor.vcs.annotations.merged=VCS Annotations//Merged from +options.general.color.descriptor.vcs.annotations=VCS Annotations//Foreground +options.general.color.descriptor.vcs.annotations.merged=VCS Annotations//Foreground for merged commits (SVN only) +options.general.color.descriptor.vcs.annotations.color.n=VCS Annotations//Background color #{0} options.general.color.descriptor.tearline=Editor//Tear line options.general.color.descriptor.tearline.selected=Editor//Tear line selection -options.general.color.descriptor.added.lines=Gutter//Added lines -options.general.color.descriptor.modified.lines=Gutter//Modified lines -options.general.color.descriptor.deleted.lines=Gutter//Deleted lines -options.general.color.descriptor.whitespaces.modified.lines=Gutter//Lines with whitespace-only modifications -options.general.color.descriptor.border.lines=Gutter//Border for changed lines +options.general.color.descriptor.added.lines=Editor Gutter//Added lines +options.general.color.descriptor.modified.lines=Editor Gutter//Modified lines +options.general.color.descriptor.deleted.lines=Editor Gutter//Deleted lines +options.general.color.descriptor.whitespaces.modified.lines=Editor Gutter//Whitespace-modified lines +options.general.color.descriptor.border.lines=Editor Gutter//Border options.general.color.descriptor.console.background=Console//Background options.general.color.descriptor.console.stdout=Console//Standard output options.general.color.descriptor.console.stderr=Console//Error output diff --git a/platform/platform-resources/src/DefaultColorSchemesManager.xml b/platform/platform-resources/src/DefaultColorSchemesManager.xml index ad062bae0951..34b941be4d85 100644 --- a/platform/platform-resources/src/DefaultColorSchemesManager.xml +++ b/platform/platform-resources/src/DefaultColorSchemesManager.xml @@ -53,6 +53,12 @@