This attempts to re-land #22656.
There are two changes from the original:
I turned off wrapping completely when not sending output to a terminal. Previously I had defaulted to wrapping at and arbitrary 100 chars in that case, just to keep long messages from being too long, but that turns out the be a bad idea because there are tests that are relying on the specific form of the output. It's also pretty arbitrary, and mostly people sending output to a non-terminal will want unwrapped text.
I found a better way to terminate ANSI color/bold sequences, so that they can be embedded within each other without needed quite as complex a dance with removing redundant sequences.
As part of these changes, I removed the Logger.supportsColor setter so that the one source of truth for color support is in AnsiTerminal.supportsColor.
* Turn on line wrapping again in usage and status messages, adds ANSI color to doctor and analysis messages. (#22656)
This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).
Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.
Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.
Since wrapping is now turned on, also removed many redundant '\n's in the code.
Adds a Fuchsia compatibility function that allows for connecting to a
specific Isolate by name when running Flutter Driver on a Fuchsia
device. This will check over multiple Dart VM's in an attempt to find
an Isolate by its name.
This reverts commit e438632165818fb06b7c58ea846fe781d9d17642
because it breaks 160 benchmarks, and several devicelab tests,
due to changing the format of the output.
This turns on text wrapping for usage messages and status messages. When on a terminal, wraps to the width of the terminal. When writing to a non-terminal, wrap lines at a default column width (currently defined to be 100 chars). If --no-wrap is specified, then no wrapping occurs. If --wrap-column is specified, wraps to that column (if --wrap is on).
Adds ANSI color to the doctor and analysis output on terminals. This is in this PR with the wrapping, since wrapping needs to know how to count visible characters in the presence of ANSI sequences. (This is just one more step towards re-implementing all of Curses for Flutter. :-)) Will not print ANSI sequences when sent to a non-terminal, or of --no-color is specified.
Fixes ANSI color and bold sequences so that they can be combined (bold, colored text), and a small bug in indentation calculation for wrapping.
Since wrapping is now turned on, also removed many redundant '\n's in the code.
* Revert "Custom offset functionality for Popup Menu Button (#22534)"
This reverts commit f44b277fa632c848ea113ee3f397f713bc429153.
* Revert "Updated the ColorScheme dartdoc: a11y (#22618)"
This reverts commit aa6a27e8a25ba4d6d68539a0ae9285385a29ae9e.
* Revert "Added support for the Khmer (km) language (#22617)"
This reverts commit 3a87b93fcee696480504f0659062f0d7206c44a3.
* Revert "Use 'Future<void>' insted of 'Future<Null>' in SystemChrome (#22583)"
This reverts commit 37c10acb978009b1ee690478a31b30eb7371eb25.
* Revert "Choice Chip Fix (#22589)"
This reverts commit 8d76d37f33b474c77c35c91bfeaeedd86d8a6fb5.
* Revert "Throw if trying to set fs.currentDirectory in tests (#22037)"
This reverts commit 2f6155bf188911bc0630b1b2e6786e968a570fe7.
* Revert "Use (processors-1) for test runs (test defaults to processors/2) (#22085)"
This reverts commit d44f003079b53643d6f0afd9a5f57383c3de62cb.
* Improve documentation and clean up code.
* Remove "Note that".
The phrase "note that" is basically meaningless as a prefix to an
otherwise fine sentence.
* Add build test for Flutter codelabs
* Fix indentation in build test script
* Correct filename for the codelabs build test run by travis
* Change if statement to elif
* Replace echo statements with set -x
* Add BSD-style license
* Add codelabs build test to Cirrus
* Remove codelabs_build_test from Travis.
* Remove codelabs_build_test from travis_script.sh
* Update documentation for codelabs_build_test.sh
* Update readme for build test
* Add link to open a new issue to MDC-Flutter
* Add phrase to address "if you think you really need to break this test, please escalate this"
* Split analysis steps out of dev/bots/test.dart into dev/bots/analyze.dart.
This allows to run analysis step with command line arguments that are only applicable to flutter analyze(like --dart-sdk, needed for dart-flutter-engine head-head-head bot).
* Add forgotten dev/bots/analyze.dart
* Refactor common code from analyze.dart and test.dart into run_command.dart
* Remove comments, add header
This adds ".pub-cache" to the list of directories to ignore when checking for dependence upon dart:test, since when people install a downloadable package, their pub cache is in the flutter directory.
Also, I centralized the ANSI "red line" so that they would all use the same final string.
* Start logger in startProgress to avoid assertion failure
There are lots of places that create a Status() and all but two of them call ..start() immediately. This is one of the places that doesn't, which causes an assertion failure when running with --enable-asserts and the other is in the same file (I suspect it's also incorrect, but possibly it's never used - I'll look at that separately when I can trace some code that calls it).
Fixes#20812.
* Enable asserts for tools tests
* Fix lint
* Rename enableAsserts -> enableFlutterToolAsserts
To make it clearer that it only enables asserts for flutter_tools when set.