diff options
Diffstat (limited to 'kate/tests/highlight.sh')
-rw-r--r-- | kate/tests/highlight.sh | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/kate/tests/highlight.sh b/kate/tests/highlight.sh new file mode 100644 index 000000000..bdac6e4f2 --- /dev/null +++ b/kate/tests/highlight.sh @@ -0,0 +1,198 @@ +#! /bin/sh +# This is a test script for the Katepart Bash Syntax Highlighting by +# Wilbert Berendsen. This is not runnable !!! + + +# The highlighting recognizes basic types of input, and has a few special cases that +# are all in FindCommands. The main objective is to create really proper nesting of +# (multiline) strings, variables, expressions, etc. + + + +# ============== Tests: =============== + +# basic types: +echo 'single quoted string' +echo "double quoted string" +echo $'string with esc\apes\x0din it' +echo $"string meant to be translated" + + +# comments: +# this is a comment +#this too +echo this is#nt a comment +dcop kate EditInterface#1 #this is + + +# brace expansion +mv my_file.{JPG,jpg} + + +# special characters are escaped: +echo \(output\) \&\| \> \< \" \' \* + + +# variable substitution: +echo $filename.ext +echo $filename_ext +echo ${filename}_ext +echo text${array[$subscript]}.text +echo text${array["string"]}.text +echo ${!prefix*} +echo ${!redir} +echo short are $_, $$, $?, ${@}, etc. +echo ${variable/a/d} +echo ${1:-default} + + +# expression subst: +echo $(( cd << ed + 1 )) + + +# command subst: +echo $(ls -l) +echo `cat myfile` + + +# file subst: +echo $(<$filename) +echo $(</path/to/myfile) + +# process subst: +sort <(show_labels) | sed 's/a/bg' > my_file.txt 2>&1 + + +# All substitutions also work in strings: +echo "subst ${in}side string" 'not $inside this ofcourse' +echo "The result is $(( $a + $b )). Thanks!" +echo "Your homedir contains `ls $HOME |wc -l` files." + + +# Escapes in strings: +p="String \` with \$ escapes \" "; + + +# keywords are black, builtins dark purple and common commands lighter purple +set +exit +login + + +# Other colorings: +error() { + cat /usr/bin/lesspipe.sh + runscript >& redir.bak + exec 3>&4 +} + + +# do - done make code blocks +while [ $p -lt $q ] +do + chown 0644 $file.$p +done + + +# braces as well +run_prog | sort -u | +{ + echo Header + while read a b d + do + echo $a/$b/$c + done + echo Footer +} + + +# Any constructions can be nested: +echo "A long string with $( + if [ $count -gt 100 ] ; then + echo "much" + else + echo "not much" + fi ) substitutions." ; + + +# Even the case construct is correctly folded: +test -f blaat && +( do_something + case $p in + *bak) + do_bak $p + ;; + *) + dont_bak $p + ;; + esac +) # despite the extra parentheses in the case construction. + + +# variable assignments: +DIR=/dev +p=`ls` +LC_ALL="nl" dcop 'kate*' +_VAR=val +ARR=(this is an array) +ARR2=([this]=too [and]="this too") +usage="$0 -- version $VERSION +Multiple lines of output +can be possible." +ANSWER=yes # here 'yes' isn't highlighed as command + + +# Some commands expect variable names, these are colored correctly: +export PATH=/my/bin:$PATH BLAAT +export A B D +local p=3 x y='\' +read x y z <<< $hallo +unset B +declare -a VAR1 VAR2 && exit +declare less a && b + +# options are recoqnized: +zip -f=file.zip +./configure --destdir=/usr +make destdir=/usr/ + + +# [[ and [ correctly need spaces to be regarded as structure, +# otherwise they are patterns (currently treated as normal text) +if [ "$p" == "" ] ; then + ls /usr/bin/[a-z]* +elif [[ $p == 0 ]] ; then + ls /usr/share/$p +fi + +# Fixed: +ls a[ab]* # dont try to interprete as assignment with subscript (fixed) +a[ab] +a[ab]=sa + + +# Here documents are difficult to catch: +cat > myfile << __EOF__ +You're right, this is definitely no bash code +But ls more $parameters should be expanded. +__EOF__ + + +# quoted: +cat << "EOF" | egrep "this" >&4 # the rest of the line is still considered bash source +You're right, this is definitely no bash code +But ls more $parameters should be expanded. :-> +EOF + + +# indented: +if true +then + cat <<- EOF + Indented text with a $dollar or \$two + EOF +elif [ -d $file ]; then + cat <<- "EOF" + Indented text without a $dollar + EOF +fi |