From: Sergey Simonchik Date: Sun, 20 Dec 2015 23:25:23 +0000 (+0300) Subject: support underline effect with default foreground (IDEA-149450) X-Git-Tag: appcode/144.2348~1 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=23a0809b46ed2ca678f445372aa706645a5c7ee5 support underline effect with default foreground (IDEA-149450) --- diff --git a/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java b/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java index f99fab3b3ee3..77e314369300 100644 --- a/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java +++ b/platform/platform-api/src/com/intellij/execution/process/ColoredOutputTypeRegistry.java @@ -24,7 +24,6 @@ import com.intellij.openapi.editor.markup.EffectType; import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.ObjectUtils; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -130,7 +129,7 @@ public class ColoredOutputTypeRegistry { //TODO: 256 colors foreground } else if (value == 39) { - attrs.setForegroundColor(getColorByKey(ConsoleViewContentType.NORMAL_OUTPUT_KEY)); + attrs.setForegroundColor(getDefaultForegroundColor()); } else if (value >= 40 && value <= 47) { attrs.setBackgroundColor(getAnsiColor(value - 40)); @@ -151,7 +150,11 @@ public class ColoredOutputTypeRegistry { } } if (attrs.getEffectType() == EffectType.LINE_UNDERSCORE) { - attrs.setEffectColor(attrs.getForegroundColor()); + Color foregroundColor = attrs.getForegroundColor(); + if (foregroundColor == null) { + foregroundColor = getDefaultForegroundColor(); + } + attrs.setEffectColor(foregroundColor); } Key newKey = new Key(completeAttribute); ConsoleViewContentType contentType = new ConsoleViewContentType(completeAttribute, attrs); @@ -167,11 +170,25 @@ public class ColoredOutputTypeRegistry { return EditorColorsManager.getInstance().getGlobalScheme().getAttributes(colorKey).getForegroundColor(); } + @NotNull + private static Color getDefaultForegroundColor() { + EditorColorsScheme scheme = EditorColorsManager.getInstance().getGlobalScheme(); + TextAttributes attr = scheme.getAttributes(ConsoleViewContentType.NORMAL_OUTPUT_KEY); + Color color = attr != null ? attr.getForegroundColor() : null; + if (color == null) { + color = scheme.getDefaultForeground(); + } + return color; + } + @NotNull private static Color getDefaultBackgroundColor() { EditorColorsScheme scheme = EditorColorsManager.getInstance().getGlobalScheme(); Color color = scheme.getColor(ConsoleViewContentType.CONSOLE_BACKGROUND_KEY); - return ObjectUtils.notNull(color, scheme.getDefaultBackground()); + if (color == null) { + color = scheme.getDefaultBackground(); + } + return color; } public static TextAttributesKey getAnsiColorKey(int value) {