colors: Add 'highlight'.

* guix/colors.scm (%highlight-color): New variable.
(highlight): New procedure.
* guix/ui.scm (%highlight-argument)[highlight]: Remove.
(%highlight-color): Remove.
master
Ludovic Courtès 2019-04-14 19:48:19 +02:00
parent a5c72da46c
commit c1c5d68a94
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 12 additions and 9 deletions

View File

@ -30,6 +30,7 @@
color?
colorize-string
highlight
color-rules
color-output?
isatty?*))
@ -132,6 +133,15 @@ that subsequent output will not have any colors in effect."
(not (getenv "NO_COLOR"))
(isatty?* port)))
(define %highlight-color (color BOLD))
(define* (highlight str #:optional (port (current-output-port)))
"Return STR with extra ANSI color attributes to highlight it if PORT
supports it."
(if (color-output? port)
(colorize-string str %highlight-color)
str))
(define (colorize-matches rules)
"Return a procedure that, when passed a string, returns that string
colorized according to RULES. RULES must be a list of tuples like:

View File

@ -155,16 +155,10 @@ is a trivial format string."
(define* (%highlight-argument arg #:optional (port (guix-warning-port)))
"Highlight ARG, a format string argument, if PORT supports colors."
(define highlight
(if (color-output? port)
(lambda (str)
(colorize-string str %highlight-color))
identity))
(cond ((string? arg)
(highlight arg))
(highlight arg port))
((symbol? arg)
(highlight (symbol->string arg)))
(highlight (symbol->string arg) port))
(else arg)))
(define-syntax define-diagnostic
@ -220,7 +214,6 @@ messages."
(define %info-color (color BOLD))
(define %error-color (color BOLD RED))
(define %hint-color (color BOLD CYAN))
(define %highlight-color (color BOLD))
(define* (print-diagnostic-prefix prefix #:optional location
#:key (colors (color)))