From a7ae18b1b9a083a1fbc6c2037e45df2447f704ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Wed, 10 Apr 2019 12:55:23 +0200
Subject: [PATCH] ui: Colorize hints.

* guix/ui.scm (%info-colors): Remove CYAN.
(%hint-colors): New variable.
(display-hint): Adjust so that the "hint:" prefix is colorized.
---
 guix/ui.scm | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/guix/ui.scm b/guix/ui.scm
index 3869f77c159..63977f3aecd 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -175,8 +175,9 @@ (define-syntax-rule (leave args ...)
     (exit 1)))
 
 (define %warning-colors '(BOLD MAGENTA))
-(define %info-colors '(BOLD CYAN))
+(define %info-colors '(BOLD))
 (define %error-colors '(BOLD RED))
+(define %hint-colors '(BOLD CYAN))
 
 (define* (print-diagnostic-prefix prefix #:optional location
                                   #:key (colors '()))
@@ -357,11 +358,18 @@ (define (module<? m1 m2)
 (define* (display-hint message #:optional (port (current-error-port)))
   "Display MESSAGE, a l10n message possibly containing Texinfo markup, to
 PORT."
-  (format port (G_ "hint: ~a~%")
-          ;; XXX: We should arrange so that the initial indent is wider.
-          (parameterize ((%text-width (max 15
-                                           (- (terminal-columns) 5))))
-            (texi->plain-text message))))
+  (define colorize
+    (if (color-output? port)
+        (lambda (str)
+          (apply colorize-string str %hint-colors))
+        identity))
+
+  (display (colorize (G_ "hint: ")) port)
+  (display
+   ;; XXX: We should arrange so that the initial indent is wider.
+   (parameterize ((%text-width (max 15 (- (terminal-columns) 5))))
+     (texi->plain-text message))
+   port))
 
 (define* (report-unbound-variable-error args #:key frame)
   "Return the given unbound-variable error, where ARGS is the list of 'throw'
-- 
GitLab