19 lines
626 B
Scheme
19 lines
626 B
Scheme
(define +spinner-styles+
|
|
'((dots . "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏")
|
|
(block . "▖▘▝▗")
|
|
(triangle . "◢◣◤◥")
|
|
(circle . "◐◓◑◒")
|
|
(vertical . "▁▃▄▅▆▇█▇▆▅▄▃")
|
|
(horizontal . "▉▊▋▌▍▎▏▎▍▌▋▊▉")
|
|
(ascii . "|/-\\")))
|
|
|
|
(define (spinner i text-before text-after #!key (style 'dots))
|
|
(define spinner-chars (cdr (assoc style +spinner-styles+)))
|
|
(string-append
|
|
(cursor-up 1)
|
|
(parse-markup text-before)
|
|
" "
|
|
(string (string-ref spinner-chars (modulo i (string-length spinner-chars))))
|
|
" "
|
|
(parse-markup text-after)
|
|
"\n"))
|