You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.4 KiB
125 lines
4.4 KiB
test file for Haskell syntax highlighting in KDE's Kate
|
|
|
|
The test file for literate Haskell can be easily created like this:
|
|
cat highlight.hs | sed -e "s|^|> |" -e "s|> -- ||" -e "s|^> $||" > highlight.lhs
|
|
You only have to manually edit the multi-line comment below.
|
|
|
|
this is a single-line comment
|
|
|
|
{- this is a multi-line comment
|
|
|
|
Things like "a string" or a 'c' character shouldn't be highlighted in here.
|
|
|
|
I could even start a new
|
|
one-line comment.
|
|
|
|
-}
|
|
|
|
a data definition
|
|
|
|
> data Tree a = Br (Tree a) (Tree a) | Leaf a | Nil deriving (Show, Eq)
|
|
|
|
|
|
function definition, "funnyfunction::", "Integer", "Int", "Bool" should be highlighted
|
|
|
|
> funnyfunction::(Tree a)=>[a]->Integer->Int->Bool
|
|
|
|
|
|
strings and chars
|
|
first line of function definitions (type declaration) should be highlighted
|
|
|
|
> strangefunction::Int->String
|
|
> strangefunction 1 = "hello"
|
|
> strangefunction 2 = "what's up"
|
|
> strangefunction 3 = (strangefunction 1) ++ ", " ++ (strangefunction 2)
|
|
> strangefunction 4 = 'a':'b':'c':'"':[] -- will return "abc"
|
|
> strangefunction 5 = '\n':[]
|
|
> strangefunction 6 = '\invalidhaskell':[]
|
|
|
|
function name including the single quote character
|
|
and infix operator (`div`)
|
|
|
|
> justtesting'::Int->Int
|
|
> justtesting' 2 = 2+1
|
|
> justtesting' 9 = 7 `div` 2
|
|
|
|
same definition as above, slightly different function name and a couple more whitespaces
|
|
|
|
> justtesting'' :: Int -> Int
|
|
> justtesting'' 2 = 3
|
|
> justtesting'' 9 = 3 + 9 - 9
|
|
|
|
the following lines are copied out of Haskell's "Prelude.hs"
|
|
|
|
> infixl 7 *, /, `quot`, `rem`, `div`, `mod`, :%, %
|
|
|
|
|
|
everything highlighted except the "a"
|
|
|
|
> class Bounded a where
|
|
> minBound, maxBound :: a
|
|
|
|
> class (Num a, Ord a) => Real a where
|
|
> toRational :: a -> Rational
|
|
|
|
finally, some keyword lists
|
|
|
|
keywords
|
|
|
|
> case, class, data, deriving, do, else, if, in, infixl, infixr, instance, let, module, of, primitive,
|
|
> then, type, where
|
|
|
|
infix operators
|
|
|
|
> quot, rem, div, mod, elem, notElem, seq
|
|
|
|
this stuff is not handled yet
|
|
|
|
> !!, %, &&, $!, $, *, **, -,., /=, <, <=, =<<, ==, >, >=, >>, >>=, ^, ^^, ++, ||
|
|
|
|
functions
|
|
|
|
> FilePath, IOError, abs, acos, acosh, all, and, any, appendFile,
|
|
> approxRational, asTypeOf, asin, asinh, atan, atan2, atanh, basicIORun,
|
|
> break, catch, ceiling, chr, compare, concat, concatMap, const, cos, cosh,
|
|
> curry, cycle, decodeFloat, denominator, digitToInt, div, divMod, drop,
|
|
> dropWhile, either, elem, encodeFloat, enumFrom, enumFromThen,
|
|
> enumFromThenTo, enumFromTo, error, even, exp, exponent, fail, filter, flip,
|
|
> floatDigits, floatRadix, floatRange, floor, fmap, foldl, foldl1, foldr,
|
|
> foldr1, fromDouble, fromEnum, fromInt, fromInteger, fromIntegral,
|
|
> fromRational, fst, gcd, getChar, getContents, getLine, head, id, inRange,
|
|
> index, init, intToDigit, interact, ioError, isAlpha, isAlphaNum, isAscii,
|
|
> isControl, isDenormalized, isDigit, isHexDigit, isIEEE, isInfinite, isLower,
|
|
> isNaN, isNegativeZero, isOctDigit, isPrint, isSpace, isUpper, iterate, last,
|
|
> lcm, length, lex, lexDigits, lexLitChar, lines, log, logBase, lookup, map,
|
|
> mapM, mapM_, max, maxBound, maximum, maybe, min, minBound, minimum, mod,
|
|
> negate, not, notElem, null, numerator, odd, or, ord, otherwise, pi, pred,
|
|
> primExitWith, print, product, properFraction, putChar, putStr, putStrLn,
|
|
> quot, quotRem, range, rangeSize, read, readDec, readFile, readFloat,
|
|
> readHex, readIO, readInt, readList, readLitChar, readLn, readOct, readParen,
|
|
> readSigned, reads, readsPrec, realToFrac, recip, rem, repeat, replicate,
|
|
> return, reverse, round, scaleFloat, scanl, scanl1, scanr, scanr1, seq,
|
|
> sequence, sequence_, show, showChar, showInt, showList, showLitChar,
|
|
> showParen, showSigned, showString, shows, showsPrec, significand, signum,
|
|
> sin, sinh, snd, span, splitAt, sqrt, subtract, succ, sum, tail, take,
|
|
> either, elem, encodeFloat, enumFrom, enumFromThen, enumFromThenTo,
|
|
> enumFromTo, error, even, exp, exponent, fail, filter, flip, floatDigits,
|
|
> floatRadix, floatRange, floor, fmap, takeWhile, tan, tanh, threadToIOResult,
|
|
> toEnum, toInt, toInteger, toLower, toRational, toUpper, truncate, uncurry,
|
|
> undefined, unlines, until, unwords, unzip, unzip3, userError, words,
|
|
> writeFile, zip, zip3, zipWith, zipWith3
|
|
|
|
type constructors
|
|
|
|
> Bool, Char, Double, Either, Float, IO, Integer, Int, Maybe, Ordering, Rational, Ratio, ReadS,
|
|
> ShowS, String
|
|
|
|
classes
|
|
|
|
> Bounded, Enum, Eq, Floating, Fractional, Functor, Integral, Ix, Monad, Num, Ord, Read, RealFloat,
|
|
> RealFrac, Real, Show
|
|
|
|
data constructors
|
|
|
|
> EQ, False, GT, Just, LT, Left, Nothing, Right, True
|