blob: a54fee12e388c4d87a21c3e0b963100299e21b60 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 | #!/hint/zsh
typeset -ga _ftb_headers=()
local i tmp group_colors
local -i mlen=0 len=0
if (( $#_ftb_groups == 1 )) && { ! -ftb-zstyle -m single-group "header" }; then
  return
fi
# calculate the max column width
for i in $_ftb_groups; do
  (( $#i > mlen )) && mlen=$#i
done
mlen+=1
-ftb-zstyle -a group-colors group_colors || group_colors=($_ftb_group_colors)
for (( i=1; i<=$#_ftb_groups; i++ )); do
  [[ $_ftb_groups[i] == "__hide__"* ]] && continue
  if (( len + $#_ftb_groups[i] > COLUMNS - 5 )); then
    _ftb_headers+=$tmp
    tmp='' && len=0
  fi
  if (( len + mlen > COLUMNS - 5 )); then
    # the last column doesn't need padding
    _ftb_headers+=$tmp$group_colors[i]$_ftb_groups[i]$'\033[00m'
    tmp='' && len=0
  else
    tmp+=$group_colors[i]${(r:$mlen:)_ftb_groups[i]}$'\033[00m'
    len+=$mlen
  fi
done
(( $#tmp )) && _ftb_headers+=$tmp
 |