packages feed

hscolour 1.13 → 1.14

raw patch · 30 files changed

+458/−606 lines, 30 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Language.Haskell.HsColour.Options: Bird :: Literate
- Language.Haskell.HsColour.Options: NoLit :: Literate
- Language.Haskell.HsColour.Options: TeX :: Literate
- Language.Haskell.HsColour.Options: data Literate
- Language.Haskell.HsColour.Options: instance Eq Literate
+ Language.Haskell.HsColour.Colourise: defaultColourPrefs :: ColourPrefs
- Language.Haskell.HsColour: hscolour :: Output -> ColourPrefs -> Bool -> Bool -> Literate -> String -> String -> String
+ Language.Haskell.HsColour: hscolour :: Output -> ColourPrefs -> Bool -> Bool -> String -> Bool -> String -> String
- Language.Haskell.HsColour.Options: LHS :: Literate -> Option
+ Language.Haskell.HsColour.Options: LHS :: Bool -> Option

Files

.hscolour view
@@ -2,7 +2,7 @@   { keyword  = [Underscore,Foreground Green]   , keyglyph = [Foreground Red]   , layout   = [Foreground Cyan]-  , comment  = [Foreground Blue,Italic]+  , comment  = [Foreground Blue]   , conid    = [Normal]   , varid    = [Normal]   , conop    = [Bold,Foreground Red]
HsColour.hs view
@@ -5,12 +5,12 @@ import Language.Haskell.HsColour.Colourise (readColourPrefs) import Language.Haskell.HsColour.Options import System-import IO (hPutStrLn,hFlush,stdout,stderr,hSetBuffering,BufferMode(..))+import IO import Monad (when)-import List  (intersperse)+import List  (intersperse, isSuffixOf) import Debug.Trace -version = "1.13"+version = "1.14"  optionTable :: [(String,Option)] optionTable = [ ("help",    Help)@@ -22,9 +22,9 @@               , ("tty",    Format TTY)               , ("latex",  Format LaTeX)               , ("mirc",   Format MIRC)-              , ("lit",    LHS Bird)-              , ("lit-tex",LHS TeX)-              , ("nolit",  LHS NoLit)+              , ("lit",    LHS True)+              , ("lit-tex",LHS True)+              , ("nolit",  LHS False)               , ("anchor",    Anchors True)               , ("noanchor",  Anchors False)               , ("partial",   Partial True)@@ -47,31 +47,41 @@       good    = [ o | Right o <- options ]       formats = [ f | Format f <- good ]       outFile = [ f | Output f <- good ]-      fileInteract = fileInteractOut outFile-      output    = useDefault TTY         id           formats-      ioWrapper = useDefault ttyInteract fileInteract [ f | Input f   <- good ]-      anchors   = useDefault False       id           [ b | Anchors b <- good ]-      partial   = useDefault False       id           [ b | Partial b <- good ]-      lhs       = useDefault NoLit       id           [ b | LHS b     <- good ] -      title     = useDefault "Haskell code" id        [ f | Input f   <- good ]-  when (not (null bad))-       (errorOut ("Unrecognised option(s): "++unwords bad++"\n"++usage prog))-  when (Help `elem` good)    (do putStrLn (usage prog); exitSuccess)-  when (Version `elem` good) (do putStrLn (prog++" "++version); exitSuccess)-  when (Information `elem` good)-                             (do writeResult outFile cssDefaults; exitSuccess)-  when (length formats > 1)-       (errorOut ("Can only choose one output format at a time: "-                  ++unwords (map show formats)))-  when (length outFile > 1)-       (errorOut ("Can only have one output file at a time."))-  ioWrapper (HSColour.hscolour output pref anchors partial lhs title)-  hFlush stdout+      output    = useDefault  TTY         id           formats+      anchors   = useDefault  False       id           [ b | Anchors b <- good ]+      partial   = useDefault  False       id           [ b | Partial b <- good ]+      lhs       = useDefault  Nothing     id           [ Just b | LHS b<- good ]+      title     = useDefault  "Haskell code" id        [ f | Input f   <- good ]+      ioWrapper = useDefaults (ttyInteract  outFile (guessLiterate lhs ""))+                              (fileInteract outFile)   [ (f,guessLiterate lhs f)+                                                           | Input f   <- good ]+  when (not (null bad)) $+       errorOut ("Unrecognised option(s): "++unwords bad++"\n"++usage prog)+  when (Help `elem` good)        $ writeResult [] (usage prog)+  when (Version `elem` good)     $ writeResult [] (prog++" "++version)+  when (Information `elem` good) $ writeResult outFile cssDefaults+  when (length formats > 1) $+       errorOut ("Can only choose one output format at a time: "+                 ++unwords (map show formats))+  when (length outFile > 1) $+       errorOut ("Can only have one output file at a time.")+  ioWrapper (HSColour.hscolour output pref anchors partial title)    where-    writeResult outF = if null outF then putStr else writeFile (last outF)-    fileInteractOut outF inF u = do readFile inF >>= writeResult outF . u-    ttyInteract s = do hSetBuffering stdout NoBuffering >> Prelude.interact s+    writeResult outF s = do if null outF then putStr s+                                         else writeFile (last outF) s+                            exitSuccess+    fileInteract out inFs u = do h <- case out of+                                          []     -> return stdout+                                          [outF] -> openFile outF WriteMode+                                 mapM_ (\ (f,lit)->+                                           readFile f >>= hPutStr h . u lit)+                                       inFs+                                 hClose h+    ttyInteract []     lit u = do hSetBuffering stdout NoBuffering+                                  Prelude.interact (u lit)+    ttyInteract [outF] lit u = do c <- hGetContents stdin+                                  writeFile outF (u lit c)     exitSuccess = exitWith ExitSuccess     errorOut s = hPutStrLn stderr s >> hFlush stderr >> exitFailure     usage prog = "Usage: "++prog@@ -81,6 +91,11 @@                      . map (('-':) . fst)) optionTable ++ " ]"     useDefault d f list | null list = d                         | otherwise = f (head list)+    useDefaults d f list | null list = d+                         | otherwise = f list+    guessLiterate Nothing  f = ".lhs" `isSuffixOf` f || ".ly" `isSuffixOf` f+                               || ".lx" `isSuffixOf` f+    guessLiterate (Just b) _ = b  -- some simple text formatting for usage messages width n left  []    = []
Language/Haskell/HsColour.hs view
@@ -1,20 +1,22 @@ -- | This is a library which colourises Haskell code.---   It currently has five output formats:+--   It currently has six output formats: -- -- * ANSI terminal codes -- -- * LaTeX macros ----- * HTML with font tags+-- * HTML 3.2 with font tags ----- * HTML with CSS.+-- * HTML 4.01 with external CSS. --+-- * XHTML 1.0 with internal CSS.+-- -- * mIRC chat client colour codes. -- module Language.Haskell.HsColour (Output(..), ColourPrefs(..),                                   hscolour) where -import Language.Haskell.HsColour.Colourise (ColourPrefs(..))+import Language.Haskell.HsColour.Colourise  (ColourPrefs(..)) import qualified Language.Haskell.HsColour.TTY        as TTY import qualified Language.Haskell.HsColour.HTML       as HTML import qualified Language.Haskell.HsColour.CSS        as CSS@@ -24,7 +26,6 @@ import Data.List(mapAccumL, isPrefixOf)  import Data.Maybe import Language.Haskell.HsColour.Output-import Language.Haskell.HsColour.Options (Literate(..)) import Debug.Trace  -- | Colourise Haskell source code with the given output format.@@ -32,22 +33,20 @@          -> ColourPrefs -- ^ Colour preferences (for formats that support them).          -> Bool        -- ^ Whether to include anchors.          -> Bool        -- ^ Whether output document is partial or complete.-         -> Literate    -- ^ Whether input document is literate haskell or not          -> String	-- ^ Title for output.+         -> Bool        -- ^ Whether input document is literate haskell or not          -> String      -- ^ Haskell source code.          -> String      -- ^ Coloured Haskell source code.-hscolour output pref anchor partial literate title =-  case literate of-    NoLit -> hscolour' output pref anchor partial title-    Bird  -> literateHandler (map lhsClassify)-    TeX   -> literateHandler (snd . mapAccumL decideTypeOfLine False)+hscolour output pref anchor partial title False =+        hscolour' output pref anchor partial title+hscolour output pref anchor partial title True  =+        concatMap chunk . joinL . classify . inlines   where-    literateHandler f = concatMap chunk . joinL . f . inlines-    chunk (Lit c)     = c-    chunk (Code c)    = hscolour' output pref anchor True title c+    chunk (Code c) = hscolour' output pref anchor True title c+    chunk (Lit c)  = c  hscolour' :: Output      -- ^ Output format.-          -> ColourPrefs -- ^ Colour preferences (for formats that support them).+          -> ColourPrefs -- ^ Colour preferences (for formats that support them)           -> Bool        -- ^ Whether to include anchors.           -> Bool        -- ^ Whether output document is partial or complete.           -> String      -- ^ Title for output.@@ -75,21 +74,20 @@   lines' ('\n':s)       acc = acc ['\n'] : lines' s id	-- Unix   lines' (c:s)          acc = lines' s (acc . (c:)) --- Note, I just pass the > symbol to the colouriser, which assumes that--- it's token based and not parse-based!!!-lhsClassify :: String -> Lit-lhsClassify ('>':xs)  = Code ('>':xs)-lhsClassify xs        = Lit  xs --- texstyle is a bool indicating whether we are currently inside a code block-decideTypeOfLine texStyle current_line - | isPrefix "\\begin{code}" = codeLine- | texStyle = if not is_end then codeLine else (False, Code (current_line ))- | otherwise = (False, Lit current_line)-     where isPrefix = flip isPrefixOf current_line -           codeLine = (True, Code (current_line))-           is_end = isPrefix "\\end{code}"+-- The code for classify is largely stolen from Language.Preprocessor.Unlit.+classify []             = []+classify (x:xs) | "\\begin{code}"`isPrefixOf`x+                        = Lit x: allProg xs+   where allProg []     = []  -- Should give an error message,+                              -- but I have no good position information.+         allProg (x:xs) | "\\end{code}"`isPrefixOf`x+                        = Lit x: classify xs+         allProg (x:xs) = Code x: allProg xs+classify (('>':x):xs)   = Code ('>':x) : classify xs+classify (x:xs)         = Lit x: classify xs +-- Join up chunks of code/comment that are next to each other. joinL :: [Lit] -> [Lit] joinL []                  = [] joinL (Code c:Code c2:xs) = joinL (Code (c++c2):xs)
Language/Haskell/HsColour/Colourise.hs view
@@ -2,6 +2,7 @@   ( module Language.Haskell.HsColour.ColourHighlight   , ColourPrefs(..)   , readColourPrefs+  , defaultColourPrefs   , colourise   ) where 
Language/Haskell/HsColour/Options.hs view
@@ -1,7 +1,6 @@ module Language.Haskell.HsColour.Options   ( Option(..)   , Output(..)-  , Literate(..)   ) where   import Language.Haskell.HsColour.Output@@ -12,11 +11,9 @@   | Version		-- ^ report version   | Information		-- ^ report auxiliary information, e.g. CSS defaults   | Format Output	-- ^ what type of output to produce-  | LHS Literate	-- ^ literate input (i.e. multiple embedded fragments)+  | LHS Bool		-- ^ literate input (i.e. multiple embedded fragments)   | Anchors Bool	-- ^ whether to add anchors   | Partial Bool	-- ^ whether to produce a full document or partial   | Input FilePath	-- ^ input source file   | Output FilePath	-- ^ output source file   deriving Eq--data Literate = NoLit | Bird | TeX deriving Eq
Makefile view
@@ -1,5 +1,5 @@ LIBRARY	= hscolour-VERSION	= 1.13+VERSION	= 1.14  DIRS	= Language/Haskell/HsColour 
README view
@@ -35,10 +35,10 @@ HTML DOCTYPE header, CSS stylesheet link, or LaTeX prologue.  Alternatively, if you have a literate input source (e.g. .lhs file),-then the -lit option passes the literate parts untouched, and-colourises only the code fragments (indicated by Bird-tracks - a-> symbol in the left-most column), as if each was called individually-with -partial.+then the -lit option passes the literate parts untouched,+and colourises only the code fragments as if each was called+individually with -partial.  The option -lit-tex is identical: it is+retained for backwards-compatibility only.  You can configure the colours for different lexical entities by editing a configuration file called .hscolour in the current directory.
docs/hscolour/Language-Haskell-HsColour-Options.html view
@@ -121,9 +121,7 @@ ><TD CLASS="decl" >| <A HREF="#v%3ALHS" >LHS</A-> <A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Literate</A-></TD+> Bool</TD ></TR ><TR ><TD CLASS="decl"@@ -215,51 +213,9 @@ ></TABLE ></TD ></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ALiterate"->Literate</A-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3ANoLit"->NoLit</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ABird"->Bird</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ATeX"->TeX</A-></TD-></TR ></TABLE ></TD ></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR ><TR ><TD CLASS="s15" ></TD@@ -359,9 +315,7 @@ ></A ><B >LHS</B-> <A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Literate</A-></TD+> Bool</TD ><TD CLASS="rdoc" >literate input (i.e. multiple embedded fragments) </TD@@ -562,95 +516,6 @@ ><TD CLASS="decl" >Show <A HREF="Language-Haskell-HsColour-Options.html#t%3AOutput" >Output</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ALiterate"-></A-><B->Literate</B-> </TD-><TD CLASS="declbut"-><A HREF="Language/Haskell/HsColour/Options.html#Literate"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ANoLit"-></A-><B->NoLit</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ABird"-></A-><B->Bird</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ATeX"-></A-><B->TeX</B-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Literate')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Literate" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->Eq <A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Literate</A ></TD ></TR ></TABLE
docs/hscolour/Language-Haskell-HsColour.html view
@@ -70,7 +70,7 @@ ><TD CLASS="doc" ><P >This is a library which colourises Haskell code.-   It currently has five output formats:+   It currently has six output formats: </P ><UL ><LI@@ -80,12 +80,15 @@ > LaTeX macros </LI ><LI-> HTML with font tags+> HTML 3.2 with font tags </LI ><LI-> HTML with CSS.+> HTML 4.01 with external CSS. </LI ><LI+> XHTML 1.0 with internal CSS.+</LI+><LI > mIRC chat client colour codes. </LI ></UL@@ -226,9 +229,7 @@ >Output</A > -&gt; <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs" >ColourPrefs</A-> -&gt; Bool -&gt; Bool -&gt; <A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Literate</A-> -&gt; String -&gt; String -&gt; String</TD+> -&gt; Bool -&gt; Bool -&gt; String -&gt; Bool -&gt; String -&gt; String</TD ></TR ></TABLE ></TD@@ -596,18 +597,16 @@ ></TR ><TR ><TD CLASS="arg"->-&gt; <A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Literate</A-></TD+>-&gt; String</TD ><TD CLASS="rdoc"->Whether input document is literate haskell or not+>Title for output. </TD ></TR ><TR ><TD CLASS="arg"->-&gt; String</TD+>-&gt; Bool</TD ><TD CLASS="rdoc"->Title for output.+>Whether input document is literate haskell or not </TD ></TR ><TR
docs/hscolour/Language/Haskell/HsColour.html view
@@ -5,104 +5,102 @@ <title>Language/Haskell/HsColour.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | This is a library which colourises Haskell code.</i></font>-<a name="line-2"></a><font color=Blue><i>--   It currently has five output formats:</i></font>-<a name="line-3"></a><font color=Blue><i>--</i></font>-<a name="line-4"></a><font color=Blue><i>-- * ANSI terminal codes</i></font>-<a name="line-5"></a><font color=Blue><i>--</i></font>-<a name="line-6"></a><font color=Blue><i>-- * LaTeX macros</i></font>-<a name="line-7"></a><font color=Blue><i>--</i></font>-<a name="line-8"></a><font color=Blue><i>-- * HTML with font tags</i></font>-<a name="line-9"></a><font color=Blue><i>--</i></font>-<a name="line-10"></a><font color=Blue><i>-- * HTML with CSS.</i></font>-<a name="line-11"></a><font color=Blue><i>--</i></font>-<a name="line-12"></a><font color=Blue><i>-- * mIRC chat client colour codes.</i></font>-<a name="line-13"></a><font color=Blue><i>--</i></font>-<a name="line-14"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour <font color=Cyan>(</font>Output<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>-<a name="line-15"></a>                                  hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>-<a name="line-16"></a>-<a name="line-17"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <font color=Cyan>(</font>ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-18"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY        <u><font color=Green>as</font></u> TTY-<a name="line-19"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML       <u><font color=Green>as</font></u> HTML-<a name="line-20"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS        <u><font color=Green>as</font></u> CSS-<a name="line-21"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS  <u><font color=Green>as</font></u> ICSS-<a name="line-22"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX      <u><font color=Green>as</font></u> LaTeX-<a name="line-23"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC       <u><font color=Green>as</font></u> MIRC-<a name="line-24"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>List<font color=Cyan>(</font>mapAccumL<font color=Cyan>,</font> isPrefixOf<font color=Cyan>)</font> -<a name="line-25"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Maybe-<a name="line-26"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output-<a name="line-27"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Options <font color=Cyan>(</font>Literate<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-28"></a><u><font color=Green>import</font></u> Debug<font color=Cyan>.</font>Trace-<a name="line-29"></a>-<a name="line-30"></a><a name="hscolour"></a><font color=Blue><i>-- | Colourise Haskell source code with the given output format.</i></font>-<a name="line-31"></a>hscolour <font color=Red>::</font> Output      <font color=Blue><i>-- ^ Output format.</i></font>-<a name="line-32"></a>         <font color=Red>-&gt;</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>-<a name="line-33"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>-<a name="line-34"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>-<a name="line-35"></a>         <font color=Red>-&gt;</font> Literate    <font color=Blue><i>-- ^ Whether input document is literate haskell or not</i></font>-<a name="line-36"></a>         <font color=Red>-&gt;</font> String	<font color=Blue><i>-- ^ Title for output.</i></font>-<a name="line-37"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-38"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>-<a name="line-39"></a>hscolour output pref anchor partial literate title <font color=Red>=</font>-<a name="line-40"></a>  <u><font color=Green>case</font></u> literate <u><font color=Green>of</font></u>-<a name="line-41"></a>    NoLit <font color=Red>-&gt;</font> hscolour' output pref anchor partial title-<a name="line-42"></a>    Bird  <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>map lhsClassify<font color=Cyan>)</font>-<a name="line-43"></a>    TeX   <font color=Red>-&gt;</font> literateHandler <font color=Cyan>(</font>snd <font color=Cyan>.</font> mapAccumL decideTypeOfLine False<font color=Cyan>)</font>+<pre><a name="line-1"></a><font color=Blue>-- | This is a library which colourises Haskell code.</font>+<a name="line-2"></a><font color=Blue>--   It currently has six output formats:</font>+<a name="line-3"></a><font color=Blue>--</font>+<a name="line-4"></a><font color=Blue>-- * ANSI terminal codes</font>+<a name="line-5"></a><font color=Blue>--</font>+<a name="line-6"></a><font color=Blue>-- * LaTeX macros</font>+<a name="line-7"></a><font color=Blue>--</font>+<a name="line-8"></a><font color=Blue>-- * HTML 3.2 with font tags</font>+<a name="line-9"></a><font color=Blue>--</font>+<a name="line-10"></a><font color=Blue>-- * HTML 4.01 with external CSS.</font>+<a name="line-11"></a><font color=Blue>--</font>+<a name="line-12"></a><font color=Blue>-- * XHTML 1.0 with internal CSS.</font>+<a name="line-13"></a><font color=Blue>--</font>+<a name="line-14"></a><font color=Blue>-- * mIRC chat client colour codes.</font>+<a name="line-15"></a><font color=Blue>--</font>+<a name="line-16"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour <font color=Cyan>(</font>Output<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>+<a name="line-17"></a>                                  hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>+<a name="line-18"></a>+<a name="line-19"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise  <font color=Cyan>(</font>ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-20"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY        <u><font color=Green>as</font></u> TTY+<a name="line-21"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML       <u><font color=Green>as</font></u> HTML+<a name="line-22"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS        <u><font color=Green>as</font></u> CSS+<a name="line-23"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS  <u><font color=Green>as</font></u> ICSS+<a name="line-24"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX      <u><font color=Green>as</font></u> LaTeX+<a name="line-25"></a><u><font color=Green>import</font></u> <u><font color=Green>qualified</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC       <u><font color=Green>as</font></u> MIRC+<a name="line-26"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>List<font color=Cyan>(</font>mapAccumL<font color=Cyan>,</font> isPrefixOf<font color=Cyan>)</font> +<a name="line-27"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Maybe+<a name="line-28"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output+<a name="line-29"></a><u><font color=Green>import</font></u> Debug<font color=Cyan>.</font>Trace+<a name="line-30"></a>+<a name="line-31"></a><a name="hscolour"></a><font color=Blue>-- | Colourise Haskell source code with the given output format.</font>+<a name="line-32"></a>hscolour <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>+<a name="line-33"></a>         <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them).</font>+<a name="line-34"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>+<a name="line-35"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output document is partial or complete.</font>+<a name="line-36"></a>         <font color=Red>-&gt;</font> String	<font color=Blue>-- ^ Title for output.</font>+<a name="line-37"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether input document is literate haskell or not</font>+<a name="line-38"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-39"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>+<a name="line-40"></a>hscolour output pref anchor partial title False <font color=Red>=</font>+<a name="line-41"></a>        hscolour' output pref anchor partial title+<a name="line-42"></a>hscolour output pref anchor partial title True  <font color=Red>=</font>+<a name="line-43"></a>        concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> classify <font color=Cyan>.</font> inlines <a name="line-44"></a>  <u><font color=Green>where</font></u>-<a name="line-45"></a>    literateHandler f <font color=Red>=</font> concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> f <font color=Cyan>.</font> inlines-<a name="line-46"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>     <font color=Red>=</font> c-<a name="line-47"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font>    <font color=Red>=</font> hscolour' output pref anchor True title c-<a name="line-48"></a>-<a name="line-49"></a><a name="hscolour'"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue><i>-- ^ Output format.</i></font>-<a name="line-50"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>-<a name="line-51"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>-<a name="line-52"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>-<a name="line-53"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Title for output.</i></font>-<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-55"></a>          <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>-<a name="line-56"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour   pref-<a name="line-57"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour  pref-<a name="line-58"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>    partial <u><font color=Green>_</font></u>   <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref      partial-<a name="line-59"></a>hscolour' HTML  pref anch partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour  pref anch partial top-<a name="line-60"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anch partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour        anch partial top-<a name="line-61"></a>hscolour' ICSS  pref anch partial top <font color=Red>=</font> ICSS<font color=Cyan>.</font>hscolour  pref anch partial top-<a name="line-62"></a>-<a name="line-63"></a><a name="Lit"></a><font color=Blue><i>-- | Separating literate files into code\/comment chunks.</i></font>-<a name="line-64"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>-<a name="line-65"></a>-<a name="line-66"></a><a name="inlines"></a><font color=Blue><i>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</i></font>-<a name="line-67"></a><font color=Blue><i>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</i></font>-<a name="line-68"></a><font color=Blue><i>-- And retains the trailing '\n' character in each resultant string.</i></font>-<a name="line-69"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="line-70"></a>inlines s <font color=Red>=</font> lines' s id-<a name="line-71"></a>  <u><font color=Green>where</font></u>-<a name="line-72"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>-<a name="line-73"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue><i>-- DOS</i></font>-<a name="line-74"></a><font color=Blue><i>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</i></font>-<a name="line-75"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue><i>-- Unix</i></font>-<a name="line-76"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-45"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font> <font color=Red>=</font> hscolour' output pref anchor True title c+<a name="line-46"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>  <font color=Red>=</font> c+<a name="line-47"></a>+<a name="line-48"></a><a name="hscolour'"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>+<a name="line-49"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them)</font>+<a name="line-50"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>+<a name="line-51"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output document is partial or complete.</font>+<a name="line-52"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for output.</font>+<a name="line-53"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>+<a name="line-55"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour   pref+<a name="line-56"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour  pref+<a name="line-57"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>    partial <u><font color=Green>_</font></u>   <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref      partial+<a name="line-58"></a>hscolour' HTML  pref anch partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour  pref anch partial top+<a name="line-59"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anch partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour        anch partial top+<a name="line-60"></a>hscolour' ICSS  pref anch partial top <font color=Red>=</font> ICSS<font color=Cyan>.</font>hscolour  pref anch partial top+<a name="line-61"></a>+<a name="line-62"></a><a name="Lit"></a><font color=Blue>-- | Separating literate files into code\/comment chunks.</font>+<a name="line-63"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>+<a name="line-64"></a>+<a name="line-65"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>+<a name="line-66"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>+<a name="line-67"></a><font color=Blue>-- And retains the trailing '\n' character in each resultant string.</font>+<a name="line-68"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>+<a name="line-69"></a>inlines s <font color=Red>=</font> lines' s id+<a name="line-70"></a>  <u><font color=Green>where</font></u>+<a name="line-71"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>+<a name="line-72"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- DOS</font>+<a name="line-73"></a><font color=Blue>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</font>+<a name="line-74"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- Unix</font>+<a name="line-75"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-76"></a> <a name="line-77"></a>-<a name="line-78"></a><a name="lhsClassify"></a><font color=Blue><i>-- Note, I just pass the &gt; symbol to the colouriser, which assumes that</i></font>-<a name="line-79"></a><font color=Blue><i>-- it's token based and not parse-based!!!</i></font>-<a name="line-80"></a>lhsClassify <font color=Red>::</font> String <font color=Red>-&gt;</font> Lit-<a name="line-81"></a>lhsClassify <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>  <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-82"></a>lhsClassify xs        <font color=Red>=</font> Lit  xs-<a name="line-83"></a>-<a name="line-84"></a><a name="decideTypeOfLine"></a><font color=Blue><i>-- texstyle is a bool indicating whether we are currently inside a code block</i></font>-<a name="line-85"></a>decideTypeOfLine texStyle current_line -<a name="line-86"></a> <font color=Red>|</font> isPrefix <font color=Magenta>"\\begin{code}"</font> <font color=Red>=</font> codeLine-<a name="line-87"></a> <font color=Red>|</font> texStyle <font color=Red>=</font> <u><font color=Green>if</font></u> not is_end <u><font color=Green>then</font></u> codeLine <u><font color=Green>else</font></u> <font color=Cyan>(</font>False<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line <font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-88"></a> <font color=Red>|</font> otherwise <font color=Red>=</font> <font color=Cyan>(</font>False<font color=Cyan>,</font> Lit current_line<font color=Cyan>)</font>-<a name="line-89"></a>     <u><font color=Green>where</font></u> isPrefix <font color=Red>=</font> flip isPrefixOf current_line -<a name="line-90"></a>           codeLine <font color=Red>=</font> <font color=Cyan>(</font>True<font color=Cyan>,</font> Code <font color=Cyan>(</font>current_line<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-91"></a>           is_end <font color=Red>=</font> isPrefix <font color=Magenta>"\\end{code}"</font>-<a name="line-92"></a>-<a name="line-93"></a><a name="joinL"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>-<a name="line-94"></a>joinL []                  <font color=Red>=</font> []-<a name="line-95"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-96"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-97"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs-<a name="line-98"></a>+<a name="line-78"></a><a name="classify"></a><font color=Blue>-- The code for classify is largely stolen from Language.Preprocessor.Unlit.</font>+<a name="line-79"></a>classify []             <font color=Red>=</font> []+<a name="line-80"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\begin{code}"</font><font color=Cyan>`isPrefixOf`</font>x+<a name="line-81"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> allProg xs+<a name="line-82"></a>   <u><font color=Green>where</font></u> allProg []     <font color=Red>=</font> []  <font color=Blue>-- Should give an error message,</font>+<a name="line-83"></a>                              <font color=Blue>-- but I have no good position information.</font>+<a name="line-84"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\end{code}"</font><font color=Cyan>`isPrefixOf`</font>x+<a name="line-85"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs+<a name="line-86"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> Code x<b><font color=Red>:</font></b> allProg xs+<a name="line-87"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>   <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font> <b><font color=Red>:</font></b> classify xs+<a name="line-88"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>         <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs+<a name="line-89"></a>+<a name="line-90"></a><a name="joinL"></a><font color=Blue>-- Join up chunks of code/comment that are next to each other.</font>+<a name="line-91"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>+<a name="line-92"></a>joinL []                  <font color=Red>=</font> []+<a name="line-93"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>+<a name="line-94"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>+<a name="line-95"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs+<a name="line-96"></a> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/ANSI.html view
@@ -5,7 +5,7 @@ <title>Language/Haskell/HsColour/ANSI.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Partially taken from Hugs AnsiScreen.hs library:</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Partially taken from Hugs AnsiScreen.hs library:</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI <a name="line-3"></a>  <font color=Cyan>(</font> highlightOn <a name="line-4"></a>  <font color=Cyan>,</font> highlightOff@@ -27,15 +27,15 @@ <a name="line-20"></a><u><font color=Green>import</font></u> Char <font color=Cyan>(</font>isDigit<font color=Cyan>)</font> <a name="line-21"></a> <a name="line-22"></a>-<a name="line-23"></a><font color=Blue><i>-- Basic screen control codes:</i></font>+<a name="line-23"></a><font color=Blue>-- Basic screen control codes:</font> <a name="line-24"></a> <a name="line-25"></a><a name="Pos"></a><u><font color=Green>type</font></u> Pos           <font color=Red>=</font> <font color=Cyan>(</font>Int<font color=Cyan>,</font>Int<font color=Cyan>)</font> <a name="line-26"></a> <a name="line-27"></a><a name="at"></a>at        <font color=Red>::</font> Pos <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String-<a name="line-28"></a><a name="goto"></a><font color=Blue><i>-- | Move the screen cursor to the given position.</i></font>+<a name="line-28"></a><a name="goto"></a><font color=Blue>-- | Move the screen cursor to the given position.</font> <a name="line-29"></a>goto      <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String <a name="line-30"></a><a name="home"></a>home      <font color=Red>::</font> String-<a name="line-31"></a><a name="cls"></a><font color=Blue><i>-- | Clear the screen.</i></font>+<a name="line-31"></a><a name="cls"></a><font color=Blue>-- | Clear the screen.</font> <a name="line-32"></a>cls       <font color=Red>::</font> String <a name="line-33"></a> <a name="line-34"></a>at <font color=Cyan>(</font>x<font color=Cyan>,</font>y<font color=Cyan>)</font> s  <font color=Red>=</font> goto x y <font color=Cyan>++</font> s@@ -52,16 +52,16 @@ <a name="line-45"></a><a name="clearline"></a>clearline   <font color=Red>=</font> <font color=Magenta>"\ESC[2K"</font> <a name="line-46"></a><a name="clearDown"></a>clearDown   <font color=Red>=</font> <font color=Magenta>"\ESC[J"</font> <a name="line-47"></a><a name="clearUp"></a>clearUp     <font color=Red>=</font> <font color=Magenta>"\ESC[1J"</font>-<a name="line-48"></a><font color=Blue><i>-- Choose whichever of the following lines is suitable for your system:</i></font>-<a name="line-49"></a>cls         <font color=Red>=</font> <font color=Magenta>"\ESC[2J"</font>     <font color=Blue><i>-- for PC with ANSI.SYS</i></font>-<a name="line-50"></a><font color=Blue><i>--cls         = "\^L"         -- for Sun window</i></font>+<a name="line-48"></a><font color=Blue>-- Choose whichever of the following lines is suitable for your system:</font>+<a name="line-49"></a>cls         <font color=Red>=</font> <font color=Magenta>"\ESC[2J"</font>     <font color=Blue>-- for PC with ANSI.SYS</font>+<a name="line-50"></a><font color=Blue>--cls         = "\^L"         -- for Sun window</font> <a name="line-51"></a> <a name="line-52"></a><a name="savePosition"></a>savePosition    <font color=Red>=</font> <font color=Magenta>"\ESC7"</font> <a name="line-53"></a><a name="restorePosition"></a>restorePosition <font color=Red>=</font> <font color=Magenta>"\ESC8"</font> <a name="line-54"></a> <a name="line-55"></a>-<a name="line-56"></a><font color=Blue><i>-- data Colour    -- imported from ColourHighlight</i></font>-<a name="line-57"></a><font color=Blue><i>-- data Highlight -- imported from ColourHighlight</i></font>+<a name="line-56"></a><font color=Blue>-- data Colour    -- imported from ColourHighlight</font>+<a name="line-57"></a><font color=Blue>-- data Highlight -- imported from ColourHighlight</font> <a name="line-58"></a> <a name="line-59"></a><u><font color=Green>instance</font></u> Enum Highlight <u><font color=Green>where</font></u> <a name="line-60"></a>  fromEnum Normal       <font color=Red>=</font> <font color=Magenta>0</font>@@ -75,7 +75,7 @@ <a name="line-68"></a>  fromEnum <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>40</font> <font color=Cyan>+</font> fromEnum c <a name="line-69"></a>  fromEnum Italic       <font color=Red>=</font> <font color=Magenta>2</font> <a name="line-70"></a>-<a name="line-71"></a><a name="highlight"></a><font color=Blue><i>-- | Make the given string appear with all of the listed highlights</i></font>+<a name="line-71"></a><a name="highlight"></a><font color=Blue>-- | Make the given string appear with all of the listed highlights</font> <a name="line-72"></a>highlight <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String <a name="line-73"></a>highlight attrs s <font color=Red>=</font> highlightOn attrs <font color=Cyan>++</font> s <font color=Cyan>++</font> highlightOff <a name="line-74"></a>@@ -86,19 +86,19 @@ <a name="line-79"></a><a name="highlightOff"></a>highlightOff <font color=Red>=</font> <font color=Magenta>"\ESC[0m"</font> <a name="line-80"></a> <a name="line-81"></a>-<a name="line-82"></a><a name="colourCycle"></a><font color=Blue><i>-- | An infinite supply of colours.</i></font>+<a name="line-82"></a><a name="colourCycle"></a><font color=Blue>-- | An infinite supply of colours.</font> <a name="line-83"></a>colourCycle <font color=Red>::</font> <font color=Red>[</font>Colour<font color=Red>]</font> <a name="line-84"></a>colourCycle <font color=Red>=</font> cycle <font color=Red>[</font>Red<font color=Cyan>,</font>Blue<font color=Cyan>,</font>Magenta<font color=Cyan>,</font>Green<font color=Cyan>,</font>Cyan<font color=Red>]</font> <a name="line-85"></a> <a name="line-86"></a>-<a name="line-87"></a><a name="enableScrollRegion"></a><font color=Blue><i>-- | Scrolling</i></font>+<a name="line-87"></a><a name="enableScrollRegion"></a><font color=Blue>-- | Scrolling</font> <a name="line-88"></a>enableScrollRegion <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String <a name="line-89"></a>enableScrollRegion start end <font color=Red>=</font> <font color=Magenta>"\ESC["</font><font color=Cyan>++</font>show start<font color=Cyan>++</font><font color=Magenta>';'</font><b><font color=Red>:</font></b>show end<font color=Cyan>++</font><font color=Magenta>"r"</font> <a name="line-90"></a> <a name="line-91"></a><a name="scrollDown"></a>scrollDown  <font color=Red>=</font> <font color=Magenta>"\ESCD"</font> <a name="line-92"></a><a name="scrollUp"></a>scrollUp    <font color=Red>=</font> <font color=Magenta>"\ESCM"</font> <a name="line-93"></a>-<a name="line-94"></a><a name="lineWrap"></a><font color=Blue><i>-- Line-wrapping mode</i></font>+<a name="line-94"></a><a name="lineWrap"></a><font color=Blue>-- Line-wrapping mode</font> <a name="line-95"></a>lineWrap True  <font color=Red>=</font> <font color=Magenta>"\ESC[7h"</font> <a name="line-96"></a>lineWrap False <font color=Red>=</font> <font color=Magenta>"\ESC[7l"</font> <a name="line-97"></a>
docs/hscolour/Language/Haskell/HsColour/Anchors.html view
@@ -13,57 +13,57 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>General <a name="line-7"></a><u><font color=Green>import</font></u> List <a name="line-8"></a>-<a name="line-9"></a><font color=Blue><i>-- This is an attempt to find the first defining occurrence of an</i></font>-<a name="line-10"></a><font color=Blue><i>-- identifier (function, datatype, class) in a Haskell source file.</i></font>-<a name="line-11"></a><font color=Blue><i>-- Rather than parse the module properly, we try to get by with just</i></font>-<a name="line-12"></a><font color=Blue><i>-- a finite state automaton.  Keeping a record of identifiers we</i></font>-<a name="line-13"></a><font color=Blue><i>-- have already seen, we look at the beginning of every line to see</i></font>-<a name="line-14"></a><font color=Blue><i>-- if it starts with the right tokens to introduce a defn.  If so,</i></font>-<a name="line-15"></a><font color=Blue><i>-- we look a little bit further until we can be certain.  Then plonk</i></font>-<a name="line-16"></a><font color=Blue><i>-- (or not) an anchor at the beginning of the line.</i></font>+<a name="line-9"></a><font color=Blue>-- This is an attempt to find the first defining occurrence of an</font>+<a name="line-10"></a><font color=Blue>-- identifier (function, datatype, class) in a Haskell source file.</font>+<a name="line-11"></a><font color=Blue>-- Rather than parse the module properly, we try to get by with just</font>+<a name="line-12"></a><font color=Blue>-- a finite state automaton.  Keeping a record of identifiers we</font>+<a name="line-13"></a><font color=Blue>-- have already seen, we look at the beginning of every line to see</font>+<a name="line-14"></a><font color=Blue>-- if it starts with the right tokens to introduce a defn.  If so,</font>+<a name="line-15"></a><font color=Blue>-- we look a little bit further until we can be certain.  Then plonk</font>+<a name="line-16"></a><font color=Blue>-- (or not) an anchor at the beginning of the line.</font> <a name="line-17"></a> <a name="line-18"></a><a name="Anchor"></a><u><font color=Green>type</font></u> Anchor <font color=Red>=</font> String <a name="line-19"></a>-<a name="line-20"></a><a name="insertAnchors"></a><font color=Blue><i>-- | 'insertAnchors' places an anchor marker in the token stream before the</i></font>-<a name="line-21"></a><font color=Blue><i>--   first defining occurrence of any identifier.  Here, /before/ means</i></font>-<a name="line-22"></a><font color=Blue><i>--   immediately preceding its type signature, or preceding a (haddock)</i></font>-<a name="line-23"></a><font color=Blue><i>--   comment that comes immediately before the type signature, or failing</i></font>-<a name="line-24"></a><font color=Blue><i>--   either of those, before the first equation.</i></font>+<a name="line-20"></a><a name="insertAnchors"></a><font color=Blue>-- | 'insertAnchors' places an anchor marker in the token stream before the</font>+<a name="line-21"></a><font color=Blue>--   first defining occurrence of any identifier.  Here, /before/ means</font>+<a name="line-22"></a><font color=Blue>--   immediately preceding its type signature, or preceding a (haddock)</font>+<a name="line-23"></a><font color=Blue>--   comment that comes immediately before the type signature, or failing</font>+<a name="line-24"></a><font color=Blue>--   either of those, before the first equation.</font> <a name="line-25"></a>insertAnchors <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Either Anchor <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <a name="line-26"></a>insertAnchors <font color=Red>=</font> anchor emptyST <a name="line-27"></a>-<a name="line-28"></a><a name="anchor"></a><font color=Blue><i>-- looks at first token in the left-most position of each line</i></font>-<a name="line-29"></a><font color=Blue><i>-- precondition: have just seen a newline token.</i></font>+<a name="line-28"></a><a name="anchor"></a><font color=Blue>-- looks at first token in the left-most position of each line</font>+<a name="line-29"></a><font color=Blue>-- precondition: have just seen a newline token.</font> <a name="line-30"></a>anchor st s <font color=Red>=</font> <u><font color=Green>case</font></u> identifier st s <u><font color=Green>of</font></u> <a name="line-31"></a>                Nothing <font color=Red>-&gt;</font> emit st s <a name="line-32"></a>                Just v  <font color=Red>-&gt;</font> Left v<b><font color=Red>:</font></b> emit <font color=Cyan>(</font>insertST v st<font color=Cyan>)</font> s <a name="line-33"></a>-<a name="line-34"></a><a name="emit"></a><font color=Blue><i>-- emit passes stuff through until the next newline has been encountered,</i></font>-<a name="line-35"></a><font color=Blue><i>-- then jumps back into the anchor function</i></font>-<a name="line-36"></a><font color=Blue><i>-- pre-condition: newlines are explicitly single tokens</i></font>+<a name="line-34"></a><a name="emit"></a><font color=Blue>-- emit passes stuff through until the next newline has been encountered,</font>+<a name="line-35"></a><font color=Blue>-- then jumps back into the anchor function</font>+<a name="line-36"></a><font color=Blue>-- pre-condition: newlines are explicitly single tokens</font> <a name="line-37"></a>emit st <font color=Cyan>(</font>t<font color=Red>@</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Right t<b><font color=Red>:</font></b> anchor st stream <a name="line-38"></a>emit st <font color=Cyan>(</font>t<b><font color=Red>:</font></b>stream<font color=Cyan>)</font>              <font color=Red>=</font> Right t<b><font color=Red>:</font></b> emit st stream <a name="line-39"></a>emit <u><font color=Green>_</font></u>  []                      <font color=Red>=</font> [] <a name="line-40"></a>-<a name="line-41"></a><a name="identifier"></a><font color=Blue><i>-- Given that we are at the beginning of a line, determine whether there</i></font>-<a name="line-42"></a><font color=Blue><i>-- is an identifier defined here, and if so, return it.</i></font>-<a name="line-43"></a><font color=Blue><i>-- precondition: have just seen a newline token.</i></font>+<a name="line-41"></a><a name="identifier"></a><font color=Blue>-- Given that we are at the beginning of a line, determine whether there</font>+<a name="line-42"></a><font color=Blue>-- is an identifier defined here, and if so, return it.</font>+<a name="line-43"></a><font color=Blue>-- precondition: have just seen a newline token.</font> <a name="line-44"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>kind<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>|</font> kind<font color=Cyan>`elem`</font><font color=Red>[</font>Varid<font color=Cyan>,</font>Definition<font color=Red>]</font> <font color=Red>=</font> <a name="line-45"></a>    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u> <a name="line-46"></a>        <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>-<a name="line-47"></a>        notVarop  <font color=Blue><i>--  | typesig stream  -&gt; Nothing    -- not a defn</i></font>-<a name="line-48"></a>                      <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing    <font color=Blue><i>-- already defined</i></font>+<a name="line-47"></a>        notVarop  <font color=Blue>--  | typesig stream  -&gt; Nothing    -- not a defn</font>+<a name="line-48"></a>                      <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing    <font color=Blue>-- already defined</font> <a name="line-49"></a>                      <font color=Red>|</font> otherwise       <font color=Red>-&gt;</font> Just v <a name="line-50"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> <a name="line-51"></a>    <u><font color=Green>case</font></u> stream <u><font color=Green>of</font></u> <a name="line-52"></a>      <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>-<a name="line-53"></a>                  <font color=Blue><i>--  | typesig stream  -&gt; Nothing</i></font>+<a name="line-53"></a>                  <font color=Blue>--  | typesig stream  -&gt; Nothing</font> <a name="line-54"></a>	              <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing <a name="line-55"></a>	              <font color=Red>|</font> otherwise	<font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font> <a name="line-56"></a>      notVarop <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> skip <font color=Cyan>(</font>munchParens stream<font color=Cyan>)</font> <u><font color=Green>of</font></u> <a name="line-57"></a>          <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font> <a name="line-58"></a>          <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> Nothing-<a name="line-59"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Nothing <font color=Blue><i>-- not yet implemented</i></font>+<a name="line-59"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Nothing <font color=Blue>-- not yet implemented</font> <a name="line-60"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream <a name="line-61"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"newtype"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> getConid stream <a name="line-62"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"type"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream@@ -71,7 +71,7 @@ <a name="line-64"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> identifier st stream <a name="line-65"></a>identifier st stream <font color=Red>=</font> Nothing <a name="line-66"></a>-<a name="line-67"></a><a name="typesig"></a><font color=Blue><i>-- Is this really a type signature?  (no longer used)</i></font>+<a name="line-67"></a><a name="typesig"></a><font color=Blue>-- Is this really a type signature?  (no longer used)</font> <a name="line-68"></a>typesig <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> Bool <a name="line-69"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"::"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>   <font color=Red>=</font> True <a name="line-70"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Varid<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> typesig stream@@ -81,25 +81,25 @@ <a name="line-74"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>  <font color=Red>=</font> typesig stream <a name="line-75"></a>typesig <u><font color=Green>_</font></u>                     <font color=Red>=</font> False <a name="line-76"></a>-<a name="line-77"></a><a name="munchParens"></a><font color=Blue><i>-- throw away everything from opening paren to matching close</i></font>-<a name="line-78"></a>munchParens <font color=Red>=</font>  munch <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font>	<font color=Blue><i>-- already seen open paren</i></font>+<a name="line-77"></a><a name="munchParens"></a><font color=Blue>-- throw away everything from opening paren to matching close</font>+<a name="line-78"></a>munchParens <font color=Red>=</font>  munch <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font>	<font color=Blue>-- already seen open paren</font> <a name="line-79"></a>  <u><font color=Green>where</font></u> munch <font color=Magenta>0</font> <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> rest-<a name="line-80"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Blue><i>-</i></font><font color=Magenta>1</font><font color=Cyan>)</font> rest+<a name="line-80"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> rest <a name="line-81"></a>        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> rest <a name="line-82"></a>        munch n <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>rest<font color=Cyan>)</font>            <font color=Red>=</font> munch n rest-<a name="line-83"></a>        munch <u><font color=Green>_</font></u> []                  <font color=Red>=</font> []	<font color=Blue><i>-- source is ill-formed</i></font>+<a name="line-83"></a>        munch <u><font color=Green>_</font></u> []                  <font color=Red>=</font> []	<font color=Blue>-- source is ill-formed</font> <a name="line-84"></a>-<a name="line-85"></a><a name="fix"></a><font color=Blue><i>-- ensure anchor name is correct for a Varop</i></font>+<a name="line-85"></a><a name="fix"></a><font color=Blue>-- ensure anchor name is correct for a Varop</font> <a name="line-86"></a>fix <font color=Cyan>(</font><font color=Magenta>'`'</font><b><font color=Red>:</font></b>v<font color=Cyan>)</font> <font color=Red>=</font> dropLast <font color=Magenta>'`'</font> v <a name="line-87"></a>fix v       <font color=Red>=</font> v <a name="line-88"></a>-<a name="line-89"></a><a name="skip"></a><font color=Blue><i>-- look past whitespace and comments to next "real" token</i></font>+<a name="line-89"></a><a name="skip"></a><font color=Blue>-- look past whitespace and comments to next "real" token</font> <a name="line-90"></a>skip <font color=Cyan>(</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>   <font color=Red>=</font> skip stream <a name="line-91"></a>skip <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> skip stream <a name="line-92"></a>skip stream               <font color=Red>=</font> stream <a name="line-93"></a>-<a name="line-94"></a><a name="getConid"></a><font color=Blue><i>-- skip possible context up to and including "=&gt;", returning next Conid token</i></font>-<a name="line-95"></a><font color=Blue><i>-- (this function is highly partial - relies on source being parse-correct)</i></font>+<a name="line-94"></a><a name="getConid"></a><font color=Blue>-- skip possible context up to and including "=&gt;", returning next Conid token</font>+<a name="line-95"></a><font color=Blue>-- (this function is highly partial - relies on source being parse-correct)</font> <a name="line-96"></a>getConid stream <font color=Red>=</font> <a name="line-97"></a>    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u> <a name="line-98"></a>        <font color=Cyan>(</font><font color=Cyan>(</font>Conid<font color=Cyan>,</font>c<font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> context rest <u><font color=Green>of</font></u>@@ -117,17 +117,17 @@ <a name="line-110"></a>                                   v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"(...) no =&gt;"</font><font color=Cyan>)</font> <a name="line-111"></a>        v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"no Conid or (...)"</font><font color=Cyan>)</font> <a name="line-112"></a>    <u><font color=Green>where</font></u> debug   <u><font color=Green>_</font></u>   <u><font color=Green>_</font></u> <font color=Red>=</font> Nothing-<a name="line-113"></a>       <font color=Blue><i>-- debug (s:t) c = error ("HsColour: getConid failed: "++show s</i></font>-<a name="line-114"></a>       <font color=Blue><i>--                       ++"\n  in the context of: "++c)</i></font>+<a name="line-113"></a>       <font color=Blue>-- debug (s:t) c = error ("HsColour: getConid failed: "++show s</font>+<a name="line-114"></a>       <font color=Blue>--                       ++"\n  in the context of: "++c)</font> <a name="line-115"></a>-<a name="line-116"></a><a name="context"></a><font color=Blue><i>-- jump past possible class context</i></font>+<a name="line-116"></a><a name="context"></a><font color=Blue>-- jump past possible class context</font> <a name="line-117"></a>context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"="</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream <a name="line-118"></a>context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream <a name="line-119"></a>context <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> context stream <a name="line-120"></a>context [] <font color=Red>=</font> [] <a name="line-121"></a>-<a name="line-122"></a><a name="ST"></a><font color=Blue><i>-- simple implementation of a string lookup table.</i></font>-<a name="line-123"></a><a name="ST"></a><font color=Blue><i>-- replace this with something more sophisticated if needed.</i></font>+<a name="line-122"></a><a name="ST"></a><font color=Blue>-- simple implementation of a string lookup table.</font>+<a name="line-123"></a><a name="ST"></a><font color=Blue>-- replace this with something more sophisticated if needed.</font> <a name="line-124"></a><a name="ST"></a><u><font color=Green>type</font></u> ST <font color=Red>=</font> <font color=Red>[</font>String<font color=Red>]</font> <a name="line-125"></a> <a name="line-126"></a><a name="emptyST"></a>emptyST <font color=Red>::</font> ST
docs/hscolour/Language/Haskell/HsColour/CSS.html view
@@ -5,7 +5,7 @@ <title>Language/Haskell/HsColour/CSS.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code as HTML with CSS.</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code as HTML with CSS.</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors@@ -13,14 +13,14 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <font color=Cyan>(</font>renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> <a name="line-7"></a>                                       renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <a name="line-8"></a>-<a name="line-9"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete HTML document with CSS.</i></font>-<a name="line-10"></a>hscolour <font color=Red>::</font> Bool   <font color=Blue><i>-- ^ Whether to include anchors.</i></font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether output should be partial</i></font>-<a name="line-12"></a>                   <font color=Blue><i>--   (= no stylesheet link will be included.)</i></font>-<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>-<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ An HTML document containing the coloured </i></font>-<a name="line-16"></a>                   <font color=Blue><i>--   Haskell source code.</i></font>+<a name="line-9"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete HTML document with CSS.</font>+<a name="line-10"></a>hscolour <font color=Red>::</font> Bool   <font color=Blue>-- ^ Whether to include anchors.</font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether output should be partial</font>+<a name="line-12"></a>                   <font color=Blue>--   (= no stylesheet link will be included.)</font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Title for HTML page.</font>+<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>+<a name="line-16"></a>                   <font color=Blue>--   Haskell source code.</font> <a name="line-17"></a>hscolour anchor partial title <font color=Red>=</font> <a name="line-18"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font> <a name="line-19"></a>  <font color=Cyan>.</font> pre
docs/hscolour/Language/Haskell/HsColour/Classify.html view
@@ -13,44 +13,44 @@ <a name="line-6"></a><u><font color=Green>import</font></u> Char <a name="line-7"></a><u><font color=Green>import</font></u> List <a name="line-8"></a>-<a name="line-9"></a><a name="tokenise"></a><font color=Blue><i>-- | Lex Haskell source code into an annotated token stream, without</i></font>-<a name="line-10"></a><font color=Blue><i>--   discarding any characters or layout.</i></font>+<a name="line-9"></a><a name="tokenise"></a><font color=Blue>-- | Lex Haskell source code into an annotated token stream, without</font>+<a name="line-10"></a><font color=Blue>--   discarding any characters or layout.</font> <a name="line-11"></a>tokenise <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <a name="line-12"></a>tokenise str <font color=Red>=</font>  <a name="line-13"></a>    <u><font color=Green>let</font></u> chunks <font color=Red>=</font> glue <font color=Cyan>.</font> chunk <font color=Cyan>$</font> str  <a name="line-14"></a>        newline <font color=Red>=</font> True <b><font color=Red>:</font></b> <font color=Cyan>(</font>map <font color=Cyan>(</font><font color=Magenta>"\n"</font> <font color=Cyan>`isPrefixOf`</font><font color=Cyan>)</font> chunks<font color=Cyan>)</font> <a name="line-15"></a>    <u><font color=Green>in</font></u> map <font color=Cyan>(</font><font color=Red>\</font><font color=Cyan>(</font>s<font color=Cyan>,</font>n<font color=Cyan>)</font><font color=Red>-&gt;</font> <font color=Cyan>(</font>classify s n<font color=Cyan>,</font>s<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>(</font>zip chunks newline<font color=Cyan>)</font> <a name="line-16"></a>-<a name="line-17"></a><a name="chunk"></a><font color=Blue><i>-- Basic Haskell lexing, except we keep whitespace.</i></font>+<a name="line-17"></a><a name="chunk"></a><font color=Blue>-- Basic Haskell lexing, except we keep whitespace.</font> <a name="line-18"></a>chunk <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font> <a name="line-19"></a>chunk []    <font color=Red>=</font> []-<a name="line-20"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\r'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> chunk s <font color=Blue><i>-- get rid of DOS newline stuff</i></font>+<a name="line-20"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\r'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> chunk s <font color=Blue>-- get rid of DOS newline stuff</font> <a name="line-21"></a>chunk <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\n"</font><b><font color=Red>:</font></b> chunk s <a name="line-22"></a>chunk <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>|</font> isLinearSpace c <a name="line-23"></a>            <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk rest <u><font color=Green>where</font></u> <font color=Cyan>(</font>ss<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> span isLinearSpace s <a name="line-24"></a>chunk <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <u><font color=Green>let</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Magenta>0</font> s <a name="line-25"></a>                    <u><font color=Green>in</font></u> <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>com<font color=Cyan>)</font> <b><font color=Red>:</font></b> chunk s' <a name="line-26"></a>chunk s <font color=Red>=</font> <u><font color=Green>case</font></u> Prelude<font color=Cyan>.</font>lex s <u><font color=Green>of</font></u>-<a name="line-27"></a>              []             <font color=Red>-&gt;</font> <font color=Red>[</font>head s<font color=Red>]</font><b><font color=Red>:</font></b> chunk <font color=Cyan>(</font>tail s<font color=Cyan>)</font> <font color=Blue><i>-- e.g. inside comment</i></font>+<a name="line-27"></a>              []             <font color=Red>-&gt;</font> <font color=Red>[</font>head s<font color=Red>]</font><b><font color=Red>:</font></b> chunk <font color=Cyan>(</font>tail s<font color=Cyan>)</font> <font color=Blue>-- e.g. inside comment</font> <a name="line-28"></a>              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font><font color=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <a name="line-29"></a>                  <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> tok <font color=Red>-&gt;</font> <font color=Cyan>(</font>tok<font color=Cyan>++</font>com<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk s' <a name="line-30"></a>                                       <u><font color=Green>where</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment rest <a name="line-31"></a>              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>-&gt;</font> tok<b><font color=Red>:</font></b> chunk rest <a name="line-32"></a>-<a name="line-33"></a><a name="isLinearSpace"></a>isLinearSpace c <font color=Red>=</font> c <font color=Cyan>`elem`</font> <font color=Magenta>" \t\f"</font> <font color=Blue><i>-- " \t\xa0"</i></font>+<a name="line-33"></a><a name="isLinearSpace"></a>isLinearSpace c <font color=Red>=</font> c <font color=Cyan>`elem`</font> <font color=Magenta>" \t\f"</font> <font color=Blue>-- " \t\xa0"</font> <a name="line-34"></a>-<a name="line-35"></a><a name="glue"></a><font color=Blue><i>-- Glue sequences of tokens into more useful blobs</i></font>-<a name="line-36"></a><font color=Blue><i>--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names</i></font>-<a name="line-37"></a><font color=Blue><i>--                    = glue ((q++"."++n): rest)</i></font>-<a name="line-38"></a>glue <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font>				<font color=Blue><i>-- `varid` -&gt; varop</i></font>+<a name="line-35"></a><a name="glue"></a><font color=Blue>-- Glue sequences of tokens into more useful blobs</font>+<a name="line-36"></a><font color=Blue>--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names</font>+<a name="line-37"></a><font color=Blue>--                    = glue ((q++"."++n): rest)</font>+<a name="line-38"></a>glue <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font>				<font color=Blue>-- `varid` -&gt; varop</font> <a name="line-39"></a>  <u><font color=Green>case</font></u> glue rest <u><font color=Green>of</font></u> <a name="line-40"></a>    <font color=Cyan>(</font>qn<b><font color=Red>:</font></b><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"`"</font><font color=Cyan>++</font>qn<font color=Cyan>++</font><font color=Magenta>"`"</font><font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest <a name="line-41"></a>    <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> <font color=Magenta>"`"</font><b><font color=Red>:</font></b> glue rest-<a name="line-42"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s <font color=Cyan>&amp;&amp;</font> length s <font color=Cyan>&gt;=</font><font color=Magenta>2</font>	<font color=Blue><i>-- eol comment</i></font>+<a name="line-42"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s <font color=Cyan>&amp;&amp;</font> length s <font color=Cyan>&gt;=</font><font color=Magenta>2</font>	<font color=Blue>-- eol comment</font> <a name="line-43"></a>                  <font color=Red>=</font> <font color=Cyan>(</font>s<font color=Cyan>++</font>concat c<font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest <a name="line-44"></a>                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>c<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> break <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Cyan>`elem`</font><font color=Cyan>)</font> ss-<a name="line-45"></a><font color=Blue><i>--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment</i></font>-<a name="line-46"></a><font color=Blue><i>--                  where (c,rest) = nestcomment 0 ss</i></font>+<a name="line-45"></a><font color=Blue>--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment</font>+<a name="line-46"></a><font color=Blue>--                  where (c,rest) = nestcomment 0 ss</font> <a name="line-47"></a>glue <font color=Cyan>(</font><font color=Magenta>"("</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <u><font color=Green>case</font></u> rest <u><font color=Green>of</font></u> <a name="line-48"></a>                <font color=Magenta>")"</font><b><font color=Red>:</font></b>rest <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"("</font> <font color=Cyan>++</font> concat tuple <font color=Cyan>++</font> <font color=Magenta>")"</font><font color=Cyan>)</font> <b><font color=Red>:</font></b> glue rest <a name="line-49"></a>                <u><font color=Green>_</font></u>         <font color=Red>-&gt;</font> <font color=Magenta>"("</font> <b><font color=Red>:</font></b> glue ss@@ -61,12 +61,12 @@ <a name="line-54"></a>glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>=</font> s<b><font color=Red>:</font></b> glue ss <a name="line-55"></a>glue []           <font color=Red>=</font> [] <a name="line-56"></a>-<a name="line-57"></a><a name="nestcomment"></a><font color=Blue><i>-- Deal with comments.</i></font>+<a name="line-57"></a><a name="nestcomment"></a><font color=Blue>-- Deal with comments.</font> <a name="line-58"></a>nestcomment <font color=Red>::</font> Int <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font> <a name="line-59"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"{-"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font> <a name="line-60"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> ss <a name="line-61"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;</font><font color=Magenta>0</font>  <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font>-<a name="line-62"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Blue><i>-</i></font><font color=Magenta>1</font><font color=Cyan>)</font> ss+<a name="line-62"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> ss <a name="line-63"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>,</font>ss<font color=Cyan>)</font> <a name="line-64"></a>nestcomment n <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font>s<b><font color=Red>:</font></b>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font> <a name="line-65"></a>                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment n ss@@ -78,7 +78,7 @@ <a name="line-71"></a>eolcomment <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>      <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>,</font> s'<font color=Cyan>)</font> <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment s <a name="line-72"></a>eolcomment []         <font color=Red>=</font> <font color=Cyan>(</font>[]<font color=Cyan>,</font>[]<font color=Cyan>)</font> <a name="line-73"></a>-<a name="line-74"></a><a name="TokenType"></a><font color=Blue><i>-- | Classification of tokens as lexical entities</i></font>+<a name="line-74"></a><a name="TokenType"></a><font color=Blue>-- | Classification of tokens as lexical entities</font> <a name="line-75"></a><a name="TokenType"></a><u><font color=Green>data</font></u> TokenType <font color=Red>=</font> <a name="line-76"></a>  Space <font color=Red>|</font> Keyword <font color=Red>|</font> Keyglyph <font color=Red>|</font> Layout <font color=Red>|</font> Comment <font color=Red>|</font> Conid <font color=Red>|</font> Varid <font color=Red>|</font> <a name="line-77"></a>  Conop <font color=Red>|</font> Varop   <font color=Red>|</font> String   <font color=Red>|</font> Char   <font color=Red>|</font> Number  <font color=Red>|</font> Cpp   <font color=Red>|</font> Error <font color=Red>|</font>@@ -90,7 +90,7 @@ <a name="line-83"></a>    <font color=Red>|</font> isSpace h              <font color=Red>=</font> Space <a name="line-84"></a>    <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s          <font color=Red>=</font> Comment <a name="line-85"></a>    <font color=Red>|</font> <font color=Magenta>"--"</font> <font color=Cyan>`isPrefixOf`</font> s-<a name="line-86"></a>      <font color=Cyan>&amp;&amp;</font> any isSpace s       <font color=Red>=</font> Comment		<font color=Blue><i>-- not fully correct</i></font>+<a name="line-86"></a>      <font color=Cyan>&amp;&amp;</font> any isSpace s       <font color=Red>=</font> Comment		<font color=Blue>-- not fully correct</font> <a name="line-87"></a>    <font color=Red>|</font> <font color=Magenta>"{-"</font> <font color=Cyan>`isPrefixOf`</font> s    <font color=Red>=</font> Comment <a name="line-88"></a>    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keywords      <font color=Red>=</font> Keyword <a name="line-89"></a>    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keyglyphs     <font color=Red>=</font> Keyglyph@@ -114,7 +114,7 @@ <a name="line-107"></a>isTupleTail <u><font color=Green>_</font></u> <font color=Red>=</font> False <a name="line-108"></a> <a name="line-109"></a>-<a name="line-110"></a><a name="keywords"></a><font color=Blue><i>-- Haskell keywords</i></font>+<a name="line-110"></a><a name="keywords"></a><font color=Blue>-- Haskell keywords</font> <a name="line-111"></a>keywords <font color=Red>=</font> <a name="line-112"></a>  <font color=Red>[</font><font color=Magenta>"case"</font><font color=Cyan>,</font><font color=Magenta>"class"</font><font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>,</font><font color=Magenta>"default"</font><font color=Cyan>,</font><font color=Magenta>"deriving"</font><font color=Cyan>,</font><font color=Magenta>"do"</font><font color=Cyan>,</font><font color=Magenta>"else"</font><font color=Cyan>,</font><font color=Magenta>"forall"</font> <a name="line-113"></a>  <font color=Cyan>,</font><font color=Magenta>"if"</font><font color=Cyan>,</font><font color=Magenta>"import"</font><font color=Cyan>,</font><font color=Magenta>"in"</font><font color=Cyan>,</font><font color=Magenta>"infix"</font><font color=Cyan>,</font><font color=Magenta>"infixl"</font><font color=Cyan>,</font><font color=Magenta>"infixr"</font><font color=Cyan>,</font><font color=Magenta>"instance"</font><font color=Cyan>,</font><font color=Magenta>"let"</font><font color=Cyan>,</font><font color=Magenta>"module"</font>
docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html view
@@ -10,11 +10,11 @@ <a name="line-3"></a>  <font color=Cyan>,</font> Highlight<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font> <a name="line-4"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-5"></a>-<a name="line-6"></a><a name="Colour"></a><font color=Blue><i>-- | Colours supported by ANSI codes.</i></font>+<a name="line-6"></a><a name="Colour"></a><font color=Blue>-- | Colours supported by ANSI codes.</font> <a name="line-7"></a><a name="Colour"></a><u><font color=Green>data</font></u> Colour <font color=Red>=</font> Black <font color=Red>|</font> Red <font color=Red>|</font> Green <font color=Red>|</font> Yellow <font color=Red>|</font> Blue <font color=Red>|</font> Magenta <font color=Red>|</font> Cyan <font color=Red>|</font> White <a name="line-8"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>,</font>Enum<font color=Cyan>)</font> <a name="line-9"></a>-<a name="line-10"></a><a name="Highlight"></a><font color=Blue><i>-- | Types of highlighting supported by ANSI codes (and some extra styles).</i></font>+<a name="line-10"></a><a name="Highlight"></a><font color=Blue>-- | Types of highlighting supported by ANSI codes (and some extra styles).</font> <a name="line-11"></a><a name="Highlight"></a><u><font color=Green>data</font></u> Highlight <font color=Red>=</font> <a name="line-12"></a>    Normal <a name="line-13"></a>  <font color=Red>|</font> Bold@@ -25,7 +25,7 @@ <a name="line-18"></a>  <font color=Red>|</font> Concealed <a name="line-19"></a>  <font color=Red>|</font> Foreground Colour <a name="line-20"></a>  <font color=Red>|</font> Background Colour-<a name="line-21"></a>  <font color=Blue><i>-- Above are ANSI-only.  Below are extra styles.</i></font>+<a name="line-21"></a>  <font color=Blue>-- Above are ANSI-only.  Below are extra styles.</font> <a name="line-22"></a>  <font color=Red>|</font> Italic <a name="line-23"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font> <a name="line-24"></a>
docs/hscolour/Language/Haskell/HsColour/Colourise.html view
@@ -9,81 +9,82 @@ <a name="line-2"></a>  <font color=Cyan>(</font> <u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight <a name="line-3"></a>  <font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font> <a name="line-4"></a>  <font color=Cyan>,</font> readColourPrefs-<a name="line-5"></a>  <font color=Cyan>,</font> colourise-<a name="line-6"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u>-<a name="line-7"></a>-<a name="line-8"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight-<a name="line-9"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <font color=Cyan>(</font>TokenType<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-10"></a>-<a name="line-11"></a><u><font color=Green>import</font></u> IO <font color=Cyan>(</font>hPutStrLn<font color=Cyan>,</font>stderr<font color=Cyan>)</font>-<a name="line-12"></a><u><font color=Green>import</font></u> System <font color=Cyan>(</font>getEnv<font color=Cyan>)</font>-<a name="line-13"></a><u><font color=Green>import</font></u> List-<a name="line-14"></a>-<a name="line-15"></a><a name="ColourPrefs"></a><font color=Blue><i>-- | Colour preferences.</i></font>-<a name="line-16"></a><a name="ColourPrefs"></a><u><font color=Green>data</font></u> ColourPrefs <font color=Red>=</font> ColourPrefs-<a name="line-17"></a>  <font color=Cyan>{</font> keyword<font color=Cyan>,</font> keyglyph<font color=Cyan>,</font> layout<font color=Cyan>,</font> comment-<a name="line-18"></a>  <font color=Cyan>,</font> conid<font color=Cyan>,</font> varid<font color=Cyan>,</font> conop<font color=Cyan>,</font> varop-<a name="line-19"></a>  <font color=Cyan>,</font> string<font color=Cyan>,</font> char<font color=Cyan>,</font> number<font color=Cyan>,</font> cpp-<a name="line-20"></a>  <font color=Cyan>,</font> selection<font color=Cyan>,</font> variantselection<font color=Cyan>,</font> definition <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font>-<a name="line-21"></a>  <font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>-<a name="line-22"></a>-<a name="line-23"></a><a name="defaultColourPrefs"></a>defaultColourPrefs <font color=Red>=</font> ColourPrefs-<a name="line-24"></a>  <font color=Cyan>{</font> keyword  <font color=Red>=</font> <font color=Red>[</font>Foreground Green<font color=Cyan>,</font>Underscore<font color=Red>]</font>-<a name="line-25"></a>  <font color=Cyan>,</font> keyglyph <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Red>]</font>-<a name="line-26"></a>  <font color=Cyan>,</font> layout   <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>-<a name="line-27"></a>  <font color=Cyan>,</font> comment  <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Cyan>,</font> Italic<font color=Red>]</font>-<a name="line-28"></a>  <font color=Cyan>,</font> conid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>-<a name="line-29"></a>  <font color=Cyan>,</font> varid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>-<a name="line-30"></a>  <font color=Cyan>,</font> conop    <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Cyan>,</font>Bold<font color=Red>]</font>-<a name="line-31"></a>  <font color=Cyan>,</font> varop    <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>-<a name="line-32"></a>  <font color=Cyan>,</font> string   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>-<a name="line-33"></a>  <font color=Cyan>,</font> char     <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>-<a name="line-34"></a>  <font color=Cyan>,</font> number   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>-<a name="line-35"></a>  <font color=Cyan>,</font> cpp      <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Cyan>,</font>Dim<font color=Red>]</font>-<a name="line-36"></a>  <font color=Cyan>,</font> selection <font color=Red>=</font> <font color=Red>[</font>Bold<font color=Cyan>,</font> Foreground Magenta<font color=Red>]</font>-<a name="line-37"></a>  <font color=Cyan>,</font> variantselection <font color=Red>=</font> <font color=Red>[</font>Dim<font color=Cyan>,</font> Foreground Red<font color=Cyan>,</font> Underscore<font color=Red>]</font>-<a name="line-38"></a>  <font color=Cyan>,</font> definition <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Red>]</font>-<a name="line-39"></a>  <font color=Cyan>}</font>-<a name="line-40"></a>-<a name="line-41"></a><a name="parseColourPrefs"></a><font color=Blue><i>-- NOTE, should we give a warning message on a failed reading?</i></font>-<a name="line-42"></a>parseColourPrefs <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> IO ColourPrefs-<a name="line-43"></a>parseColourPrefs file x <font color=Red>=</font>-<a name="line-44"></a>    <u><font color=Green>case</font></u> reads x <u><font color=Green>of</font></u>-<a name="line-45"></a>        <font color=Cyan>(</font>res<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u> <font color=Red>-&gt;</font> return res-<a name="line-46"></a>        <u><font color=Green>_</font></u> <font color=Red>-&gt;</font> <u><font color=Green>do</font></u> hPutStrLn stderr <font color=Cyan>(</font><font color=Magenta>"Could not parse colour prefs from "</font><font color=Cyan>++</font>file-<a name="line-47"></a>                                  <font color=Cyan>++</font><font color=Magenta>": reverting to defaults"</font><font color=Cyan>)</font>-<a name="line-48"></a>                return defaultColourPrefs-<a name="line-49"></a>-<a name="line-50"></a><a name="readColourPrefs"></a><font color=Blue><i>-- | Read colour preferences from .hscolour file in the current directory, or failing that,</i></font>-<a name="line-51"></a><font color=Blue><i>--   from \$HOME\/.hscolour, and failing that, returns a default set of prefs.</i></font>-<a name="line-52"></a>readColourPrefs <font color=Red>::</font> IO ColourPrefs-<a name="line-53"></a>readColourPrefs <font color=Red>=</font> catch-<a name="line-54"></a>  <font color=Cyan>(</font><u><font color=Green>do</font></u> val <font color=Red>&lt;-</font> readFile <font color=Magenta>".hscolour"</font>-<a name="line-55"></a>      parseColourPrefs <font color=Magenta>".hscolour"</font> val<font color=Cyan>)</font>-<a name="line-56"></a>  <font color=Cyan>(</font><font color=Red>\</font><u><font color=Green>_</font></u><font color=Red>-&gt;</font> catch-<a name="line-57"></a>    <font color=Cyan>(</font><u><font color=Green>do</font></u> home <font color=Red>&lt;-</font> getEnv <font color=Magenta>"HOME"</font>-<a name="line-58"></a>        val <font color=Red>&lt;-</font> readFile <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font>-<a name="line-59"></a>        parseColourPrefs <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font> val<font color=Cyan>)</font>-<a name="line-60"></a>    <font color=Cyan>(</font><font color=Red>\</font><u><font color=Green>_</font></u><font color=Red>-&gt;</font> return defaultColourPrefs<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-61"></a>-<a name="line-62"></a><a name="colourise"></a><font color=Blue><i>-- | Convert token classification to colour highlights.</i></font>-<a name="line-63"></a>colourise <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> TokenType <font color=Red>-&gt;</font> <font color=Red>[</font>Highlight<font color=Red>]</font>-<a name="line-64"></a>colourise pref Space    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>-<a name="line-65"></a>colourise pref Comment  <font color=Red>=</font> comment pref-<a name="line-66"></a>colourise pref Keyword  <font color=Red>=</font> keyword pref-<a name="line-67"></a>colourise pref Keyglyph <font color=Red>=</font> keyglyph pref-<a name="line-68"></a>colourise pref Layout   <font color=Red>=</font> layout pref-<a name="line-69"></a>colourise pref Conid    <font color=Red>=</font> conid pref-<a name="line-70"></a>colourise pref Varid    <font color=Red>=</font> varid pref-<a name="line-71"></a>colourise pref Conop    <font color=Red>=</font> conop pref-<a name="line-72"></a>colourise pref Varop    <font color=Red>=</font> varop pref-<a name="line-73"></a>colourise pref String   <font color=Red>=</font> string pref-<a name="line-74"></a>colourise pref Char     <font color=Red>=</font> char pref-<a name="line-75"></a>colourise pref Number   <font color=Red>=</font> number pref-<a name="line-76"></a>colourise pref Cpp      <font color=Red>=</font> cpp pref-<a name="line-77"></a>colourise pref Error    <font color=Red>=</font> selection pref-<a name="line-78"></a>colourise pref Definition <font color=Red>=</font> definition pref-<a name="line-79"></a>+<a name="line-5"></a>  <font color=Cyan>,</font> defaultColourPrefs+<a name="line-6"></a>  <font color=Cyan>,</font> colourise+<a name="line-7"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u>+<a name="line-8"></a>+<a name="line-9"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight+<a name="line-10"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <font color=Cyan>(</font>TokenType<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-11"></a>+<a name="line-12"></a><u><font color=Green>import</font></u> IO <font color=Cyan>(</font>hPutStrLn<font color=Cyan>,</font>stderr<font color=Cyan>)</font>+<a name="line-13"></a><u><font color=Green>import</font></u> System <font color=Cyan>(</font>getEnv<font color=Cyan>)</font>+<a name="line-14"></a><u><font color=Green>import</font></u> List+<a name="line-15"></a>+<a name="line-16"></a><a name="ColourPrefs"></a><font color=Blue>-- | Colour preferences.</font>+<a name="line-17"></a><a name="ColourPrefs"></a><u><font color=Green>data</font></u> ColourPrefs <font color=Red>=</font> ColourPrefs+<a name="line-18"></a>  <font color=Cyan>{</font> keyword<font color=Cyan>,</font> keyglyph<font color=Cyan>,</font> layout<font color=Cyan>,</font> comment+<a name="line-19"></a>  <font color=Cyan>,</font> conid<font color=Cyan>,</font> varid<font color=Cyan>,</font> conop<font color=Cyan>,</font> varop+<a name="line-20"></a>  <font color=Cyan>,</font> string<font color=Cyan>,</font> char<font color=Cyan>,</font> number<font color=Cyan>,</font> cpp+<a name="line-21"></a>  <font color=Cyan>,</font> selection<font color=Cyan>,</font> variantselection<font color=Cyan>,</font> definition <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font>+<a name="line-22"></a>  <font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>+<a name="line-23"></a>+<a name="line-24"></a><a name="defaultColourPrefs"></a>defaultColourPrefs <font color=Red>=</font> ColourPrefs+<a name="line-25"></a>  <font color=Cyan>{</font> keyword  <font color=Red>=</font> <font color=Red>[</font>Foreground Green<font color=Cyan>,</font>Underscore<font color=Red>]</font>+<a name="line-26"></a>  <font color=Cyan>,</font> keyglyph <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Red>]</font>+<a name="line-27"></a>  <font color=Cyan>,</font> layout   <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>+<a name="line-28"></a>  <font color=Cyan>,</font> comment  <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Cyan>,</font> Italic<font color=Red>]</font>+<a name="line-29"></a>  <font color=Cyan>,</font> conid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>+<a name="line-30"></a>  <font color=Cyan>,</font> varid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>+<a name="line-31"></a>  <font color=Cyan>,</font> conop    <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Cyan>,</font>Bold<font color=Red>]</font>+<a name="line-32"></a>  <font color=Cyan>,</font> varop    <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>+<a name="line-33"></a>  <font color=Cyan>,</font> string   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>+<a name="line-34"></a>  <font color=Cyan>,</font> char     <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>+<a name="line-35"></a>  <font color=Cyan>,</font> number   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>+<a name="line-36"></a>  <font color=Cyan>,</font> cpp      <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Cyan>,</font>Dim<font color=Red>]</font>+<a name="line-37"></a>  <font color=Cyan>,</font> selection <font color=Red>=</font> <font color=Red>[</font>Bold<font color=Cyan>,</font> Foreground Magenta<font color=Red>]</font>+<a name="line-38"></a>  <font color=Cyan>,</font> variantselection <font color=Red>=</font> <font color=Red>[</font>Dim<font color=Cyan>,</font> Foreground Red<font color=Cyan>,</font> Underscore<font color=Red>]</font>+<a name="line-39"></a>  <font color=Cyan>,</font> definition <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Red>]</font>+<a name="line-40"></a>  <font color=Cyan>}</font>+<a name="line-41"></a>+<a name="line-42"></a><a name="parseColourPrefs"></a><font color=Blue>-- NOTE, should we give a warning message on a failed reading?</font>+<a name="line-43"></a>parseColourPrefs <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> IO ColourPrefs+<a name="line-44"></a>parseColourPrefs file x <font color=Red>=</font>+<a name="line-45"></a>    <u><font color=Green>case</font></u> reads x <u><font color=Green>of</font></u>+<a name="line-46"></a>        <font color=Cyan>(</font>res<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u> <font color=Red>-&gt;</font> return res+<a name="line-47"></a>        <u><font color=Green>_</font></u> <font color=Red>-&gt;</font> <u><font color=Green>do</font></u> hPutStrLn stderr <font color=Cyan>(</font><font color=Magenta>"Could not parse colour prefs from "</font><font color=Cyan>++</font>file+<a name="line-48"></a>                                  <font color=Cyan>++</font><font color=Magenta>": reverting to defaults"</font><font color=Cyan>)</font>+<a name="line-49"></a>                return defaultColourPrefs+<a name="line-50"></a>+<a name="line-51"></a><a name="readColourPrefs"></a><font color=Blue>-- | Read colour preferences from .hscolour file in the current directory, or failing that,</font>+<a name="line-52"></a><font color=Blue>--   from \$HOME\/.hscolour, and failing that, returns a default set of prefs.</font>+<a name="line-53"></a>readColourPrefs <font color=Red>::</font> IO ColourPrefs+<a name="line-54"></a>readColourPrefs <font color=Red>=</font> catch+<a name="line-55"></a>  <font color=Cyan>(</font><u><font color=Green>do</font></u> val <font color=Red>&lt;-</font> readFile <font color=Magenta>".hscolour"</font>+<a name="line-56"></a>      parseColourPrefs <font color=Magenta>".hscolour"</font> val<font color=Cyan>)</font>+<a name="line-57"></a>  <font color=Cyan>(</font><font color=Red>\</font><u><font color=Green>_</font></u><font color=Red>-&gt;</font> catch+<a name="line-58"></a>    <font color=Cyan>(</font><u><font color=Green>do</font></u> home <font color=Red>&lt;-</font> getEnv <font color=Magenta>"HOME"</font>+<a name="line-59"></a>        val <font color=Red>&lt;-</font> readFile <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font>+<a name="line-60"></a>        parseColourPrefs <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font> val<font color=Cyan>)</font>+<a name="line-61"></a>    <font color=Cyan>(</font><font color=Red>\</font><u><font color=Green>_</font></u><font color=Red>-&gt;</font> return defaultColourPrefs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-62"></a>+<a name="line-63"></a><a name="colourise"></a><font color=Blue>-- | Convert token classification to colour highlights.</font>+<a name="line-64"></a>colourise <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> TokenType <font color=Red>-&gt;</font> <font color=Red>[</font>Highlight<font color=Red>]</font>+<a name="line-65"></a>colourise pref Space    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>+<a name="line-66"></a>colourise pref Comment  <font color=Red>=</font> comment pref+<a name="line-67"></a>colourise pref Keyword  <font color=Red>=</font> keyword pref+<a name="line-68"></a>colourise pref Keyglyph <font color=Red>=</font> keyglyph pref+<a name="line-69"></a>colourise pref Layout   <font color=Red>=</font> layout pref+<a name="line-70"></a>colourise pref Conid    <font color=Red>=</font> conid pref+<a name="line-71"></a>colourise pref Varid    <font color=Red>=</font> varid pref+<a name="line-72"></a>colourise pref Conop    <font color=Red>=</font> conop pref+<a name="line-73"></a>colourise pref Varop    <font color=Red>=</font> varop pref+<a name="line-74"></a>colourise pref String   <font color=Red>=</font> string pref+<a name="line-75"></a>colourise pref Char     <font color=Red>=</font> char pref+<a name="line-76"></a>colourise pref Number   <font color=Red>=</font> number pref+<a name="line-77"></a>colourise pref Cpp      <font color=Red>=</font> cpp pref+<a name="line-78"></a>colourise pref Error    <font color=Red>=</font> selection pref+<a name="line-79"></a>colourise pref Definition <font color=Red>=</font> definition pref+<a name="line-80"></a> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/HTML.html view
@@ -5,10 +5,10 @@ <title>Language/Haskell/HsColour/HTML.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using HTML with font tags.</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML  <a name="line-3"></a>    <font color=Cyan>(</font>hscolour<font color=Cyan>,</font> -<a name="line-4"></a>     <font color=Blue><i>-- * Internals</i></font>+<a name="line-4"></a>     <font color=Blue>-- * Internals</font> <a name="line-5"></a>     renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-6"></a> <a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors@@ -18,13 +18,13 @@ <a name="line-11"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font> <a name="line-12"></a> <a name="line-13"></a>-<a name="line-14"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code using HTML with font tags.</i></font>-<a name="line-15"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>-<a name="line-16"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether to include anchors.</i></font>-<a name="line-17"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output should be partial.</i></font>-<a name="line-18"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Title for webpage output.</i></font>-<a name="line-19"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-20"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>+<a name="line-14"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>+<a name="line-15"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>+<a name="line-16"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>+<a name="line-17"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial.</font>+<a name="line-18"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for webpage output.</font>+<a name="line-19"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-20"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font> <a name="line-21"></a>hscolour pref anchor partial title <font color=Red>=</font>  <a name="line-22"></a>    <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font> <a name="line-23"></a>    <font color=Cyan>.</font> pre@@ -49,13 +49,13 @@ <a name="line-42"></a>renderAnchors <u><font color=Green>_</font></u>      <font color=Cyan>(</font>Left v<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\""</font><font color=Cyan>++</font>v<font color=Cyan>++</font><font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <a name="line-43"></a>renderAnchors render <font color=Cyan>(</font>Right r<font color=Cyan>)</font> <font color=Red>=</font> render r <a name="line-44"></a>-<a name="line-45"></a><a name="renderComment"></a><font color=Blue><i>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</i></font>-<a name="line-46"></a><font color=Blue><i>-- hyperlinks</i></font>+<a name="line-45"></a><a name="renderComment"></a><font color=Blue>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</font>+<a name="line-46"></a><font color=Blue>-- hyperlinks</font> <a name="line-47"></a>renderComment <font color=Red>::</font> String <font color=Red>-&gt;</font> String <a name="line-48"></a>renderComment xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'h'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'p'</font><b><font color=Red>:</font></b><font color=Magenta>':'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> <a name="line-49"></a>        renderLink a <font color=Cyan>++</font> renderComment b <a name="line-50"></a>    <u><font color=Green>where</font></u>-<a name="line-51"></a>        <font color=Blue><i>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></i></font>+<a name="line-51"></a>        <font color=Blue>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></font> <a name="line-52"></a>        isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&amp;'()*+,;=-._~%"</font> <a name="line-53"></a>        <font color=Cyan>(</font>a<font color=Cyan>,</font>b<font color=Cyan>)</font> <font color=Red>=</font> span isUrlChar xs <a name="line-54"></a>        renderLink link <font color=Red>=</font> <font color=Magenta>"&lt;a href=\""</font> <font color=Cyan>++</font> link <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font> escape link <font color=Cyan>++</font> <font color=Magenta>"&lt;/a&gt;"</font>@@ -67,7 +67,7 @@ <a name="line-60"></a>renderNewLinesAnchors <font color=Red>=</font> unlines <font color=Cyan>.</font> map render <font color=Cyan>.</font> zip <font color=Red>[</font><font color=Magenta>1</font><font color=Red>..</font><font color=Red>]</font> <font color=Cyan>.</font> lines <a name="line-61"></a>    <u><font color=Green>where</font></u> render <font color=Cyan>(</font>line<font color=Cyan>,</font> s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\"line-"</font> <font color=Cyan>++</font> show line <font color=Cyan>++</font> <font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <font color=Cyan>++</font> s <a name="line-62"></a>-<a name="line-63"></a><a name="fontify"></a><font color=Blue><i>-- Html stuff</i></font>+<a name="line-63"></a><a name="fontify"></a><font color=Blue>-- Html stuff</font> <a name="line-64"></a>fontify [] s     <font color=Red>=</font> s <a name="line-65"></a>fontify <font color=Cyan>(</font>h<b><font color=Red>:</font></b>hs<font color=Cyan>)</font> s <font color=Red>=</font> font h <font color=Cyan>(</font>fontify hs s<font color=Cyan>)</font> <a name="line-66"></a>
docs/hscolour/Language/Haskell/HsColour/InlineCSS.html view
@@ -5,7 +5,7 @@ <title>Language/Haskell/HsColour/InlineCSS.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code as HTML with inline CSS.</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code as HTML with inline CSS.</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors@@ -14,15 +14,15 @@ <a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <font color=Cyan>(</font>renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> <a name="line-8"></a>                                       renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <a name="line-9"></a>-<a name="line-10"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete HTML document with inline styling</i></font>-<a name="line-11"></a>hscolour <font color=Red>::</font> ColourPrefs	<font color=Blue><i>-- ^ Preferences for styling.</i></font>-<a name="line-12"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether to include anchors.</i></font>-<a name="line-13"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue><i>-- ^ Whether output should be partial</i></font>-<a name="line-14"></a>                   <font color=Blue><i>--   (= no document headers will be included.)</i></font>-<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>-<a name="line-16"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-17"></a>         <font color=Red>-&gt;</font> String <font color=Blue><i>-- ^ An HTML document containing the coloured </i></font>-<a name="line-18"></a>                   <font color=Blue><i>--   Haskell source code.</i></font>+<a name="line-10"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete HTML document with inline styling</font>+<a name="line-11"></a>hscolour <font color=Red>::</font> ColourPrefs	<font color=Blue>-- ^ Preferences for styling.</font>+<a name="line-12"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether to include anchors.</font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether output should be partial</font>+<a name="line-14"></a>                   <font color=Blue>--   (= no document headers will be included.)</font>+<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Title for HTML page.</font>+<a name="line-16"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-17"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>+<a name="line-18"></a>                   <font color=Blue>--   Haskell source code.</font> <a name="line-19"></a>hscolour prefs anchor partial title <font color=Red>=</font> <a name="line-20"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font> <a name="line-21"></a>  <font color=Cyan>.</font> pre
docs/hscolour/Language/Haskell/HsColour/LaTeX.html view
@@ -5,19 +5,19 @@ <title>Language/Haskell/HsColour/LaTeX.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using LaTeX macros.</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using LaTeX macros.</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>General <a name="line-7"></a>-<a name="line-8"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code as a complete LaTeX document.</i></font>-<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>-<a name="line-10"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue><i>-- ^ Whether output should be partial (= no prologue).</i></font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-12"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ A LaTeX document\/fragment containing the coloured </i></font>-<a name="line-13"></a>                        <font color=Blue><i>--   Haskell source code.</i></font>+<a name="line-8"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete LaTeX document.</font>+<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>+<a name="line-10"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial (= no prologue).</font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-12"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ A LaTeX document\/fragment containing the coloured </font>+<a name="line-13"></a>                        <font color=Blue>--   Haskell source code.</font> <a name="line-14"></a>hscolour pref partial <font color=Red>=</font> <a name="line-15"></a>  <font color=Cyan>(</font> <u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail<font color=Cyan>)</font> <a name="line-16"></a>  <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font>@@ -26,8 +26,8 @@ <a name="line-19"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <a name="line-20"></a>top'n'tail  <font color=Red>=</font> <font color=Cyan>(</font>latexPrefix<font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>latexSuffix<font color=Cyan>)</font> <a name="line-21"></a>-<a name="line-22"></a><a name="renderToken"></a><font color=Blue><i>-- | Wrap each lexeme in the appropriate LaTeX macro.</i></font>-<a name="line-23"></a><font color=Blue><i>--   TODO: filter dangerous characters like "{}_$"</i></font>+<a name="line-22"></a><a name="renderToken"></a><font color=Blue>-- | Wrap each lexeme in the appropriate LaTeX macro.</font>+<a name="line-23"></a><font color=Blue>--   TODO: filter dangerous characters like "{}_$"</font> <a name="line-24"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String <a name="line-25"></a>renderToken pref <font color=Cyan>(</font>Space<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font> filterSpace text <a name="line-26"></a>renderToken pref <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font>   <font color=Red>=</font>@@ -38,7 +38,7 @@ <a name="line-31"></a>      <font color=Cyan>(</font>pre<font color=Cyan>,</font> post<font color=Cyan>)</font> <font color=Red>=</font> unzip <font color=Cyan>$</font> map latexHighlight style <a name="line-32"></a>  <u><font color=Green>in</font></u> concat pre <font color=Cyan>++</font> filterSpecial symb <font color=Cyan>++</font> concat post <a name="line-33"></a>-<a name="line-34"></a><a name="filterSpace"></a><font color=Blue><i>-- | Filter white space characters.</i></font>+<a name="line-34"></a><a name="filterSpace"></a><font color=Blue>-- | Filter white space characters.</font> <a name="line-35"></a>filterSpace <font color=Red>::</font> String <a name="line-36"></a>            <font color=Red>-&gt;</font> String <a name="line-37"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>@@ -47,10 +47,10 @@ <a name="line-40"></a>filterSpace <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font> <a name="line-41"></a>filterSpace []        <font color=Red>=</font> [] <a name="line-42"></a>-<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue><i>-- | Filters the characters "#$%&amp;~_^\{}" which are special</i></font>-<a name="line-44"></a><font color=Blue><i>--   in LaTeX.</i></font>-<a name="line-45"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue><i>-- ^ The string to filter. </i></font>-<a name="line-46"></a>              <font color=Red>-&gt;</font> String  <font color=Blue><i>-- ^ The LaTeX-safe string.</i></font>+<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue>-- | Filters the characters "#$%&amp;~_^\{}" which are special</font>+<a name="line-44"></a><font color=Blue>--   in LaTeX.</font>+<a name="line-45"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue>-- ^ The string to filter. </font>+<a name="line-46"></a>              <font color=Red>-&gt;</font> String  <font color=Blue>-- ^ The LaTeX-safe string.</font> <a name="line-47"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'#'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'#'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font> <a name="line-48"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'$'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'$'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font> <a name="line-49"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'%'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'%'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>@@ -70,7 +70,7 @@ <a name="line-63"></a>filterSpecial []        <font color=Red>=</font> [] <a name="line-64"></a> <a name="line-65"></a>-<a name="line-66"></a><a name="latexHighlight"></a><font color=Blue><i>-- | Constructs the appropriate LaTeX macro for the given style.</i></font>+<a name="line-66"></a><a name="latexHighlight"></a><font color=Blue>-- | Constructs the appropriate LaTeX macro for the given style.</font> <a name="line-67"></a>latexHighlight <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font> String<font color=Cyan>)</font> <a name="line-68"></a>latexHighlight Normal         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\rm{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-69"></a>latexHighlight Bold           <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\bf{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>@@ -83,7 +83,7 @@ <a name="line-76"></a>latexHighlight <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\colorbox{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-77"></a>latexHighlight Italic         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\it{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-78"></a>-<a name="line-79"></a><a name="latexColour"></a><font color=Blue><i>-- | Translate a 'Colour' into a LaTeX colour name.</i></font>+<a name="line-79"></a><a name="latexColour"></a><font color=Blue>-- | Translate a 'Colour' into a LaTeX colour name.</font> <a name="line-80"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String <a name="line-81"></a>latexColour Black   <font color=Red>=</font> <font color=Magenta>"black"</font> <a name="line-82"></a>latexColour Red     <font color=Red>=</font> <font color=Magenta>"red"</font>@@ -94,7 +94,7 @@ <a name="line-87"></a>latexColour Cyan    <font color=Red>=</font> <font color=Magenta>"cyan"</font> <a name="line-88"></a>latexColour White   <font color=Red>=</font> <font color=Magenta>"white"</font> <a name="line-89"></a>-<a name="line-90"></a><a name="latexPrefix"></a><font color=Blue><i>-- | Generic LaTeX document preamble.</i></font>+<a name="line-90"></a><a name="latexPrefix"></a><font color=Blue>-- | Generic LaTeX document preamble.</font> <a name="line-91"></a>latexPrefix <font color=Red>=</font> unlines <a name="line-92"></a>    <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font> <a name="line-93"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>@@ -110,7 +110,7 @@ <a name="line-103"></a>    <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font> <a name="line-104"></a>    <font color=Red>]</font> <a name="line-105"></a>-<a name="line-106"></a><a name="latexSuffix"></a><font color=Blue><i>-- | Generic LaTeX document postamble.</i></font>+<a name="line-106"></a><a name="latexSuffix"></a><font color=Blue>-- | Generic LaTeX document postamble.</font> <a name="line-107"></a>latexSuffix <font color=Red>=</font> unlines <a name="line-108"></a>    <font color=Red>[</font><font color=Magenta>""</font> <a name="line-109"></a>    <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>
docs/hscolour/Language/Haskell/HsColour/MIRC.html view
@@ -5,8 +5,8 @@ <title>Language/Haskell/HsColour/MIRC.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using mIRC codes.</i></font>-<a name="line-2"></a><font color=Blue><i>--   (see http:\/\/irssi.org\/documentation\/formats)</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using mIRC codes.</font>+<a name="line-2"></a><font color=Blue>--   (see http:\/\/irssi.org\/documentation\/formats)</font> <a name="line-3"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>MIRC <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-4"></a> <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify@@ -15,17 +15,17 @@ <a name="line-8"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font> <a name="line-9"></a> <a name="line-10"></a>-<a name="line-11"></a><a name="hscolour"></a><font color=Blue><i>-- | Formats Haskell source code using mIRC codes.</i></font>-<a name="line-12"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>-<a name="line-13"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-14"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>+<a name="line-11"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using mIRC codes.</font>+<a name="line-12"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>+<a name="line-13"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-14"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font> <a name="line-15"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise <a name="line-16"></a> <a name="line-17"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String <a name="line-18"></a>renderToken pref <font color=Cyan>(</font>t<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> fontify <font color=Cyan>(</font>colourise pref t<font color=Cyan>)</font> s <a name="line-19"></a> <a name="line-20"></a>-<a name="line-21"></a><a name="fontify"></a><font color=Blue><i>-- mIRC stuff</i></font>+<a name="line-21"></a><a name="fontify"></a><font color=Blue>-- mIRC stuff</font> <a name="line-22"></a>fontify hs <font color=Red>=</font> <a name="line-23"></a>    mircColours <font color=Cyan>(</font>joinColours hs<font color=Cyan>)</font> <a name="line-24"></a>    <font color=Cyan>.</font> highlight <font color=Cyan>(</font>filter <font color=Cyan>(</font><font color=Cyan>`elem`</font><font color=Red>[</font>Normal<font color=Cyan>,</font>Bold<font color=Cyan>,</font>Underscore<font color=Cyan>,</font>ReverseVideo<font color=Red>]</font><font color=Cyan>)</font> hs<font color=Cyan>)</font>@@ -38,7 +38,7 @@ <a name="line-31"></a>    font Underscore     s <font color=Red>=</font> <font color=Magenta>'\^_'</font><b><font color=Red>:</font></b>s<font color=Cyan>++</font><font color=Magenta>"\^_"</font> <a name="line-32"></a>    font ReverseVideo   s <font color=Red>=</font> <font color=Magenta>'\^V'</font><b><font color=Red>:</font></b>s<font color=Cyan>++</font><font color=Magenta>"\^V"</font> <a name="line-33"></a>-<a name="line-34"></a><a name="MircColour"></a><font color=Blue><i>-- mIRC combines colour codes in a non-modular way</i></font>+<a name="line-34"></a><a name="MircColour"></a><font color=Blue>-- mIRC combines colour codes in a non-modular way</font> <a name="line-35"></a><a name="MircColour"></a><u><font color=Green>data</font></u> MircColour <font color=Red>=</font> Mirc <font color=Cyan>{</font> fg<font color=Red>::</font>Colour<font color=Cyan>,</font> dim<font color=Red>::</font>Bool<font color=Cyan>,</font> bg<font color=Red>::</font>Maybe Colour<font color=Cyan>,</font> blink<font color=Red>::</font>Bool<font color=Cyan>}</font> <a name="line-36"></a> <a name="line-37"></a><a name="joinColours"></a>joinColours <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> MircColour
docs/hscolour/Language/Haskell/HsColour/Options.html view
@@ -8,25 +8,22 @@ <pre><a name="line-1"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Options <a name="line-2"></a>  <font color=Cyan>(</font> Option<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font> <a name="line-3"></a>  <font color=Cyan>,</font> Output<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="line-4"></a>  <font color=Cyan>,</font> Literate<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>-<a name="line-5"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u> -<a name="line-6"></a>-<a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output-<a name="line-8"></a>-<a name="line-9"></a><a name="Option"></a><font color=Blue><i>-- | Command-line options</i></font>-<a name="line-10"></a><a name="Option"></a><u><font color=Green>data</font></u> Option <font color=Red>=</font>-<a name="line-11"></a>    Help		<font color=Blue><i>-- ^ print usage message</i></font>-<a name="line-12"></a>  <font color=Red>|</font> Version		<font color=Blue><i>-- ^ report version</i></font>-<a name="line-13"></a>  <font color=Red>|</font> Information		<font color=Blue><i>-- ^ report auxiliary information, e.g. CSS defaults</i></font>-<a name="line-14"></a>  <font color=Red>|</font> Format Output	<font color=Blue><i>-- ^ what type of output to produce</i></font>-<a name="line-15"></a>  <font color=Red>|</font> LHS Literate	<font color=Blue><i>-- ^ literate input (i.e. multiple embedded fragments)</i></font>-<a name="line-16"></a>  <font color=Red>|</font> Anchors Bool	<font color=Blue><i>-- ^ whether to add anchors</i></font>-<a name="line-17"></a>  <font color=Red>|</font> Partial Bool	<font color=Blue><i>-- ^ whether to produce a full document or partial</i></font>-<a name="line-18"></a>  <font color=Red>|</font> Input FilePath	<font color=Blue><i>-- ^ input source file</i></font>-<a name="line-19"></a>  <font color=Red>|</font> Output FilePath	<font color=Blue><i>-- ^ output source file</i></font>-<a name="line-20"></a>  <u><font color=Green>deriving</font></u> Eq-<a name="line-21"></a>-<a name="line-22"></a><a name="Literate"></a><u><font color=Green>data</font></u> Literate <font color=Red>=</font> NoLit <font color=Red>|</font> Bird <font color=Red>|</font> TeX <u><font color=Green>deriving</font></u> Eq+<a name="line-4"></a>  <font color=Cyan>)</font> <u><font color=Green>where</font></u> +<a name="line-5"></a>+<a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output+<a name="line-7"></a>+<a name="line-8"></a><a name="Option"></a><font color=Blue>-- | Command-line options</font>+<a name="line-9"></a><a name="Option"></a><u><font color=Green>data</font></u> Option <font color=Red>=</font>+<a name="line-10"></a>    Help		<font color=Blue>-- ^ print usage message</font>+<a name="line-11"></a>  <font color=Red>|</font> Version		<font color=Blue>-- ^ report version</font>+<a name="line-12"></a>  <font color=Red>|</font> Information		<font color=Blue>-- ^ report auxiliary information, e.g. CSS defaults</font>+<a name="line-13"></a>  <font color=Red>|</font> Format Output	<font color=Blue>-- ^ what type of output to produce</font>+<a name="line-14"></a>  <font color=Red>|</font> LHS Bool		<font color=Blue>-- ^ literate input (i.e. multiple embedded fragments)</font>+<a name="line-15"></a>  <font color=Red>|</font> Anchors Bool	<font color=Blue>-- ^ whether to add anchors</font>+<a name="line-16"></a>  <font color=Red>|</font> Partial Bool	<font color=Blue>-- ^ whether to produce a full document or partial</font>+<a name="line-17"></a>  <font color=Red>|</font> Input FilePath	<font color=Blue>-- ^ input source file</font>+<a name="line-18"></a>  <font color=Red>|</font> Output FilePath	<font color=Blue>-- ^ output source file</font>+<a name="line-19"></a>  <u><font color=Green>deriving</font></u> Eq </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/Output.html view
@@ -7,13 +7,13 @@ <body> <pre><a name="line-1"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Output <u><font color=Green>where</font></u> <a name="line-2"></a>-<a name="line-3"></a><a name="Output"></a><font color=Blue><i>-- | The supported output formats.</i></font>-<a name="line-4"></a><a name="Output"></a><u><font color=Green>data</font></u> Output <font color=Red>=</font> TTY   <font color=Blue><i>-- ^ ANSI terminal codes</i></font>-<a name="line-5"></a>            <font color=Red>|</font> LaTeX <font color=Blue><i>-- ^ TeX macros</i></font>-<a name="line-6"></a>            <font color=Red>|</font> HTML  <font color=Blue><i>-- ^ HTML with font tags</i></font>-<a name="line-7"></a>            <font color=Red>|</font> CSS   <font color=Blue><i>-- ^ HTML with CSS.</i></font>-<a name="line-8"></a>            <font color=Red>|</font> ICSS  <font color=Blue><i>-- ^ HTML with inline CSS.</i></font>-<a name="line-9"></a>            <font color=Red>|</font> MIRC  <font color=Blue><i>-- ^ mIRC chat clients</i></font>+<a name="line-3"></a><a name="Output"></a><font color=Blue>-- | The supported output formats.</font>+<a name="line-4"></a><a name="Output"></a><u><font color=Green>data</font></u> Output <font color=Red>=</font> TTY   <font color=Blue>-- ^ ANSI terminal codes</font>+<a name="line-5"></a>            <font color=Red>|</font> LaTeX <font color=Blue>-- ^ TeX macros</font>+<a name="line-6"></a>            <font color=Red>|</font> HTML  <font color=Blue>-- ^ HTML with font tags</font>+<a name="line-7"></a>            <font color=Red>|</font> CSS   <font color=Blue>-- ^ HTML with CSS.</font>+<a name="line-8"></a>            <font color=Red>|</font> ICSS  <font color=Blue>-- ^ HTML with inline CSS.</font>+<a name="line-9"></a>            <font color=Red>|</font> MIRC  <font color=Blue>-- ^ mIRC chat clients</font> <a name="line-10"></a>  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font> </pre> </body>
docs/hscolour/Language/Haskell/HsColour/TTY.html view
@@ -5,17 +5,17 @@ <title>Language/Haskell/HsColour/TTY.hs</title> </head> <body>-<pre><a name="line-1"></a><font color=Blue><i>-- | Highlights Haskell code with ANSI terminal codes.</i></font>+<pre><a name="line-1"></a><font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font> <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u> <a name="line-3"></a> <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI <u><font color=Green>as</font></u> ANSI <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <a name="line-6"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <a name="line-7"></a>-<a name="line-8"></a><a name="hscolour"></a><font color=Blue><i>-- | Highlights Haskell code with ANSI terminal codes.</i></font>-<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences.</i></font>-<a name="line-10"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Haskell source code.</i></font>-<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue><i>-- ^ Coloured Haskell source code.</i></font>+<a name="line-8"></a><a name="hscolour"></a><font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font>+<a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>+<a name="line-10"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>+<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font> <a name="line-12"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise <a name="line-13"></a> <a name="line-14"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
docs/hscolour/doc-index-B.html view
@@ -145,14 +145,6 @@ ></TR ><TR ><TD CLASS="indexentry"->Bird</TD-><TD CLASS="indexlinks"-><A HREF="Language-Haskell-HsColour-Options.html#v%3ABird"->Language.Haskell.HsColour.Options</A-></TD-></TR-><TR-><TD CLASS="indexentry" >Black</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABlack"
docs/hscolour/doc-index-D.html view
@@ -153,6 +153,14 @@ ></TR ><TR ><TD CLASS="indexentry"+>defaultColourPrefs</TD+><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3AdefaultColourPrefs"+>Language.Haskell.HsColour.Colourise</A+></TD+></TR+><TR+><TD CLASS="indexentry" >definition</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Adefinition"
docs/hscolour/doc-index-L.html view
@@ -163,14 +163,6 @@ ></TR ><TR ><TD CLASS="indexentry"->Literate</TD-><TD CLASS="indexlinks"-><A HREF="Language-Haskell-HsColour-Options.html#t%3ALiterate"->Language.Haskell.HsColour.Options</A-></TD-></TR-><TR-><TD CLASS="indexentry" >layout</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Alayout"
docs/hscolour/doc-index-N.html view
@@ -135,14 +135,6 @@ ><TABLE CELLPADDING="0" CELLSPACING="5" ><TR ><TD CLASS="indexentry"->NoLit</TD-><TD CLASS="indexlinks"-><A HREF="Language-Haskell-HsColour-Options.html#v%3ANoLit"->Language.Haskell.HsColour.Options</A-></TD-></TR-><TR-><TD CLASS="indexentry" >Normal</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ANormal"
docs/hscolour/doc-index-T.html view
@@ -147,14 +147,6 @@ ></TR ><TR ><TD CLASS="indexentry"->TeX</TD-><TD CLASS="indexlinks"-><A HREF="Language-Haskell-HsColour-Options.html#v%3ATeX"->Language.Haskell.HsColour.Options</A-></TD-></TR-><TR-><TD CLASS="indexentry" >TokenType</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
hscolour.cabal view
@@ -1,12 +1,12 @@ Name: hscolour-Version: 1.13+Version: 1.14 Copyright: 2003-2009 Malcolm Wallace, University of York; 2006 Bjorn Bringert Maintainer: Malcolm Wallace Author: Malcolm Wallace Homepage: http://www.cs.york.ac.uk/fp/darcs/hscolour/ License: GPL License-file: LICENCE-GPL-Build-depends: haskell98, base+Build-depends: haskell98, base < 10 Extensions:  Synopsis: Colourise Haskell code. Description:
index.html view
@@ -36,10 +36,10 @@ <li> Download a tarfile package from:      <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/">      ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/</a>-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.tar.gz">-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.tar.gz</a>-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.zip">-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.13.zip</a>+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.tar.gz">+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.tar.gz</a>+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.zip">+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.zip</a> <li> Or use the <a href="http://darcs.net/">darcs</a> repository at<br>        <tt>darcs get http://www.cs.york.ac.uk/fp/darcs/hscolour</tt> <li> Sources and history are browsable on-line through@@ -53,11 +53,11 @@ <p> Just use one of the standard ways of building a Haskell program: <ul>+<li><tt>cabal install hscolour</tt> <li><tt>hmake HsColour</tt> <li><tt>ghc --make HsColour</tt> <li><tt>runhugs HsColour</tt> <li><tt>runhaskell Setup.hs configure/build/install</tt>-<li><tt>cabal install hscolour</tt> </ul>  <h2>Use</h2>@@ -69,41 +69,44 @@          [ -tty | -html | -css | -icss | -latex | -mirc ]          [ -lit | -lit-tex | -nolit ]          [ -anchor | -noanchor | -partial | -nopartial ]-         [file.hs]</pre>+         [file.hs]*</pre> </li></ul> <p> You can colourise a Haskell source file for either ANSI terminal codes-(option -tty), or HTML 3.2 with font tags (option -html), or HTML 4.01-output with CSS (option -css), or for XHTML 1.0 with inline CSS styling-(option -icss), or for LaTeX (option -latex), or for IRC (option -mirc).-The default is for terminal output.+(option <tt>-tty</tt>), or HTML 3.2 with font tags (option+<tt>-html</tt>), or HTML 4.01 output with CSS (option <tt>-css</tt>), or+for XHTML 1.0 with inline CSS styling (option <tt>-icss</tt>), or for+LaTeX (option <tt>-latex</tt>), or for IRC (option <tt>-mirc</tt>).  The+default is for terminal output. <p> If no file argument is given, it reads standard input.  Output is-written to file OUTPUT (option -o), defaulting to stdout.+written to file OUTPUT (option -o), defaulting to stdout.  Multiple input+files will be concatenated to the same output. <p>-HsColour can add named anchors in HTML (option -anchor) to+HsColour can add named anchors in HTML (option <tt>-anchor</tt>) to top-level definitions in the source file (functions, datatypes, classes).  This enables you to make links to a specific location in the generated file with the standard <tt>file.html#anchor</tt> notation (e.g. from <a href="http://haskell.org/haddock">haddock</a>-generated library documentation).  <a href="#haddock">See below for details.</a> <p>-If you want to embed several individual colourised fragments into a-larger document, then use the <tt>-partial</tt> option with each+If an input file is literate, that is, it has a suffix ".lhs" or ".ly"+or ".lx", then only the code fragments will be colourised, leaving the+commentary untouched.  You can explicitly override this+filename-guessing of literate status: use the <tt>-lit</tt> option to+force literate colouring, or <tt>-nolit</tt> to force all text to be+colourised.  (<tt>-lit-tex</tt> is an obsolete synonym for <tt>-lit</tt>)+<p>+For more advanced usage, if you are building documents in parts, and+you want to embed several individual colourised fragments into a+larger document, use the <tt>-partial</tt> option with each fragment, to omit the HTML DOCTYPE header, CSS stylesheet link, or LaTeX prologue.-<p>-Alternatively, if you have a literate input source (e.g. .lhs file),-then the <tt>-lit</tt> option will pass the literate parts untouched,-and colourise only the code fragments (indicated by Bird-tracks - a &gt;-in the left-most column), as if each was called individually with-<tt>-partial</tt>.  A literate file containing LaTeX rather than-Bird-style should use <tt>-lit-tex</tt> instead.   <h2>Configuration of colours</h2> <p>-If you use any of -html, -tty, -icss, -mirc, or -latex, you can configure the+If you use any output-format choice except <tt>-css</tt>, you can configure the colours for different lexical entities by editing a configuration file called <tt>.hscolour</tt> in the current directory. (An <a href=".hscolour">example</a> is included in the distribution.)@@ -197,6 +200,8 @@ <h2>History</h2> <p> <dl>+<dt>1.14</dt><dd> merges the -lit and -lit-tex options, adds -lit guessing,+                  and permits multiple input files</dd> <dt>1.13</dt><dd> added the new -icss output format, and italic highlights</dd> <dt>1.12</dt><dd> changed the CSS class names to avoid clashes with other                   web tools</dd>@@ -219,7 +224,7 @@ </dl>  <p>-This page last modified: 6th May 2009<br>+This page last modified: 21st August 2009<br> Malcolm Wallace<br>  </td></tr></table>