fancy-chicken/spinner.scm

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"))