258ea7e07233ad6947f5e8718a3d63929da3e748
[grml-etc-core.git] / usr_share_grml / zsh / functions / hl
1 # hl() highlighted less
2 emulate -L zsh
3
4 local theme lang
5 theme=${HL_THEME:-""}
6 case ${1} in
7 (-l|--list)
8     ( printf 'available languages (syntax parameter):\n\n' ;
9         highlight --list-langs ; ) | less -SMr
10     ;;
11 (-t|--themes)
12     ( printf 'available themes (style parameter):\n\n' ;
13         highlight --list-themes ; ) | less -SMr
14     ;;
15 (-h|--help)
16     printf 'usage: hl <syntax[:theme]> <file>\n'
17     printf '    available options: --list (-l), --themes (-t), --help (-h)\n\n'
18     printf '  Example: hl c main.c\n'
19     ;;
20 (*)
21     if [[ -z ${2} ]] || (( ${#argv} > 2 )) ; then
22         printf 'usage: hl <syntax[:theme]> <file>\n'
23         printf '    available options: --list (-l), --themes (-t), --help (-h)\n'
24         (( ${#argv} > 2 )) && printf '  Too many arguments.\n'
25         return 1
26     fi
27     lang=${1%:*}
28     [[ ${1} == *:* ]] && [[ -n ${1#*:} ]] && theme=${1#*:}
29     if [[ -n ${theme} ]] ; then
30         highlight -O xterm256 --syntax ${lang} --style ${theme} ${2} | less -SMr
31     else
32         highlight -O ansi --syntax ${lang} ${2} | less -SMr
33     fi
34     ;;
35 esac
36 return 0