11
votes

Comment appeler print () avec du texte coloré sur la console de studio Android en flutter

J'ai besoin d'une sortie de débogage avec une chaîne colorée. comme la craie node.js.

J'ai essayé de trouver les packages, mais il n'y a pas de package approprié.

Merci.


5 Réponses :


10
votes

Vous devez imprimer des séquences d'échappement pour obtenir les effets de couleur dans la sortie du terminal.

Voir aussi https://en.wikipedia.org/wiki/ANSI_escape_code

https://pub.dartlang.org/packages/ansicolor est un package Dart qui facilite les choses.


1 commentaires

Cela ne fonctionne pas sur mon studio Android. Les caractères d'échappement sont ignorés. importer 'dart: io' comme io; print (io.stdout.supportsAnsiEscapes); retourne faux.



7
votes

Je recommande d'utiliser Grep Console si vous ne voulez pas changer la façon dont vous imprimez réellement les caractères

Vous pouvez ajouter une balise comme [DEBUG] à vos journaux et la console grep ferait la magie pour vous.


0 commentaires

1
votes

Bien que la coloration du texte fonctionne parfaitement dans le terminal, elle peut ne pas fonctionner dans la sortie de débogage de l'IDE (j'ai essayé Idea / Android Studio et VSCode).

Exemple de codes d'échappement ANSI utilisant:

print('\x1B[94m' + "hahAHaHA!!!" + '\x1B[0m');

Exemples d'utilisation ansicolor package ansicolor :

import 'package:ansicolor/ansicolor.dart';

main(List<String> arguments) {
  AnsiPen greenPen = AnsiPen()..green();
  AnsiPen greenBackGroundPen = AnsiPen()..green(bg: true);

  AnsiPen redTextBlueBackgroundPen = AnsiPen()..blue(bg: true)..red();

  AnsiPen boldPen = AnsiPen()..white(bold: true);

  AnsiPen someColorPen = AnsiPen()..rgb(r: .5, g: .2, b: .4);

  print(greenPen("Hulk") + " " + greenBackGroundPen("SMASH!!!"));
  print(redTextBlueBackgroundPen("Spider-Man!!!") + " " + boldPen("Far From Home!!!"));

  print(someColorPen("Chameleon"));
}

PS est venu ici pour trouver des informations sur la coloration du texte dans le terminal, pas dans la sortie de débogage de l'IDE. J'ai donc décidé d'écrire des exemples ici et de ne pas créer de question séparée avec réponse.


0 commentaires

1
votes

Actuellement, la console Dart n'analyse pas les couleurs ANSI dans Android Studio ou IntelliJ Idea. Vous pouvez vérifier la prise en charge des couleurs ANSI en appelant

flutter logs

Mais vous pouvez avoir des journaux colorés dans Android Studio, ouvrez simplement une fenêtre de terminal dans Android Studio et appelez

import dart.io as io
io.stdout.supportsAnsiEscapes

Cette commande associe la session de terminal en cours à la session de flutter active. Utilisez ce terminal pour les journaux. Onglet Débogage, pour d'autres fonctionnalités.

Aperçu


1 commentaires

Le terminal d'Android Studio prend en charge les couleurs ANSI, tout comme Windows Power Shell, les flutter logs font l'affaire.



0
votes

Emoji

Vous pouvez utiliser des couleurs pour le texte comme d'autres mentionnés dans leurs réponses pour avoir un texte coloré avec une couleur d'arrière-plan ou de premier plan.

Mais vous pouvez utiliser des émojis à la place! par exemple, vous pouvez utiliser âš ï¸ pour les messages d'avertissement et ðŸ›' pour les messages d'erreur.

Ou utilisez simplement ces cahiers comme couleur:

📕: error message
📙: warning message
📗: ok status message
📘: action message
📓: canceled status message
📔: Or anything you like and want to recognize immediately by color

Bonus ðŸŽ:

Cette méthode vous aide également à analyser et à trouver rapidement des journaux directement dans le code source .

Mais certaines distributions de la police emoji par défaut de Linux ne sont pas colorées par défaut et vous voudrez peut-être les rendre colorées, d'abord.


0 commentaires