Make the fire red on black-and-white terminals (#6748)
This commit is contained in:
parent
974da47481
commit
04e7446b2b
@ -26,7 +26,7 @@ abstract class Logger {
|
|||||||
|
|
||||||
/// Display normal output of the command. This should be used for things like
|
/// Display normal output of the command. This should be used for things like
|
||||||
/// progress messages, success messages, or just normal command output.
|
/// progress messages, success messages, or just normal command output.
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true });
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative });
|
||||||
|
|
||||||
/// Use this for verbose tracing output. Users can turn this output on in order
|
/// Use this for verbose tracing output. Users can turn this output on in order
|
||||||
/// to help diagnose issues with the toolchain or with their setup.
|
/// to help diagnose issues with the toolchain or with their setup.
|
||||||
@ -60,14 +60,16 @@ class StdoutLogger extends Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
_status?.cancel();
|
_status?.cancel();
|
||||||
_status = null;
|
_status = null;
|
||||||
|
if (terminal.supportsColor && ansiAlternative != null)
|
||||||
|
message = ansiAlternative;
|
||||||
|
if (emphasis)
|
||||||
|
message = terminal.bolden(message);
|
||||||
if (newline)
|
if (newline)
|
||||||
stdout.writeln(emphasis ? terminal.writeBold(message) : message);
|
message = '$message\n';
|
||||||
else
|
stdout.write(message);
|
||||||
stdout.write(emphasis ? terminal.writeBold(message) : message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -106,7 +108,7 @@ class BufferLogger extends Logger {
|
|||||||
void printError(String message, [StackTrace stackTrace]) => _error.writeln(message);
|
void printError(String message, [StackTrace stackTrace]) => _error.writeln(message);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
if (newline)
|
if (newline)
|
||||||
_status.writeln(message);
|
_status.writeln(message);
|
||||||
else
|
else
|
||||||
@ -139,7 +141,7 @@ class VerboseLogger extends Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
_emit(_LogType.status, message);
|
_emit(_LogType.status, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +170,7 @@ class VerboseLogger extends Logger {
|
|||||||
} else {
|
} else {
|
||||||
prefix = '+$millis ms'.padLeft(prefixWidth);
|
prefix = '+$millis ms'.padLeft(prefixWidth);
|
||||||
if (millis >= 100)
|
if (millis >= 100)
|
||||||
prefix = terminal.writeBold(prefix);
|
prefix = terminal.bolden(prefix);
|
||||||
}
|
}
|
||||||
prefix = '[$prefix] ';
|
prefix = '[$prefix] ';
|
||||||
|
|
||||||
@ -176,11 +178,11 @@ class VerboseLogger extends Logger {
|
|||||||
String indentMessage = message.replaceAll('\n', '\n$indent');
|
String indentMessage = message.replaceAll('\n', '\n$indent');
|
||||||
|
|
||||||
if (type == _LogType.error) {
|
if (type == _LogType.error) {
|
||||||
stderr.writeln(prefix + terminal.writeBold(indentMessage));
|
stderr.writeln(prefix + terminal.bolden(indentMessage));
|
||||||
if (stackTrace != null)
|
if (stackTrace != null)
|
||||||
stderr.writeln(indent + stackTrace.toString().replaceAll('\n', '\n$indent'));
|
stderr.writeln(indent + stackTrace.toString().replaceAll('\n', '\n$indent'));
|
||||||
} else if (type == _LogType.status) {
|
} else if (type == _LogType.status) {
|
||||||
print(prefix + terminal.writeBold(indentMessage));
|
print(prefix + terminal.bolden(indentMessage));
|
||||||
} else {
|
} else {
|
||||||
print(prefix + indentMessage);
|
print(prefix + indentMessage);
|
||||||
}
|
}
|
||||||
@ -210,7 +212,7 @@ class AnsiTerminal {
|
|||||||
|
|
||||||
bool supportsColor;
|
bool supportsColor;
|
||||||
|
|
||||||
String writeBold(String str) => supportsColor ? '$_bold$str$_reset' : str;
|
String bolden(String str) => supportsColor ? '$_bold$str$_reset' : str;
|
||||||
|
|
||||||
String clearScreen() => supportsColor ? _clear : '\n\n';
|
String clearScreen() => supportsColor ? _clear : '\n\n';
|
||||||
|
|
||||||
|
@ -624,7 +624,7 @@ class NotifyingLogger extends Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
_messageController.add(new LogMessage('status', message));
|
_messageController.add(new LogMessage('status', message));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -698,7 +698,7 @@ class _AppRunLogger extends Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
_sendLogEvent(<String, dynamic>{ 'log': message });
|
_sendLogEvent(<String, dynamic>{ 'log': message });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,8 +27,15 @@ void printError(String message, [StackTrace stackTrace]) => logger.printError(me
|
|||||||
|
|
||||||
/// Display normal output of the command. This should be used for things like
|
/// Display normal output of the command. This should be used for things like
|
||||||
/// progress messages, success messages, or just normal command output.
|
/// progress messages, success messages, or just normal command output.
|
||||||
void printStatus(String message, { bool emphasis: false, bool newline: true }) {
|
///
|
||||||
logger.printStatus(message, emphasis: emphasis, newline: newline);
|
/// Set `emphasis` to true to make the output bold if it's supported.
|
||||||
|
///
|
||||||
|
/// Set `newline` to false to skip the trailing linefeed.
|
||||||
|
///
|
||||||
|
/// If `ansiAlternative` is provided, and the terminal supports color, that
|
||||||
|
/// string will be printed instead of the message.
|
||||||
|
void printStatus(String message, { bool emphasis: false, bool newline: true, String ansiAlternative }) {
|
||||||
|
logger.printStatus(message, emphasis: emphasis, newline: newline, ansiAlternative: ansiAlternative);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Use this for verbose tracing output. Users can turn this output on in order
|
/// Use this for verbose tracing output. Users can turn this output on in order
|
||||||
|
@ -594,7 +594,15 @@ class HotRunner extends ResidentRunner {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void printHelp({ @required bool details }) {
|
void printHelp({ @required bool details }) {
|
||||||
printStatus('🔥 To hot reload your app on the fly, press "r" or F5. To restart the app entirely, press "R".', emphasis: true);
|
const String fire = '🔥';
|
||||||
|
const String redOnBlack = '\u001B[31;40m';
|
||||||
|
const String bold = '\u001B[0;1m';
|
||||||
|
const String reset = '\u001B[0m';
|
||||||
|
printStatus(
|
||||||
|
'$fire To hot reload your app on the fly, press "r" or F5. To restart the app entirely, press "R".',
|
||||||
|
ansiAlternative: '$redOnBlack$fire$bold To ${redOnBlack}hot reload$bold your app on the fly, '
|
||||||
|
'press "r" or F5. To restart the app entirely, press "R".$reset'
|
||||||
|
);
|
||||||
printStatus('The Observatory debugger and profiler is available at: http://127.0.0.1:$_observatoryPort/');
|
printStatus('The Observatory debugger and profiler is available at: http://127.0.0.1:$_observatoryPort/');
|
||||||
if (details) {
|
if (details) {
|
||||||
printStatus('To dump the widget hierarchy of the app (debugDumpApp), press "w".');
|
printStatus('To dump the widget hierarchy of the app (debugDumpApp), press "w".');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user