<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<head>
<style>.content {
padding: 20px;
height: 100%;
width: 944px;
margin-left: auto;
margin-right: auto;
}
.fold {
width: 20px;
float: left;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.number {
width: 45px;
float: left;
margin-right: 10px;
text-align: right;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line {
}
.content {
font-family: "Monospace";
font-size: 1em;
background: #3f3f3f;
color: White;
width: 944px;
padding: 20px;
height: 100%;
margin-left: auto;
margin-right: auto;
}
font.Alert {
color: Yellow;
font-weight: bold;
}
font.Annotation {
color: Yellow;
font-style: italic;
}
font.Attribute {
color: LightPink;
}
font.BaseN {
color: Gold;
}
font.BuiltIn {
color: Coral;
}
font.Char {
color: Cyan;
}
font.Comment {
color: Beige;
font-style: italic;
}
font.CommentVar {
color: LightBlue;
font-style: italic;
}
font.Constant {
color: White;
font-weight: bold;
}
font.ControlFlow {
color: DeepPink;
}
font.DataType {
color: CadetBlue;
}
font.DecVal {
color: MediumPurple;
font-weight: bold;
}
font.Documentation {
color: Gold;
font-style: italic;
}
font.Error {
color: Red;
font-weight: bold;
}
font.Extension {
color: DarkGray;
font-weight: bold;
}
font.Float {
color: DarkViolet;
font-weight: bold;
}
font.Function {
color: RosyBrown;
}
font.Import {
color: PaleVioletRed;
}
font.Information {
color: LightGreen;
font-style: italic;
}
font.Keyword {
color: LightGreen;
font-weight: bold;
}
font.Normal {
color: White;
}
font.Operator {
color: Magenta;
}
font.Others {
color: GreenYellow;
}
font.Preprocessor {
color: DarkSeaGreen ;
font-weight: bold;
}
font.RegionMarker {
color: Plum;
}
font.SpecialChar {
color: Plum;
font-weight: bold;
}
font.SpecialString {
color: LightBlue;
}
font.String {
color: MediumAquaMarine;
}
font.Variable {
color: Turquoise;
font-weight: bold;
}
font.VerbatimString {
color: LightSkyBlue;
}
font.Warning {
color: Brown;
font-weight: bold;
}
</style>
<title>Kamelon output</title>
</head>
<body>
<div class="content">
<div id="1" class="line"><font class="Normal">-- test file for Haskell syntax highlighting in KDE's Kate</font></br></div>
<div id="2" class="line"></br></div>
<div id="3" class="line"><font class="Normal">-- The test file for literate Haskell can be easily created like this:</font></br></div>
<div id="4" class="line"><font class="Normal">-- cat highlight.hs | sed -e "s|^|> |" -e "s|> -- ||" -e "s|^> $||" > highlight.lhs</font></br></div>
<div id="5" class="line"><font class="Normal">-- You only have to manually edit the multi-line comment below.</font></br></div>
<div id="6" class="line"></br></div>
<div id="7" class="line"><font class="Normal">-- this is a single-line comment</font></br></div>
<div id="8" class="line"></br></div>
<div id="9" class="line"><font class="Normal">{- this is a multi-line comment</font></br></div>
<div id="10" class="line"></br></div>
<div id="11" class="line"><font class="Normal">Things like "a string" or a 'c' character shouldn't be highlighted in here.</font></br></div>
<div id="12" class="line"></br></div>
<div id="13" class="line"><font class="Normal">-- I could even start a new</font></br></div>
<div id="14" class="line"><font class="Normal">-- one-line comment.</font></br></div>
<div id="15" class="line"></br></div>
<div id="16" class="line"><font class="Normal">-}</font></br></div>
<div id="17" class="line"></br></div>
<div id="18" class="line"><font class="Normal">-- a data definition</font></br></div>
<div id="19" class="line"></br></div>
<div id="20" class="line"><font class="Normal">data Tree a = Br (Tree a) (Tree a) | Leaf a | Nil deriving (Show, Eq)</font></br></div>
<div id="21" class="line"></br></div>
<div id="22" class="line"></br></div>
<div id="23" class="line"><font class="Normal">-- function definition, "funnyfunction::", "Integer", "Int", "Bool" should be highlighted</font></br></div>
<div id="24" class="line"></br></div>
<div id="25" class="line"><font class="Normal">funnyfunction::(Tree a)=>[a]->Integer->Int->Bool</font></br></div>
<div id="26" class="line"></br></div>
<div id="27" class="line"></br></div>
<div id="28" class="line"><font class="Normal">-- strings and chars</font></br></div>
<div id="29" class="line"><font class="Normal">-- first line of function definitions (type declaration) should be highlighted</font></br></div>
<div id="30" class="line"></br></div>
<div id="31" class="line"><font class="Normal">strangefunction::Int->String</font></br></div>
<div id="32" class="line"><font class="Normal">strangefunction 1 = "hello"</font></br></div>
<div id="33" class="line"><font class="Normal">strangefunction 2 = "what's up"</font></br></div>
<div id="34" class="line"><font class="Normal">strangefunction 3 = (strangefunction 1) ++ ", " ++ (strangefunction 2)</font></br></div>
<div id="35" class="line"><font class="Normal">strangefunction 4 = 'a':'b':'c':'"':[] -- will return "abc"</font></br></div>
<div id="36" class="line"><font class="Normal">strangefunction 5 = '\n':[]</font></br></div>
<div id="37" class="line"><font class="Normal">strangefunction 6 = '\invalidhaskell':[]</font></br></div>
<div id="38" class="line"></br></div>
<div id="39" class="line"><font class="Normal">-- function name including the single quote character</font></br></div>
<div id="40" class="line"><font class="Normal">-- and infix operator (`div`)</font></br></div>
<div id="41" class="line"></br></div>
<div id="42" class="line"><font class="Normal">justtesting'::Int->Int</font></br></div>
<div id="43" class="line"><font class="Normal">justtesting' 2 = 2+1</font></br></div>
<div id="44" class="line"><font class="Normal">justtesting' 9 = 7 `div` 2</font></br></div>
<div id="45" class="line"></br></div>
<div id="46" class="line"><font class="Normal">-- same definition as above, slightly different function name and a couple more whitespaces</font></br></div>
<div id="47" class="line"></br></div>
<div id="48" class="line"><font class="Normal">justtesting'' :: Int -> Int</font></br></div>
<div id="49" class="line"><font class="Normal">justtesting'' 2 = 3</font></br></div>
<div id="50" class="line"><font class="Normal">justtesting'' 9 = 3 + 9 - 9</font></br></div>
<div id="51" class="line"></br></div>
<div id="52" class="line"><font class="Normal">-- the following lines are copied out of Haskell's "Prelude.hs"</font></br></div>
<div id="53" class="line"></br></div>
<div id="54" class="line"><font class="Normal">infixl 7 *, /, `quot`, `rem`, `div`, `mod`, :%, %</font></br></div>
<div id="55" class="line"></br></div>
<div id="56" class="line"></br></div>
<div id="57" class="line"><font class="Normal">-- everything highlighted except the "a"</font></br></div>
<div id="58" class="line"></br></div>
<div id="59" class="line"><font class="Normal">class Bounded a where</font></br></div>
<div id="60" class="line"><font class="Normal"> minBound, maxBound :: a</font></br></div>
<div id="61" class="line"></br></div>
<div id="62" class="line"><font class="Normal">class (Num a, Ord a) => Real a where</font></br></div>
<div id="63" class="line"><font class="Normal"> toRational :: a -> Rational</font></br></div>
<div id="64" class="line"></br></div>
<div id="65" class="line"><font class="Normal">-- finally, some keyword lists</font></br></div>
<div id="66" class="line"></br></div>
<div id="67" class="line"><font class="Normal">-- keywords</font></br></div>
<div id="68" class="line"></br></div>
<div id="69" class="line"><font class="Normal">case, class, data, deriving, do, else, if, in, infixl, infixr, instance, let, module, of, primitive,</font></br></div>
<div id="70" class="line"><font class="Normal">then, type, where</font></br></div>
<div id="71" class="line"></br></div>
<div id="72" class="line"><font class="Normal">-- infix operators</font></br></div>
<div id="73" class="line"></br></div>
<div id="74" class="line"><font class="Normal">quot, rem, div, mod, elem, notElem, seq</font></br></div>
<div id="75" class="line"></br></div>
<div id="76" class="line"><font class="Normal">-- this stuff is not handled yet</font></br></div>
<div id="77" class="line"></br></div>
<div id="78" class="line"><font class="Normal">!!, %, &&, $!, $, *, **, -,., /=, <, <=, =<<, ==, >, >=, >>, >>=, ^, ^^, ++, ||</font></br></div>
<div id="79" class="line"></br></div>
<div id="80" class="line"><font class="Normal">-- functions</font></br></div>
<div id="81" class="line"></br></div>
<div id="82" class="line"><font class="Normal">FilePath, IOError, abs, acos, acosh, all, and, any, appendFile,</font></br></div>
<div id="83" class="line"><font class="Normal">approxRational, asTypeOf, asin, asinh, atan, atan2, atanh, basicIORun,</font></br></div>
<div id="84" class="line"><font class="Normal">break, catch, ceiling, chr, compare, concat, concatMap, const, cos, cosh,</font></br></div>
<div id="85" class="line"><font class="Normal">curry, cycle, decodeFloat, denominator, digitToInt, div, divMod, drop,</font></br></div>
<div id="86" class="line"><font class="Normal">dropWhile, either, elem, encodeFloat, enumFrom, enumFromThen,</font></br></div>
<div id="87" class="line"><font class="Normal">enumFromThenTo, enumFromTo, error, even, exp, exponent, fail, filter, flip,</font></br></div>
<div id="88" class="line"><font class="Normal">floatDigits, floatRadix, floatRange, floor, fmap, foldl, foldl1, foldr,</font></br></div>
<div id="89" class="line"><font class="Normal">foldr1, fromDouble, fromEnum, fromInt, fromInteger, fromIntegral,</font></br></div>
<div id="90" class="line"><font class="Normal">fromRational, fst, gcd, getChar, getContents, getLine, head, id, inRange,</font></br></div>
<div id="91" class="line"><font class="Normal">index, init, intToDigit, interact, ioError, isAlpha, isAlphaNum, isAscii,</font></br></div>
<div id="92" class="line"><font class="Normal">isControl, isDenormalized, isDigit, isHexDigit, isIEEE, isInfinite, isLower,</font></br></div>
<div id="93" class="line"><font class="Normal">isNaN, isNegativeZero, isOctDigit, isPrint, isSpace, isUpper, iterate, last,</font></br></div>
<div id="94" class="line"><font class="Normal">lcm, length, lex, lexDigits, lexLitChar, lines, log, logBase, lookup, map,</font></br></div>
<div id="95" class="line"><font class="Normal">mapM, mapM_, max, maxBound, maximum, maybe, min, minBound, minimum, mod,</font></br></div>
<div id="96" class="line"><font class="Normal">negate, not, notElem, null, numerator, odd, or, ord, otherwise, pi, pred,</font></br></div>
<div id="97" class="line"><font class="Normal">primExitWith, print, product, properFraction, putChar, putStr, putStrLn,</font></br></div>
<div id="98" class="line"><font class="Normal">quot, quotRem, range, rangeSize, read, readDec, readFile, readFloat,</font></br></div>
<div id="99" class="line"><font class="Normal">readHex, readIO, readInt, readList, readLitChar, readLn, readOct, readParen,</font></br></div>
<div id="100" class="line"><font class="Normal">readSigned, reads, readsPrec, realToFrac, recip, rem, repeat, replicate,</font></br></div>
<div id="101" class="line"><font class="Normal">return, reverse, round, scaleFloat, scanl, scanl1, scanr, scanr1, seq,</font></br></div>
<div id="102" class="line"><font class="Normal">sequence, sequence_, show, showChar, showInt, showList, showLitChar,</font></br></div>
<div id="103" class="line"><font class="Normal">showParen, showSigned, showString, shows, showsPrec, significand, signum,</font></br></div>
<div id="104" class="line"><font class="Normal">sin, sinh, snd, span, splitAt, sqrt, subtract, succ, sum, tail, take,</font></br></div>
<div id="105" class="line"><font class="Normal">either, elem, encodeFloat, enumFrom, enumFromThen, enumFromThenTo,</font></br></div>
<div id="106" class="line"><font class="Normal">enumFromTo, error, even, exp, exponent, fail, filter, flip, floatDigits,</font></br></div>
<div id="107" class="line"><font class="Normal">floatRadix, floatRange, floor, fmap, takeWhile, tan, tanh, threadToIOResult,</font></br></div>
<div id="108" class="line"><font class="Normal">toEnum, toInt, toInteger, toLower, toRational, toUpper, truncate, uncurry,</font></br></div>
<div id="109" class="line"><font class="Normal">undefined, unlines, until, unwords, unzip, unzip3, userError, words,</font></br></div>
<div id="110" class="line"><font class="Normal">writeFile, zip, zip3, zipWith, zipWith3</font></br></div>
<div id="111" class="line"></br></div>
<div id="112" class="line"><font class="Normal">-- type constructors</font></br></div>
<div id="113" class="line"></br></div>
<div id="114" class="line"><font class="Normal">Bool, Char, Double, Either, Float, IO, Integer, Int, Maybe, Ordering, Rational, Ratio, ReadS,</font></br></div>
<div id="115" class="line"><font class="Normal">ShowS, String</font></br></div>
<div id="116" class="line"></br></div>
<div id="117" class="line"><font class="Normal">-- classes</font></br></div>
<div id="118" class="line"></br></div>
<div id="119" class="line"><font class="Normal">Bounded, Enum, Eq, Floating, Fractional, Functor, Integral, Ix, Monad, Num, Ord, Read, RealFloat,</font></br></div>
<div id="120" class="line"><font class="Normal">RealFrac, Real, Show</font></br></div>
<div id="121" class="line"></br></div>
<div id="122" class="line"><font class="Normal">-- data constructors</font></br></div>
<div id="123" class="line"></br></div>
<div id="124" class="line"><font class="Normal">EQ, False, GT, Just, LT, Left, Nothing, Right, True</font></br></div>
</div>
</body>
</html>