Skip to content

Instantly share code, notes, and snippets.

@dhonx
Forked from spytheman/term.header.v
Created February 7, 2020 15:10
Show Gist options
  • Save dhonx/9e6bd97ee075277e4232bc5fc7ff81d1 to your computer and use it in GitHub Desktop.
Save dhonx/9e6bd97ee075277e4232bc5fc7ff81d1 to your computer and use it in GitHub Desktop.
pub fn header(otext, divider string) string {
cols, _ := get_terminal_size()
mut text := otext
if text.len > 0 {
text = ' $text '
}
// clip the text if it is too long
text = if cols > text.len + 1 + 2*divider.len { text } else { text[0..cols-(1+2*divider.len)] }
// make the text align with the terminal size:
if (text.len % 2) != (cols % 2 ) {
text += divider
}
filler := divider.repeat( (cols - text.len) / (2*divider.len) )
return filler + text + filler
}
fn test_header(){
divider := term.h_divider('-')
term_width := divider.len
empty_header := term.header('', '-')
short_header := term.header('reasonable header', '-')
very_long_header := term.header(['abc'].repeat(500).join(' '), '-')
eprintln( empty_header )
eprintln( short_header )
eprintln(term.header('another longer header', '-+-'))
eprintln(term.header('another longer header', '-'))
eprintln(term.header('short','-'))
eprintln(term.header('12345','-'))
eprintln(term.header('1234','-'))
eprintln(term.header('123','-'))
eprintln(term.header('12','-'))
eprintln(term.header('1','-'))
eprintln( very_long_header )
eprintln(term.header('','-'))
assert term_width == empty_header.len
assert term_width == short_header.len
assert term_width == very_long_header.len
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment