| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'dart:math'; | |
| import 'package:io/ansi.dart'; | |
| /// Prints a sample of all of the `AnsiCode` values. | |
| void main(List<String> args) { | |
| final forScript = args.contains('--for-script'); | |
| if (!ansiOutputEnabled) { | |
| print('`ansiOutputEnabled` is `false`.'); | |
| print("Don't expect pretty output."); | |
| } | |
| _preview('Foreground', foregroundColors, forScript); | |
| _preview('Background', backgroundColors, forScript); | |
| _preview('Styles', styles, forScript); | |
| } | |
| void _preview(String name, List<AnsiCode> values, bool forScript) { | |
| print(''); | |
| final longest = values.map((ac) => ac.name.length).reduce(max); | |
| print(wrapWith('** $name **', [styleBold, styleUnderlined])); | |
| for (var code in values) { | |
| final header = | |
| '${code.name.padRight(longest)} ${code.code.toString().padLeft(3)}'; | |
| print("$header: ${code.wrap('Sample', forScript: forScript)}"); | |
| } | |
| } |