summaryrefslogtreecommitdiff
path: root/lib/text.ml
blob: 218f5e1753a2d38a4564d16bbd44fc9b804c0be1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
open Base
open Sequence
open Sequence.Infix

let center ~fill n text =
  let padding = repeat fill and len_t = length text in
  let len_p = (n - len_t) / 2 in
  take (take padding len_p @ text @ padding) n

let extend ~fill n text = take (text @ repeat fill) n

let spread ?(l = empty) ?(lsize = length l) ?(c = empty) ?(csize = length c)
    ?(r = empty) ?(rsize = length r) ~fill w =
  let lpad = take (repeat fill) ((w / 2) - lsize - (csize / 2) - 1) in
  let rpad = take (repeat fill) ((w / 2) - rsize - (csize / 2)) in
  l @ lpad @ c @ rpad @ r

let invert text = Terminal.(fmt_inverted_on @ text @ fmt_inverted_off)
let bold text = Terminal.(fmt_bold_on @ text @ fmt_bold_off)