File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.lhs</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Literate Haskell) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 test file for Haskell syntax highlighting in KDE's Kate
0008 
0009 The test file for literate Haskell can be easily created like this:
0010  cat highlight.hs | sed -e "s|^|> |" -e "s|> -- ||" -e "s|^> $||" > highlight.lhs
0011 You only have to manually edit the multi-line comment below.
0012 
0013 this is a single-line comment
0014 
0015 {- this is a multi-line comment
0016 
0017 Things like "a string" or a 'c' character shouldn't be highlighted in here.
0018 
0019 I could even start a new
0020 one-line comment.
0021 
0022 -}
0023 
0024 a data definition
0025 
0026 <span style="color:#006e28">></span> <span style="font-weight:bold">data</span> <span style="color:#0057ae">Tree</span> a <span style="color:#006e28">=</span> <span style="color:#0057ae">Br</span> (<span style="color:#0057ae">Tree</span> a) (<span style="color:#0057ae">Tree</span> a) <span style="color:#ca60ca">|</span> <span style="color:#0057ae">Leaf</span> a <span style="color:#ca60ca">|</span> <span style="color:#0057ae">Nil</span> <span style="font-weight:bold">deriving</span> (<span style="color:#0057ae">Show</span>, <span style="color:#0057ae">Eq</span>)
0027 
0028 
0029 function definition, "funnyfunction::", "Integer", "Int", "Bool" should be highlighted
0030 
0031 <span style="color:#006e28">></span><span style="color:#006e28"> funnyfunction</span><span style="color:#006e28">::</span>(<span style="color:#0057ae">Tree</span> a)<span style="color:#006e28">=></span>[a]<span style="color:#006e28">-></span><span style="color:#0057ae">Integer</span><span style="color:#006e28">-></span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">Bool</span>
0032 
0033 
0034 strings and chars
0035 first line of function definitions (type declaration) should be highlighted
0036 
0037 <span style="color:#006e28">></span><span style="color:#006e28"> strangefunction</span><span style="color:#006e28">::</span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">String</span>
0038 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">1</span> <span style="color:#006e28">=</span> <span style="color:#bf0303">"hello"</span>
0039 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#bf0303">"what's up"</span>
0040 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">3</span> <span style="color:#006e28">=</span> (strangefunction <span style="color:#b08000">1</span>) <span style="color:#ca60ca">++</span> <span style="color:#bf0303">", "</span> <span style="color:#ca60ca">++</span> (strangefunction <span style="color:#b08000">2</span>)
0041 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">4</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'a'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'b'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'c'</span><span style="color:#ca60ca">:</span><span style="color:#924c9d">'"'</span><span style="color:#ca60ca">:</span>[] <span style="color:#898887">-- will return "abc"</span>
0042 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">5</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'\n'</span><span style="color:#ca60ca">:</span>[]
0043 <span style="color:#006e28">></span> strangefunction <span style="color:#b08000">6</span> <span style="color:#006e28">=</span> <span style="color:#924c9d">'\invalidhaskell'</span><span style="color:#ca60ca">:</span>[]
0044 
0045 function name including the single quote character
0046 and infix operator (`div`)
0047 
0048 <span style="color:#006e28">></span><span style="color:#006e28"> justtesting'</span><span style="color:#006e28">::</span><span style="color:#0057ae">Int</span><span style="color:#006e28">-></span><span style="color:#0057ae">Int</span>
0049 <span style="color:#006e28">></span> justtesting' <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">+</span><span style="color:#b08000">1</span>
0050 <span style="color:#006e28">></span> justtesting' <span style="color:#b08000">9</span> <span style="color:#006e28">=</span> <span style="color:#b08000">7</span> <span style="color:#006e28">`div`</span> <span style="color:#b08000">2</span>
0051 
0052 same definition as above, slightly different function name and a couple more whitespaces
0053 
0054 <span style="color:#006e28">></span><span style="color:#006e28"> justtesting''  </span><span style="color:#006e28">::</span>    <span style="color:#0057ae">Int</span> <span style="color:#006e28">-></span> <span style="color:#0057ae">Int</span>
0055 <span style="color:#006e28">></span> justtesting''   <span style="color:#b08000">2</span> <span style="color:#006e28">=</span> <span style="color:#b08000">3</span>
0056 <span style="color:#006e28">></span> justtesting''  <span style="color:#b08000">9</span>    <span style="color:#006e28">=</span>   <span style="color:#b08000">3</span> <span style="color:#ca60ca">+</span> <span style="color:#b08000">9</span> <span style="color:#ca60ca">-</span> <span style="color:#b08000">9</span>
0057 
0058 the following lines are copied out of Haskell's "Prelude.hs"
0059 
0060 <span style="color:#006e28">></span> <span style="font-weight:bold">infixl</span> <span style="color:#b08000">7</span>  <span style="color:#ca60ca">*</span>, <span style="color:#ca60ca">/</span>, <span style="color:#006e28">`quot`</span>, <span style="color:#006e28">`rem`</span>, <span style="color:#006e28">`div`</span>, <span style="color:#006e28">`mod`</span>, <span style="color:#ca60ca">:%</span>, <span style="color:#ca60ca">%</span>
0061 
0062 
0063 everything highlighted except the "a"
0064 
0065 <span style="color:#006e28">></span> <span style="font-weight:bold">class</span> <span style="color:#0057ae">Bounded</span> a <span style="font-weight:bold">where</span>
0066 <span style="color:#006e28">></span>     <span style="color:#644a9b">minBound</span>,<span style="color:#006e28"> maxBound </span><span style="color:#006e28">::</span> a
0067 
0068 <span style="color:#006e28">></span> <span style="font-weight:bold">class</span> (<span style="color:#0057ae">Num</span> a, <span style="color:#0057ae">Ord</span> a) <span style="color:#006e28">=></span> <span style="color:#0057ae">Real</span> a <span style="font-weight:bold">where</span>
0069 <span style="color:#006e28">></span><span style="color:#006e28">     toRational     </span><span style="color:#006e28">::</span> a <span style="color:#006e28">-></span> <span style="color:#0057ae">Rational</span>
0070 
0071 finally, some keyword lists
0072 
0073 keywords
0074 
0075 <span style="color:#006e28">></span> <span style="font-weight:bold">case</span>, <span style="font-weight:bold">class</span>, <span style="font-weight:bold">data</span>, <span style="font-weight:bold">deriving</span>, <span style="font-weight:bold">do</span>, <span style="font-weight:bold">else</span>, <span style="font-weight:bold">if</span>, <span style="font-weight:bold">in</span>, <span style="font-weight:bold">infixl</span>, <span style="font-weight:bold">infixr</span>, <span style="font-weight:bold">instance</span>, <span style="font-weight:bold">let</span>, <span style="font-weight:bold">module</span>, <span style="font-weight:bold">of</span>, <span style="font-weight:bold">primitive</span>,
0076 <span style="color:#006e28">></span> <span style="font-weight:bold">then</span>, <span style="font-weight:bold">type</span>, <span style="font-weight:bold">where</span>
0077 
0078 infix operators
0079 
0080 <span style="color:#006e28">></span> <span style="color:#644a9b">quot</span>, <span style="color:#644a9b">rem</span>, <span style="color:#644a9b">div</span>, <span style="color:#644a9b">mod</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">notElem</span>, <span style="color:#644a9b">seq</span>
0081 
0082 this stuff is not handled yet
0083 
0084 <span style="color:#006e28">></span> <span style="color:#ca60ca">!!</span>, <span style="color:#ca60ca">%</span>, <span style="color:#ca60ca">&amp;&amp;</span>, <span style="color:#ca60ca">$!</span>, <span style="color:#ca60ca">$</span>, <span style="color:#ca60ca">*</span>, <span style="color:#ca60ca">**</span>, <span style="color:#ca60ca">-</span>,<span style="color:#ca60ca">.</span>, <span style="color:#ca60ca">/=</span>, <span style="color:#ca60ca">&lt;</span>, <span style="color:#ca60ca">&lt;=</span>, <span style="color:#ca60ca">=&lt;&lt;</span>, <span style="color:#ca60ca">==</span>, <span style="color:#ca60ca">></span>, <span style="color:#ca60ca">>=</span>, <span style="color:#ca60ca">>></span>, <span style="color:#ca60ca">>>=</span>, <span style="color:#ca60ca">^</span>, <span style="color:#ca60ca">^^</span>, <span style="color:#ca60ca">++</span>, <span style="color:#ca60ca">||</span>
0085 
0086 functions
0087 
0088 <span style="color:#006e28">></span> <span style="color:#0057ae">FilePath</span>, <span style="color:#0057ae">IOError</span>, <span style="color:#644a9b">abs</span>, <span style="color:#644a9b">acos</span>, <span style="color:#644a9b">acosh</span>, <span style="color:#644a9b">all</span>, <span style="color:#644a9b">and</span>, <span style="color:#644a9b">any</span>, <span style="color:#644a9b">appendFile</span>,
0089 <span style="color:#006e28">></span> <span style="color:#644a9b">approxRational</span>, <span style="color:#644a9b">asTypeOf</span>, <span style="color:#644a9b">asin</span>, <span style="color:#644a9b">asinh</span>, <span style="color:#644a9b">atan</span>, <span style="color:#644a9b">atan2</span>, <span style="color:#644a9b">atanh</span>, <span style="color:#644a9b">basicIORun</span>,
0090 <span style="color:#006e28">></span> <span style="color:#644a9b">break</span>, <span style="color:#644a9b">catch</span>, <span style="color:#644a9b">ceiling</span>, <span style="color:#644a9b">chr</span>, <span style="color:#644a9b">compare</span>, <span style="color:#644a9b">concat</span>, <span style="color:#644a9b">concatMap</span>, <span style="color:#644a9b">const</span>, <span style="color:#644a9b">cos</span>, <span style="color:#644a9b">cosh</span>,
0091 <span style="color:#006e28">></span> <span style="color:#644a9b">curry</span>, <span style="color:#644a9b">cycle</span>, <span style="color:#644a9b">decodeFloat</span>, <span style="color:#644a9b">denominator</span>, <span style="color:#644a9b">digitToInt</span>, <span style="color:#644a9b">div</span>, <span style="color:#644a9b">divMod</span>, <span style="color:#644a9b">drop</span>,
0092 <span style="color:#006e28">></span> <span style="color:#644a9b">dropWhile</span>, <span style="color:#644a9b">either</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">encodeFloat</span>, <span style="color:#644a9b">enumFrom</span>, <span style="color:#644a9b">enumFromThen</span>,
0093 <span style="color:#006e28">></span> <span style="color:#644a9b">enumFromThenTo</span>, <span style="color:#644a9b">enumFromTo</span>, <span style="color:#644a9b">error</span>, <span style="color:#644a9b">even</span>, <span style="color:#644a9b">exp</span>, <span style="color:#644a9b">exponent</span>, <span style="color:#644a9b">fail</span>, <span style="color:#644a9b">filter</span>, <span style="color:#644a9b">flip</span>,
0094 <span style="color:#006e28">></span> <span style="color:#644a9b">floatDigits</span>, <span style="color:#644a9b">floatRadix</span>, <span style="color:#644a9b">floatRange</span>, <span style="color:#644a9b">floor</span>, <span style="color:#644a9b">fmap</span>, <span style="color:#644a9b">foldl</span>, <span style="color:#644a9b">foldl1</span>, <span style="color:#644a9b">foldr</span>,
0095 <span style="color:#006e28">></span> <span style="color:#644a9b">foldr1</span>, <span style="color:#644a9b">fromDouble</span>, <span style="color:#644a9b">fromEnum</span>, <span style="color:#644a9b">fromInt</span>, <span style="color:#644a9b">fromInteger</span>, <span style="color:#644a9b">fromIntegral</span>,
0096 <span style="color:#006e28">></span> <span style="color:#644a9b">fromRational</span>, <span style="color:#644a9b">fst</span>, <span style="color:#644a9b">gcd</span>, <span style="color:#644a9b">getChar</span>, <span style="color:#644a9b">getContents</span>, <span style="color:#644a9b">getLine</span>, <span style="color:#644a9b">head</span>, <span style="color:#644a9b">id</span>, <span style="color:#644a9b">inRange</span>,
0097 <span style="color:#006e28">></span> <span style="color:#644a9b">index</span>, <span style="color:#644a9b">init</span>, <span style="color:#644a9b">intToDigit</span>, <span style="color:#644a9b">interact</span>, <span style="color:#644a9b">ioError</span>, <span style="color:#644a9b">isAlpha</span>, <span style="color:#644a9b">isAlphaNum</span>, <span style="color:#644a9b">isAscii</span>,
0098 <span style="color:#006e28">></span> <span style="color:#644a9b">isControl</span>, <span style="color:#644a9b">isDenormalized</span>, <span style="color:#644a9b">isDigit</span>, <span style="color:#644a9b">isHexDigit</span>, <span style="color:#644a9b">isIEEE</span>, <span style="color:#644a9b">isInfinite</span>, <span style="color:#644a9b">isLower</span>,
0099 <span style="color:#006e28">></span> <span style="color:#644a9b">isNaN</span>, <span style="color:#644a9b">isNegativeZero</span>, <span style="color:#644a9b">isOctDigit</span>, <span style="color:#644a9b">isPrint</span>, <span style="color:#644a9b">isSpace</span>, <span style="color:#644a9b">isUpper</span>, <span style="color:#644a9b">iterate</span>, <span style="color:#644a9b">last</span>,
0100 <span style="color:#006e28">></span> <span style="color:#644a9b">lcm</span>, <span style="color:#644a9b">length</span>, <span style="color:#644a9b">lex</span>, <span style="color:#644a9b">lexDigits</span>, <span style="color:#644a9b">lexLitChar</span>, <span style="color:#644a9b">lines</span>, <span style="color:#644a9b">log</span>, <span style="color:#644a9b">logBase</span>, <span style="color:#644a9b">lookup</span>, <span style="color:#644a9b">map</span>,
0101 <span style="color:#006e28">></span> <span style="color:#644a9b">mapM</span>, <span style="color:#644a9b">mapM_</span>, <span style="color:#644a9b">max</span>, <span style="color:#644a9b">maxBound</span>, <span style="color:#644a9b">maximum</span>, <span style="color:#644a9b">maybe</span>, <span style="color:#644a9b">min</span>, <span style="color:#644a9b">minBound</span>, <span style="color:#644a9b">minimum</span>, <span style="color:#644a9b">mod</span>,
0102 <span style="color:#006e28">></span> <span style="color:#644a9b">negate</span>, <span style="color:#644a9b">not</span>, <span style="color:#644a9b">notElem</span>, <span style="color:#644a9b">null</span>, <span style="color:#644a9b">numerator</span>, <span style="color:#644a9b">odd</span>, <span style="color:#644a9b">or</span>, <span style="color:#644a9b">ord</span>, <span style="color:#644a9b">otherwise</span>, <span style="color:#644a9b">pi</span>, <span style="color:#644a9b">pred</span>,
0103 <span style="color:#006e28">></span> <span style="color:#644a9b">primExitWith</span>, <span style="color:#644a9b">print</span>, <span style="color:#644a9b">product</span>, <span style="color:#644a9b">properFraction</span>, <span style="color:#644a9b">putChar</span>, <span style="color:#644a9b">putStr</span>, <span style="color:#644a9b">putStrLn</span>,
0104 <span style="color:#006e28">></span> <span style="color:#644a9b">quot</span>, <span style="color:#644a9b">quotRem</span>, <span style="color:#644a9b">range</span>, <span style="color:#644a9b">rangeSize</span>, <span style="color:#644a9b">read</span>, <span style="color:#644a9b">readDec</span>, <span style="color:#644a9b">readFile</span>, <span style="color:#644a9b">readFloat</span>,
0105 <span style="color:#006e28">></span> <span style="color:#644a9b">readHex</span>, <span style="color:#644a9b">readIO</span>, <span style="color:#644a9b">readInt</span>, <span style="color:#644a9b">readList</span>, <span style="color:#644a9b">readLitChar</span>, <span style="color:#644a9b">readLn</span>, <span style="color:#644a9b">readOct</span>, <span style="color:#644a9b">readParen</span>,
0106 <span style="color:#006e28">></span> <span style="color:#644a9b">readSigned</span>, <span style="color:#644a9b">reads</span>, <span style="color:#644a9b">readsPrec</span>, <span style="color:#644a9b">realToFrac</span>, <span style="color:#644a9b">recip</span>, <span style="color:#644a9b">rem</span>, <span style="color:#644a9b">repeat</span>, <span style="color:#644a9b">replicate</span>,
0107 <span style="color:#006e28">></span> <span style="color:#644a9b">return</span>, <span style="color:#644a9b">reverse</span>, <span style="color:#644a9b">round</span>, <span style="color:#644a9b">scaleFloat</span>, <span style="color:#644a9b">scanl</span>, <span style="color:#644a9b">scanl1</span>, <span style="color:#644a9b">scanr</span>, <span style="color:#644a9b">scanr1</span>, <span style="color:#644a9b">seq</span>,
0108 <span style="color:#006e28">></span> <span style="color:#644a9b">sequence</span>, <span style="color:#644a9b">sequence_</span>, <span style="color:#644a9b">show</span>, <span style="color:#644a9b">showChar</span>, <span style="color:#644a9b">showInt</span>, <span style="color:#644a9b">showList</span>, <span style="color:#644a9b">showLitChar</span>,
0109 <span style="color:#006e28">></span> <span style="color:#644a9b">showParen</span>, <span style="color:#644a9b">showSigned</span>, <span style="color:#644a9b">showString</span>, <span style="color:#644a9b">shows</span>, <span style="color:#644a9b">showsPrec</span>, <span style="color:#644a9b">significand</span>, <span style="color:#644a9b">signum</span>,
0110 <span style="color:#006e28">></span> <span style="color:#644a9b">sin</span>, <span style="color:#644a9b">sinh</span>, <span style="color:#644a9b">snd</span>, <span style="color:#644a9b">span</span>, <span style="color:#644a9b">splitAt</span>, <span style="color:#644a9b">sqrt</span>, <span style="color:#644a9b">subtract</span>, <span style="color:#644a9b">succ</span>, <span style="color:#644a9b">sum</span>, <span style="color:#644a9b">tail</span>, <span style="color:#644a9b">take</span>,
0111 <span style="color:#006e28">></span> <span style="color:#644a9b">either</span>, <span style="color:#644a9b">elem</span>, <span style="color:#644a9b">encodeFloat</span>, <span style="color:#644a9b">enumFrom</span>, <span style="color:#644a9b">enumFromThen</span>, <span style="color:#644a9b">enumFromThenTo</span>,
0112 <span style="color:#006e28">></span> <span style="color:#644a9b">enumFromTo</span>, <span style="color:#644a9b">error</span>, <span style="color:#644a9b">even</span>, <span style="color:#644a9b">exp</span>, <span style="color:#644a9b">exponent</span>, <span style="color:#644a9b">fail</span>, <span style="color:#644a9b">filter</span>, <span style="color:#644a9b">flip</span>, <span style="color:#644a9b">floatDigits</span>,
0113 <span style="color:#006e28">></span> <span style="color:#644a9b">floatRadix</span>, <span style="color:#644a9b">floatRange</span>, <span style="color:#644a9b">floor</span>, <span style="color:#644a9b">fmap</span>, <span style="color:#644a9b">takeWhile</span>, <span style="color:#644a9b">tan</span>, <span style="color:#644a9b">tanh</span>, <span style="color:#644a9b">threadToIOResult</span>,
0114 <span style="color:#006e28">></span> <span style="color:#644a9b">toEnum</span>, <span style="color:#644a9b">toInt</span>, <span style="color:#644a9b">toInteger</span>, <span style="color:#644a9b">toLower</span>, <span style="color:#644a9b">toRational</span>, <span style="color:#644a9b">toUpper</span>, <span style="color:#644a9b">truncate</span>, <span style="color:#644a9b">uncurry</span>,
0115 <span style="color:#006e28">></span> <span style="color:#644a9b">undefined</span>, <span style="color:#644a9b">unlines</span>, <span style="color:#644a9b">until</span>, <span style="color:#644a9b">unwords</span>, <span style="color:#644a9b">unzip</span>, <span style="color:#644a9b">unzip3</span>, <span style="color:#644a9b">userError</span>, <span style="color:#644a9b">words</span>,
0116 <span style="color:#006e28">></span> <span style="color:#644a9b">writeFile</span>, <span style="color:#644a9b">zip</span>, <span style="color:#644a9b">zip3</span>, <span style="color:#644a9b">zipWith</span>, <span style="color:#644a9b">zipWith3</span>
0117 
0118 type constructors
0119 
0120 <span style="color:#006e28">></span> <span style="color:#0057ae">Bool</span>, <span style="color:#0057ae">Char</span>, <span style="color:#0057ae">Double</span>, <span style="color:#0057ae">Either</span>, <span style="color:#0057ae">Float</span>, <span style="color:#0057ae">IO</span>, <span style="color:#0057ae">Integer</span>, <span style="color:#0057ae">Int</span>, <span style="color:#0057ae">Maybe</span>, <span style="color:#0057ae">Ordering</span>, <span style="color:#0057ae">Rational</span>, <span style="color:#0057ae">Ratio</span>, <span style="color:#0057ae">ReadS</span>,
0121 <span style="color:#006e28">></span> <span style="color:#0057ae">ShowS</span>, <span style="color:#0057ae">String</span>
0122 
0123 classes
0124 
0125 <span style="color:#006e28">></span> <span style="color:#0057ae">Bounded</span>, <span style="color:#0057ae">Enum</span>, <span style="color:#0057ae">Eq</span>, <span style="color:#0057ae">Floating</span>, <span style="color:#0057ae">Fractional</span>, <span style="color:#0057ae">Functor</span>, <span style="color:#0057ae">Integral</span>, <span style="color:#0057ae">Ix</span>, <span style="color:#0057ae">Monad</span>, <span style="color:#0057ae">Num</span>, <span style="color:#0057ae">Ord</span>, <span style="color:#0057ae">Read</span>, <span style="color:#0057ae">RealFloat</span>,
0126 <span style="color:#006e28">></span> <span style="color:#0057ae">RealFrac</span>, <span style="color:#0057ae">Real</span>, <span style="color:#0057ae">Show</span>
0127 
0128 data constructors
0129 
0130 <span style="color:#006e28">></span> <span style="color:#0057ae">EQ</span>, <span style="color:#0057ae">False</span>, <span style="color:#0057ae">GT</span>, <span style="color:#0057ae">Just</span>, <span style="color:#0057ae">LT</span>, <span style="color:#0057ae">Left</span>, <span style="color:#0057ae">Nothing</span>, <span style="color:#0057ae">Right</span>, <span style="color:#0057ae">True</span>
0131 </pre></body></html>