Change default colors, and show highlighted text properly

This commit is contained in:
George Fleming
2016-04-29 13:17:53 -07:00
parent 342b05236f
commit 66ee25c603
3 changed files with 29 additions and 1 deletions
+15 -1
View File
@@ -72,6 +72,20 @@ namespace Microsoft.PowerShell
public class PSConsoleReadlineOptions
{
#if CORECLR
public const ConsoleColor DefaultCommentForegroundColor = ConsoleColor.Magenta;
public const ConsoleColor DefaultKeywordForegroundColor = ConsoleColor.Green;
public const ConsoleColor DefaultStringForegroundColor = ConsoleColor.DarkCyan;
public const ConsoleColor DefaultOperatorForegroundColor = ConsoleColor.Gray;
public const ConsoleColor DefaultVariableForegroundColor = ConsoleColor.Green;
public const ConsoleColor DefaultCommandForegroundColor = ConsoleColor.Yellow;
public const ConsoleColor DefaultParameterForegroundColor = ConsoleColor.Green;
public const ConsoleColor DefaultTypeForegroundColor = ConsoleColor.Gray;
public const ConsoleColor DefaultNumberForegroundColor = ConsoleColor.White;
public const ConsoleColor DefaultMemberForegroundColor = ConsoleColor.Gray;
public const ConsoleColor DefaultEmphasisForegroundColor = ConsoleColor.Cyan;
public const ConsoleColor DefaultErrorForegroundColor = ConsoleColor.Red;
#else
public const ConsoleColor DefaultCommentForegroundColor = ConsoleColor.DarkGreen;
public const ConsoleColor DefaultKeywordForegroundColor = ConsoleColor.Green;
public const ConsoleColor DefaultStringForegroundColor = ConsoleColor.DarkCyan;
@@ -84,7 +98,7 @@ namespace Microsoft.PowerShell
public const ConsoleColor DefaultMemberForegroundColor = ConsoleColor.Gray;
public const ConsoleColor DefaultEmphasisForegroundColor = ConsoleColor.Cyan;
public const ConsoleColor DefaultErrorForegroundColor = ConsoleColor.Red;
#endif
public const EditMode DefaultEditMode = EditMode.Windows;
@@ -472,8 +472,14 @@ namespace Microsoft.PowerShell
// to invert only the lower 3 bits to change the color is somewhat
// but looks best with the 2 default color schemes - starting PowerShell
// from it's shortcut or from a cmd shortcut.
#if CORECLR
ConsoleColor tempColor = ((int)foregroundColor == -1) ? ConsoleColor.White : foregroundColor;
foregroundColor = ((int)backgroundColor == -1) ? ConsoleColor.Black : backgroundColor;
backgroundColor = tempColor;
#else
foregroundColor = (ConsoleColor)((int)foregroundColor ^ 7);
backgroundColor = (ConsoleColor)((int)backgroundColor ^ 7);
#endif
}
charInfo.ForegroundColor = foregroundColor;
@@ -19,8 +19,16 @@ namespace Microsoft.PowerShell
var buffer = ReadBufferLines(start, count);
for (int i = 0; i < buffer.Length; i++)
{
#if CORECLR
ConsoleColor tempColor = (int)buffer[i].ForegroundColor == -1
? ConsoleColor.White : buffer[i].ForegroundColor;
buffer[i].ForegroundColor = (int)buffer[i].BackgroundColor == -1
? ConsoleColor.Black : buffer[i].BackgroundColor;
buffer[i].BackgroundColor = tempColor;
#else
buffer[i].ForegroundColor = (ConsoleColor)((int)buffer[i].ForegroundColor ^ 7);
buffer[i].BackgroundColor = (ConsoleColor)((int)buffer[i].BackgroundColor ^ 7);
#endif
}
_singleton._console.WriteBufferLines(buffer, ref start, false);
}