diff options
-rw-r--r-- | build-aux/test-driver.scm | 13 | ||||
-rw-r--r-- | ccwl/ui.scm | 19 |
2 files changed, 13 insertions, 19 deletions
diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm index 8fc5236..adac481 100644 --- a/build-aux/test-driver.scm +++ b/build-aux/test-driver.scm @@ -28,16 +28,17 @@ (use-modules (ice-9 format) (ice-9 match) (srfi srfi-26) - (srfi srfi-64)) + (srfi srfi-64) + (term ansi-color)) -(define (color code str color?) +(define (color color-symbol str color?) (if color? - (format #f "~a[~am~a~a[0m" #\esc code str #\esc) + (colorize-string str color-symbol) str)) -(define red (cut color 31 <> <>)) -(define green (cut color 32 <> <>)) -(define magenta (cut color 35 <> <>)) +(define red (cut color 'RED <> <>)) +(define green (cut color 'GREEN <> <>)) +(define magenta (cut color 'MAGENTA <> <>)) (define (my-gnu-runner color?) (let ((runner (test-runner-null))) diff --git a/ccwl/ui.scm b/ccwl/ui.scm index 60fb1e7..c499041 100644 --- a/ccwl/ui.scm +++ b/ccwl/ui.scm @@ -20,6 +20,7 @@ #:use-module (rnrs io ports) #:use-module (srfi srfi-26) #:use-module (srfi srfi-28) + #:use-module (term ansi-color) #:use-module (ccwl conditions) #:export (report-formatted-message report-ccwl-violation)) @@ -29,7 +30,7 @@ user." (display (apply format (formatted-message-format exception) - (map (compose bold magenta) + (map (cut colorize-string <> 'BOLD 'MAGENTA) (formatted-message-arguments exception))) (current-error-port)) (newline (current-error-port))) @@ -66,15 +67,6 @@ whitespace intact." (get-string-n port (- (read-end port) (port-position port)))) -(define (color code str) - "Wrap STR in ANSI escape CODE, thus rendering it in color in a -terminal." - (format "~a[~am~a~a[0m" #\esc code str #\esc)) - -(define bold (cut color 1 <>)) -(define red (cut color 31 <>)) -(define magenta (cut color 35 <>)) - (define (count-lines str) "Count the number of lines in STR." (call-with-input-string str @@ -146,7 +138,7 @@ red. LINE-NUMBER and COLUMN-NUMBER are zero-based." ;; Display syntax x in red. Color each line separately to ;; help line oriented functions like ;; `display-with-line-numbers'. - (display (string-join (map (compose bold red) + (display (string-join (map (cut colorize-string <> 'BOLD 'RED) (string-split (read-sexp-string port) #\newline)) "\n") @@ -163,9 +155,10 @@ red. LINE-NUMBER and COLUMN-NUMBER are zero-based." (let ((file (ccwl-violation-file exception)) (line (ccwl-violation-line exception)) (column (ccwl-violation-column exception))) - (display (bold (format "~a:~a:~a: " file (1+ line) column)) + (display (colorize-string (format "~a:~a:~a: " file (1+ line) column) + 'BOLD) (current-error-port)) - (display (bold (red "error:")) + (display (colorize-string "error:" 'BOLD 'RED) (current-error-port)) (display " " (current-error-port)) (when (formatted-message? exception) |