Warning, /frameworks/syntax-highlighting/autotests/folding/highlight.lhs.fold is written in an unsupported language. File is not indexed.

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