hscolour 1.12 → 1.13
raw patch · 37 files changed
+882/−362 lines, 37 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Language.Haskell.HsColour: ICSS :: Output
+ Language.Haskell.HsColour.ANSI: Italic :: Highlight
+ Language.Haskell.HsColour.ColourHighlight: Italic :: Highlight
+ Language.Haskell.HsColour.InlineCSS: hscolour :: ColourPrefs -> Bool -> Bool -> String -> String -> String
+ Language.Haskell.HsColour.Options: ICSS :: Output
+ Language.Haskell.HsColour.Output: ICSS :: Output
Files
- .hscolour +1/−1
- HsColour.hs +2/−1
- Language/Haskell/HsColour.hs +12/−10
- Language/Haskell/HsColour/ANSI.hs +1/−0
- Language/Haskell/HsColour/ColourHighlight.hs +3/−1
- Language/Haskell/HsColour/Colourise.hs +1/−1
- Language/Haskell/HsColour/HTML.hs +1/−0
- Language/Haskell/HsColour/InlineCSS.hs +80/−0
- Language/Haskell/HsColour/LaTeX.hs +1/−0
- Language/Haskell/HsColour/Output.hs +1/−0
- Makefile +2/−1
- README +7/−5
- docs/hscolour/Language-Haskell-HsColour-ANSI.html +17/−1
- docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html +17/−1
- docs/hscolour/Language-Haskell-HsColour-InlineCSS.html +200/−0
- docs/hscolour/Language-Haskell-HsColour-Options.html +17/−0
- docs/hscolour/Language-Haskell-HsColour-Output.html +17/−0
- docs/hscolour/Language-Haskell-HsColour.html +17/−0
- docs/hscolour/Language/Haskell/HsColour.html +94/−92
- docs/hscolour/Language/Haskell/HsColour/ANSI.html +36/−35
- docs/hscolour/Language/Haskell/HsColour/Anchors.html +39/−39
- docs/hscolour/Language/Haskell/HsColour/CSS.html +9/−9
- docs/hscolour/Language/Haskell/HsColour/Classify.html +18/−18
- docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html +6/−4
- docs/hscolour/Language/Haskell/HsColour/Colourise.html +6/−6
- docs/hscolour/Language/Haskell/HsColour/HTML.html +31/−30
- docs/hscolour/Language/Haskell/HsColour/InlineCSS.html +90/−0
- docs/hscolour/Language/Haskell/HsColour/LaTeX.html +49/−48
- docs/hscolour/Language/Haskell/HsColour/MIRC.html +8/−8
- docs/hscolour/Language/Haskell/HsColour/Options.html +10/−10
- docs/hscolour/Language/Haskell/HsColour/Output.html +8/−7
- docs/hscolour/Language/Haskell/HsColour/TTY.html +5/−5
- docs/hscolour/doc-index-H.html +10/−2
- docs/hscolour/doc-index-I.html +22/−0
- docs/hscolour/index.html +10/−0
- hscolour.cabal +16/−14
- index.html +18/−13
.hscolour view
@@ -2,7 +2,7 @@ { keyword = [Underscore,Foreground Green] , keyglyph = [Foreground Red] , layout = [Foreground Cyan]- , comment = [Foreground Blue]+ , comment = [Foreground Blue,Italic] , conid = [Normal] , varid = [Normal] , conop = [Bold,Foreground Red]
HsColour.hs view
@@ -10,7 +10,7 @@ import List (intersperse) import Debug.Trace -version = "1.11"+version = "1.13" optionTable :: [(String,Option)] optionTable = [ ("help", Help)@@ -18,6 +18,7 @@ , ("print-css", Information) , ("html", Format HTML) , ("css", Format CSS)+ , ("icss", Format ICSS) , ("tty", Format TTY) , ("latex", Format LaTeX) , ("mirc", Format MIRC)
Language/Haskell/HsColour.hs view
@@ -15,11 +15,12 @@ hscolour) where 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-import qualified Language.Haskell.HsColour.LaTeX as LaTeX-import qualified Language.Haskell.HsColour.MIRC as MIRC+import qualified Language.Haskell.HsColour.TTY as TTY+import qualified Language.Haskell.HsColour.HTML as HTML+import qualified Language.Haskell.HsColour.CSS as CSS+import qualified Language.Haskell.HsColour.InlineCSS as ICSS+import qualified Language.Haskell.HsColour.LaTeX as LaTeX+import qualified Language.Haskell.HsColour.MIRC as MIRC import Data.List(mapAccumL, isPrefixOf) import Data.Maybe import Language.Haskell.HsColour.Output@@ -52,11 +53,12 @@ -> String -- ^ Title for output. -> String -- ^ Haskell source code. -> String -- ^ Coloured Haskell source code.-hscolour' TTY pref _ _ _ = TTY.hscolour pref-hscolour' MIRC pref _ _ _ = MIRC.hscolour pref-hscolour' LaTeX pref _ partial _ = LaTeX.hscolour pref partial-hscolour' HTML pref anchor partial top = HTML.hscolour pref anchor partial top-hscolour' CSS _ anchor partial top = CSS.hscolour anchor partial top+hscolour' TTY pref _ _ _ = TTY.hscolour pref+hscolour' MIRC pref _ _ _ = MIRC.hscolour pref+hscolour' LaTeX pref _ partial _ = LaTeX.hscolour pref partial+hscolour' HTML pref anch partial top = HTML.hscolour pref anch partial top+hscolour' CSS _ anch partial top = CSS.hscolour anch partial top+hscolour' ICSS pref anch partial top = ICSS.hscolour pref anch partial top -- | Separating literate files into code\/comment chunks. data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show)
Language/Haskell/HsColour/ANSI.hs view
@@ -66,6 +66,7 @@ fromEnum Concealed = 8 fromEnum (Foreground c) = 30 + fromEnum c fromEnum (Background c) = 40 + fromEnum c+ fromEnum Italic = 2 -- | Make the given string appear with all of the listed highlights highlight :: [Highlight] -> String -> String
Language/Haskell/HsColour/ColourHighlight.hs view
@@ -7,7 +7,7 @@ data Colour = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White deriving (Eq,Show,Read,Enum) --- | Types of highlighting supported by ANSI codes.+-- | Types of highlighting supported by ANSI codes (and some extra styles). data Highlight = Normal | Bold@@ -18,5 +18,7 @@ | Concealed | Foreground Colour | Background Colour+ -- Above are ANSI-only. Below are extra styles.+ | Italic deriving (Eq,Show,Read)
Language/Haskell/HsColour/Colourise.hs view
@@ -24,7 +24,7 @@ { keyword = [Foreground Green,Underscore] , keyglyph = [Foreground Red] , layout = [Foreground Cyan]- , comment = [Foreground Blue]+ , comment = [Foreground Blue, Italic] , conid = [Normal] , varid = [Normal] , conop = [Foreground Red,Bold]
Language/Haskell/HsColour/HTML.hs view
@@ -73,6 +73,7 @@ font Concealed s = s font (Foreground c) s = "<font color="++show c++">"++s++"</font>" font (Background c) s = "<font bgcolor="++show c++">"++s++"</font>"+font Italic s = "<i>"++s++"</i>" escape ('<':cs) = "<"++escape cs escape ('>':cs) = ">"++escape cs
+ Language/Haskell/HsColour/InlineCSS.hs view
@@ -0,0 +1,80 @@+-- | Formats Haskell source code as HTML with inline CSS.+module Language.Haskell.HsColour.InlineCSS (hscolour) where++import Language.Haskell.HsColour.Anchors+import Language.Haskell.HsColour.Classify as Classify+import Language.Haskell.HsColour.Colourise+import Language.Haskell.HsColour.HTML (renderAnchors, renderComment,+ renderNewLinesAnchors, escape)++-- | Formats Haskell source code as a complete HTML document with inline styling+hscolour :: ColourPrefs -- ^ Preferences for styling.+ -> Bool -- ^ Whether to include anchors.+ -> Bool -- ^ Whether output should be partial+ -- (= no document headers will be included.)+ -> String -- ^ Title for HTML page.+ -> String -- ^ Haskell source code.+ -> String -- ^ An HTML document containing the coloured + -- Haskell source code.+hscolour prefs anchor partial title =+ (if partial then id else top'n'tail title)+ . pre+ . (if anchor + then renderNewLinesAnchors+ . concatMap (renderAnchors (renderToken prefs))+ . insertAnchors+ else concatMap (renderToken prefs))+ . tokenise++top'n'tail :: String -> String -> String+top'n'tail title = (cssPrefix title ++) . (++cssSuffix)++pre :: String -> String+pre = ("<pre style=\"font-family:Consolas, Monaco, Monospace;\">"++)+ . (++"</pre>")++renderToken :: ColourPrefs -> (TokenType,String) -> String+renderToken prefs (cls,text) =+ stylise (colourise prefs cls) $+ if cls == Comment then renderComment text else escape text++stylise :: [Highlight] -> String -> String+stylise hs s = "<span style=\"" ++ concatMap style hs ++ "\">" ++s++ "</span>"++cssPrefix title = unlines+ ["<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"+ ,"<html>"+ ,"<head>"+ ,"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"+ ,"<title>"++title++"</title>"+ ,"</head>"+ ,"<body style=\"background-color: #131313; color: #ffffff;\">"+ ]+ +cssSuffix = unlines+ ["</body>"+ ,"</html>"+ ]++style :: Highlight -> String+style Normal = ""+style Bold = "font-weight: bold;"+style Dim = "font-weight: lighter;"+style Underscore = "text-decoration: underline;"+style Blink = "text-decoration: blink;"+style ReverseVideo = ""+style Concealed = "text-decoration: line-through;"+style (Foreground c) = "color: "++csscolour c++";"+style (Background c) = "background-colour: "++csscolour c++";"+style Italic = "font-style: italic;"++csscolour :: Colour -> String+csscolour Black = "#000000"+csscolour Red = "#ff0000"+csscolour Green = "#00ff00"+csscolour Yellow = "#ffff00"+csscolour Blue = "#0000ff"+csscolour Magenta = "#ff00ff"+csscolour Cyan = "#00ffff"+csscolour White = "#ffffff"+
Language/Haskell/HsColour/LaTeX.hs view
@@ -74,6 +74,7 @@ latexHighlight Concealed = ("\\conceal{", "}") latexHighlight (Foreground c) = ("\\textcolor{"++ latexColour c ++"}{", "}") latexHighlight (Background c) = ("\\colorbox{"++ latexColour c ++"}{", "}")+latexHighlight Italic = ("{\\it{}", "}") -- | Translate a 'Colour' into a LaTeX colour name. latexColour :: Colour -> String
Language/Haskell/HsColour/Output.hs view
@@ -5,5 +5,6 @@ | LaTeX -- ^ TeX macros | HTML -- ^ HTML with font tags | CSS -- ^ HTML with CSS.+ | ICSS -- ^ HTML with inline CSS. | MIRC -- ^ mIRC chat clients deriving (Eq,Show)
Makefile view
@@ -1,5 +1,5 @@ LIBRARY = hscolour-VERSION = 1.12+VERSION = 1.13 DIRS = Language/Haskell/HsColour @@ -12,6 +12,7 @@ Language/Haskell/HsColour/ColourHighlight.hs \ Language/Haskell/HsColour/Colourise.hs \ Language/Haskell/HsColour/HTML.hs \+ Language/Haskell/HsColour/InlineCSS.hs \ Language/Haskell/HsColour/LaTeX.hs \ Language/Haskell/HsColour/TTY.hs \ Language/Haskell/HsColour/MIRC.hs \
README view
@@ -10,21 +10,22 @@ Usage: HsColour [-Ofile]- [ -tty | -html | -css | -latex | -mirc ]+ [ -tty | -html | -css | -icss | -latex | -mirc ] [ -lit | -lit-tex | -anchor | -partial ] [ -nolit | -noanchor| -nopartial ] [file.hs] The program can colourise a Haskell source file for either terminal output (option -tty), or HTML 3.2 output with font tags (option -html),-or HTML 4.01 output with CSS (option -css), or LaTeX output (option--latex), or IRC chat client (option -mirc). The default is for terminal-output, which uses standard ANSI screen codes for the colours.+or HTML 4.01 output with CSS (option -css), or XHTML 1.0 output with+inline styling (option -icss) or LaTeX output (option -latex), or IRC+chat client (option -mirc). The default is for terminal output, which+uses standard ANSI screen codes for the colours. If no file argument is given, it reads standard input. Output is written to the file specified by the -O option, or by default, stdout. -HsColour can add named anchors in HTML or CSS (option -anchor) to+HsColour can add named anchors in HTML or CSS or ICSS (option -anchor) 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 "file.html#anchor" notation.@@ -64,6 +65,7 @@ | Concealed | Foreground Colour | Background Colour+ | Italic For CSS output, it is sufficient to edit the hscolour.css file, also in the distribution.
docs/hscolour/Language-Haskell-HsColour-ANSI.html view
@@ -190,6 +190,12 @@ >Colour</A ></TD ></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AItalic"+>Italic</A+></TD+></TR ></TABLE ></TD ></TR@@ -413,7 +419,7 @@ ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc"->Types of highlighting supported by ANSI codes.+>Types of highlighting supported by ANSI codes (and some extra styles). </TD ></TR ><TR@@ -513,6 +519,16 @@ >Background</B > <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour" >Colour</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AItalic"+></A+><B+>Italic</B ></TD ><TD CLASS="rdoc" ></TD
docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html view
@@ -221,6 +221,12 @@ >Colour</A ></TD ></TR+><TR+><TD CLASS="decl"+>| <A HREF="#v%3AItalic"+>Italic</A+></TD+></TR ></TABLE ></TD ></TR@@ -429,7 +435,7 @@ ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc"->Types of highlighting supported by ANSI codes.+>Types of highlighting supported by ANSI codes (and some extra styles). </TD ></TR ><TR@@ -529,6 +535,16 @@ >Background</B > <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour" >Colour</A+></TD+><TD CLASS="rdoc"+></TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AItalic"+></A+><B+>Italic</B ></TD ><TD CLASS="rdoc" ></TD
+ docs/hscolour/Language-Haskell-HsColour-InlineCSS.html view
@@ -0,0 +1,200 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Language.Haskell.HsColour.InlineCSS</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>hscolour</TD+><TD CLASS="topbut"+><A HREF="Language/Haskell/HsColour/InlineCSS.html"+>Source code</A+></TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Language.Haskell.HsColour.InlineCSS</FONT+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+>Formats Haskell source code as HTML with inline CSS.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Ahscolour"+>hscolour</A+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"+>ColourPrefs</A+> -> Bool -> Bool -> String -> String -> String</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="topdecl"+><TABLE CLASS="declbar"+><TR+><TD CLASS="declname"+><A NAME="v%3Ahscolour"+></A+><B+>hscolour</B+></TD+><TD CLASS="declbut"+><A HREF="Language/Haskell/HsColour/InlineCSS.html#hscolour"+>Source</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="arg"+>:: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"+>ColourPrefs</A+></TD+><TD CLASS="rdoc"+>Preferences for styling.+</TD+></TR+><TR+><TD CLASS="arg"+>-> Bool</TD+><TD CLASS="rdoc"+>Whether to include anchors.+</TD+></TR+><TR+><TD CLASS="arg"+>-> Bool</TD+><TD CLASS="rdoc"+>Whether output should be partial+ (= no document headers will be included.)+</TD+></TR+><TR+><TD CLASS="arg"+>-> String</TD+><TD CLASS="rdoc"+>Title for HTML page.+</TD+></TR+><TR+><TD CLASS="arg"+>-> String</TD+><TD CLASS="rdoc"+>Haskell source code.+</TD+></TR+><TR+><TD CLASS="arg"+>-> String</TD+><TD CLASS="rdoc"+>An HTML document containing the coloured + Haskell source code.+</TD+></TR+><TR+><TD CLASS="ndoc" COLSPAN="2"+>Formats Haskell source code as a complete HTML document with inline styling+</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 0.8</TD+></TR+></TABLE+></BODY+></HTML+>
docs/hscolour/Language-Haskell-HsColour-Options.html view
@@ -199,6 +199,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -510,6 +516,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language-Haskell-HsColour-Output.html view
@@ -117,6 +117,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -219,6 +225,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language-Haskell-HsColour.html view
@@ -146,6 +146,12 @@ ></TR ><TR ><TD CLASS="decl"+>| <A HREF="#v%3AICSS"+>ICSS</A+></TD+></TR+><TR+><TD CLASS="decl" >| <A HREF="#v%3AMIRC" >MIRC</A ></TD@@ -316,6 +322,17 @@ ></TD ><TD CLASS="rdoc" >HTML with CSS.+</TD+></TR+><TR+><TD CLASS="arg"+><A NAME="v%3AICSS"+></A+><B+>ICSS</B+></TD+><TD CLASS="rdoc"+>HTML with inline CSS. </TD ></TR ><TR
docs/hscolour/Language/Haskell/HsColour.html view
@@ -5,102 +5,104 @@ <title>Language/Haskell/HsColour.hs</title> </head> <body>-<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 five 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 with font tags</font>-<a name="line-9"></a><font color=Blue>--</font>-<a name="line-10"></a><font color=Blue>-- * HTML with CSS.</font>-<a name="line-11"></a><font color=Blue>--</font>-<a name="line-12"></a><font color=Blue>-- * mIRC chat client colour codes.</font>-<a name="line-13"></a><font color=Blue>--</font>+<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>LaTeX <u><font color=Green>as</font></u> LaTeX-<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>MIRC <u><font color=Green>as</font></u> MIRC-<a name="line-23"></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-24"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Maybe-<a name="line-25"></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-26"></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-27"></a><u><font color=Green>import</font></u> Debug<font color=Cyan>.</font>Trace-<a name="line-28"></a>-<a name="line-29"></a><a name="hscolour"></a><font color=Blue>-- | Colourise Haskell source code with the given output format.</font>-<a name="line-30"></a>hscolour <font color=Red>::</font> Output <font color=Blue>-- ^ Output format.</font>-<a name="line-31"></a> <font color=Red>-></font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them).</font>-<a name="line-32"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-33"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ Whether output document is partial or complete.</font>-<a name="line-34"></a> <font color=Red>-></font> Literate <font color=Blue>-- ^ Whether input document is literate haskell or not</font>-<a name="line-35"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Title for output.</font>-<a name="line-36"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-37"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Coloured Haskell source code.</font>-<a name="line-38"></a>hscolour output pref anchor partial literate title <font color=Red>=</font>-<a name="line-39"></a> <u><font color=Green>case</font></u> literate <u><font color=Green>of</font></u>-<a name="line-40"></a> NoLit <font color=Red>-></font> hscolour' output pref anchor partial title-<a name="line-41"></a> Bird <font color=Red>-></font> literateHandler <font color=Cyan>(</font>map lhsClassify<font color=Cyan>)</font>-<a name="line-42"></a> TeX <font color=Red>-></font> literateHandler <font color=Cyan>(</font>snd <font color=Cyan>.</font> mapAccumL decideTypeOfLine False<font color=Cyan>)</font>-<a name="line-43"></a> <u><font color=Green>where</font></u>-<a name="line-44"></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-45"></a> chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font> <font color=Red>=</font> c-<a name="line-46"></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-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>-></font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them).</font>-<a name="line-50"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-51"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ Whether output document is partial or complete.</font>-<a name="line-52"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Title for output.</font>-<a name="line-53"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-54"></a> <font color=Red>-></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 anchor partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour pref anchor partial top-<a name="line-59"></a>hscolour' CSS <u><font color=Green>_</font></u> anchor partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour anchor partial top-<a name="line-60"></a>-<a name="line-61"></a><a name="Lit"></a><font color=Blue>-- | Separating literate files into code\/comment chunks.</font>-<a name="line-62"></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-63"></a>-<a name="line-64"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>-<a name="line-65"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>-<a name="line-66"></a><font color=Blue>-- And retains the trailing '\n' character in each resultant string.</font>-<a name="line-67"></a>inlines <font color=Red>::</font> String <font color=Red>-></font> <font color=Red>[</font>String<font color=Red>]</font>-<a name="line-68"></a>inlines s <font color=Red>=</font> lines' s id-<a name="line-69"></a> <u><font color=Green>where</font></u>-<a name="line-70"></a> lines' [] acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>-<a name="line-71"></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-72"></a><font color=Blue>--lines' ('\^M':s) acc = acc ['\n'] : lines' s id -- MacOS</font>-<a name="line-73"></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-74"></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-75"></a>-<a name="line-76"></a><a name="lhsClassify"></a><font color=Blue>-- Note, I just pass the > symbol to the colouriser, which assumes that</font>-<a name="line-77"></a><font color=Blue>-- it's token based and not parse-based!!!</font>-<a name="line-78"></a>lhsClassify <font color=Red>::</font> String <font color=Red>-></font> Lit-<a name="line-79"></a>lhsClassify <font color=Cyan>(</font><font color=Magenta>'>'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'>'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>-<a name="line-80"></a>lhsClassify xs <font color=Red>=</font> Lit xs-<a name="line-81"></a>-<a name="line-82"></a><a name="decideTypeOfLine"></a><font color=Blue>-- texstyle is a bool indicating whether we are currently inside a code block</font>-<a name="line-83"></a>decideTypeOfLine texStyle current_line -<a name="line-84"></a> <font color=Red>|</font> isPrefix <font color=Magenta>"\\begin{code}"</font> <font color=Red>=</font> codeLine-<a name="line-85"></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-86"></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-87"></a> <u><font color=Green>where</font></u> isPrefix <font color=Red>=</font> flip isPrefixOf current_line -<a name="line-88"></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-89"></a> is_end <font color=Red>=</font> isPrefix <font color=Magenta>"\\end{code}"</font>-<a name="line-90"></a>-<a name="line-91"></a><a name="joinL"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-></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>+<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>-></font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>+<a name="line-33"></a> <font color=Red>-></font> Bool <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-34"></a> <font color=Red>-></font> Bool <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>+<a name="line-35"></a> <font color=Red>-></font> Literate <font color=Blue><i>-- ^ Whether input document is literate haskell or not</i></font>+<a name="line-36"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Title for output.</i></font>+<a name="line-37"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-38"></a> <font color=Red>-></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>-></font> hscolour' output pref anchor partial title+<a name="line-42"></a> Bird <font color=Red>-></font> literateHandler <font color=Cyan>(</font>map lhsClassify<font color=Cyan>)</font>+<a name="line-43"></a> TeX <font color=Red>-></font> literateHandler <font color=Cyan>(</font>snd <font color=Cyan>.</font> mapAccumL decideTypeOfLine False<font color=Cyan>)</font>+<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>-></font> ColourPrefs <font color=Blue><i>-- ^ Colour preferences (for formats that support them).</i></font>+<a name="line-51"></a> <font color=Red>-></font> Bool <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-52"></a> <font color=Red>-></font> Bool <font color=Blue><i>-- ^ Whether output document is partial or complete.</i></font>+<a name="line-53"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Title for output.</i></font>+<a name="line-54"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-55"></a> <font color=Red>-></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>-></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-77"></a>+<a name="line-78"></a><a name="lhsClassify"></a><font color=Blue><i>-- Note, I just pass the > 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>-></font> Lit+<a name="line-81"></a>lhsClassify <font color=Cyan>(</font><font color=Magenta>'>'</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'>'</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>-></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> </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>-- | Partially taken from Hugs AnsiScreen.hs library:</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Partially taken from Hugs AnsiScreen.hs library:</i></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>-- Basic screen control codes:</font>+<a name="line-23"></a><font color=Blue><i>-- Basic screen control codes:</i></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>-></font> String <font color=Red>-></font> String-<a name="line-28"></a><a name="goto"></a><font color=Blue>-- | Move the screen cursor to the given position.</font>+<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-29"></a>goto <font color=Red>::</font> Int <font color=Red>-></font> Int <font color=Red>-></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>-- | Clear the screen.</font>+<a name="line-31"></a><a name="cls"></a><font color=Blue><i>-- | Clear the screen.</i></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>-- 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-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-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>-- data Colour -- imported from ColourHighlight</font>-<a name="line-57"></a><font color=Blue>-- data Highlight -- imported from ColourHighlight</font>+<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-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>@@ -73,34 +73,35 @@ <a name="line-66"></a> fromEnum Concealed <font color=Red>=</font> <font color=Magenta>8</font> <a name="line-67"></a> fromEnum <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>30</font> <font color=Cyan>+</font> fromEnum c <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>-<a name="line-70"></a><a name="highlight"></a><font color=Blue>-- | Make the given string appear with all of the listed highlights</font>-<a name="line-71"></a>highlight <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-></font> String <font color=Red>-></font> String-<a name="line-72"></a>highlight attrs s <font color=Red>=</font> highlightOn attrs <font color=Cyan>++</font> s <font color=Cyan>++</font> highlightOff-<a name="line-73"></a>-<a name="line-74"></a><a name="highlightOn"></a>highlightOn [] <font color=Red>=</font> highlightOn <font color=Red>[</font>Normal<font color=Red>]</font>-<a name="line-75"></a>highlightOn attrs <font color=Red>=</font> <font color=Magenta>"\ESC["</font>-<a name="line-76"></a> <font color=Cyan>++</font> concat <font color=Cyan>(</font>intersperse <font color=Magenta>";"</font> <font color=Cyan>(</font>map <font color=Cyan>(</font>show<font color=Cyan>.</font>fromEnum<font color=Cyan>)</font> attrs<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="line-77"></a> <font color=Cyan>++</font><font color=Magenta>"m"</font>-<a name="line-78"></a><a name="highlightOff"></a>highlightOff <font color=Red>=</font> <font color=Magenta>"\ESC[0m"</font>-<a name="line-79"></a>+<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-72"></a>highlight <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-></font> String <font color=Red>-></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>+<a name="line-75"></a><a name="highlightOn"></a>highlightOn [] <font color=Red>=</font> highlightOn <font color=Red>[</font>Normal<font color=Red>]</font>+<a name="line-76"></a>highlightOn attrs <font color=Red>=</font> <font color=Magenta>"\ESC["</font>+<a name="line-77"></a> <font color=Cyan>++</font> concat <font color=Cyan>(</font>intersperse <font color=Magenta>";"</font> <font color=Cyan>(</font>map <font color=Cyan>(</font>show<font color=Cyan>.</font>fromEnum<font color=Cyan>)</font> attrs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-78"></a> <font color=Cyan>++</font><font color=Magenta>"m"</font>+<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="colourCycle"></a><font color=Blue>-- | An infinite supply of colours.</font>-<a name="line-82"></a>colourCycle <font color=Red>::</font> <font color=Red>[</font>Colour<font color=Red>]</font>-<a name="line-83"></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-84"></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-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="enableScrollRegion"></a><font color=Blue>-- | Scrolling</font>-<a name="line-87"></a>enableScrollRegion <font color=Red>::</font> Int <font color=Red>-></font> Int <font color=Red>-></font> String-<a name="line-88"></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-89"></a>-<a name="line-90"></a><a name="scrollDown"></a>scrollDown <font color=Red>=</font> <font color=Magenta>"\ESCD"</font>-<a name="line-91"></a><a name="scrollUp"></a>scrollUp <font color=Red>=</font> <font color=Magenta>"\ESCM"</font>-<a name="line-92"></a>-<a name="line-93"></a><a name="lineWrap"></a><font color=Blue>-- Line-wrapping mode</font>-<a name="line-94"></a>lineWrap True <font color=Red>=</font> <font color=Magenta>"\ESC[7h"</font>-<a name="line-95"></a>lineWrap False <font color=Red>=</font> <font color=Magenta>"\ESC[7l"</font>-<a name="line-96"></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-88"></a>enableScrollRegion <font color=Red>::</font> Int <font color=Red>-></font> Int <font color=Red>-></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-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> </pre> </body> </html>
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>-- 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-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-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>-- | '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-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-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>-></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>-- 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-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-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>-></font> emit st s <a name="line-32"></a> Just v <font color=Red>-></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>-- 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-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-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>-- 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-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-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>-></font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>-<a name="line-47"></a> notVarop <font color=Blue>-- | typesig stream -> Nothing -- not a defn</font>-<a name="line-48"></a> <font color=Red>|</font> v <font color=Cyan>`inST`</font> st <font color=Red>-></font> Nothing <font color=Blue>-- already defined</font>+<a name="line-47"></a> notVarop <font color=Blue><i>-- | typesig stream -> 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>-></font> Nothing <font color=Blue><i>-- already defined</i></font> <a name="line-49"></a> <font color=Red>|</font> otherwise <font color=Red>-></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>-- | typesig stream -> Nothing</font>+<a name="line-53"></a> <font color=Blue><i>-- | typesig stream -> Nothing</i></font> <a name="line-54"></a> <font color=Red>|</font> v <font color=Cyan>`inST`</font> st <font color=Red>-></font> Nothing <a name="line-55"></a> <font color=Red>|</font> otherwise <font color=Red>-></font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font> <a name="line-56"></a> notVarop <font color=Red>-></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>-></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>-></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>-- not yet implemented</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><i>-- not yet implemented</i></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>-- Is this really a type signature? (no longer used)</font>+<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-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>-></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>-- 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-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-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>-</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><i>-</i></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>-- source is ill-formed</font>+<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-84"></a>-<a name="line-85"></a><a name="fix"></a><font color=Blue>-- ensure anchor name is correct for a Varop</font>+<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-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>-- look past whitespace and comments to next "real" token</font>+<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-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>-- skip possible context up to and including "=>", 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-94"></a><a name="getConid"></a><font color=Blue><i>-- skip possible context up to and including "=>", 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-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>-></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>-></font> debug v <font color=Cyan>(</font><font color=Magenta>"(...) no =>"</font><font color=Cyan>)</font> <a name="line-111"></a> v <font color=Red>-></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>-- 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-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-115"></a>-<a name="line-116"></a><a name="context"></a><font color=Blue>-- jump past possible class context</font>+<a name="line-116"></a><a name="context"></a><font color=Blue><i>-- jump past possible class context</i></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>"=>"</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>-- 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-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-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>-- | Formats Haskell source code as HTML with CSS.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code as HTML with CSS.</i></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>-- | 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>-></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>-></font> String <font color=Blue>-- ^ Title for HTML page.</font>-<a name="line-14"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-15"></a> <font color=Red>-></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-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>-></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>-></font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>+<a name="line-14"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-15"></a> <font color=Red>-></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-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>-- | 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-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-11"></a>tokenise <font color=Red>::</font> String <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> <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>-></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>-- Basic Haskell lexing, except we keep whitespace.</font>+<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-18"></a>chunk <font color=Red>::</font> String <font color=Red>-></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>-- get rid of DOS newline stuff</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-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>-></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-27"></a> [] <font color=Red>-></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-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>-></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>-></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>-- " \t\xa0"</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><i>-- " \t\xa0"</i></font> <a name="line-34"></a>-<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` -> varop</font>+<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` -> varop</i></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>-></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>-></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>&&</font> length s <font color=Cyan>>=</font><font color=Magenta>2</font> <font color=Blue>-- eol comment</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>&&</font> length s <font color=Cyan>>=</font><font color=Magenta>2</font> <font color=Blue><i>-- eol comment</i></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>--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-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-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>-></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>-></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>-- Deal with comments.</font>+<a name="line-57"></a><a name="nestcomment"></a><font color=Blue><i>-- Deal with comments.</i></font> <a name="line-58"></a>nestcomment <font color=Red>::</font> Int <font color=Red>-></font> String <font color=Red>-></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>>=</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>></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>-</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><i>-</i></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>>=</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>-- | Classification of tokens as lexical entities</font>+<a name="line-74"></a><a name="TokenType"></a><font color=Blue><i>-- | Classification of tokens as lexical entities</i></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>&&</font> any isSpace s <font color=Red>=</font> Comment <font color=Blue>-- not fully correct</font>+<a name="line-86"></a> <font color=Cyan>&&</font> any isSpace s <font color=Red>=</font> Comment <font color=Blue><i>-- not fully correct</i></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>-- Haskell keywords</font>+<a name="line-110"></a><a name="keywords"></a><font color=Blue><i>-- Haskell keywords</i></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>-- | Colours supported by ANSI codes.</font>+<a name="line-6"></a><a name="Colour"></a><font color=Blue><i>-- | Colours supported by ANSI codes.</i></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>-- | Types of highlighting supported by ANSI codes.</font>+<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-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,8 +25,10 @@ <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> <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-21"></a> <font color=Blue><i>-- Above are ANSI-only. Below are extra styles.</i></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> </pre> </body> </html>
docs/hscolour/Language/Haskell/HsColour/Colourise.html view
@@ -19,7 +19,7 @@ <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>-- | Colour preferences.</font>+<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@@ -31,7 +31,7 @@ <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=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>@@ -45,7 +45,7 @@ <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>-- NOTE, should we give a warning message on a failed reading?</font>+<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>-></font> String <font color=Red>-></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>@@ -54,8 +54,8 @@ <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>-- | Read colour preferences from .hscolour file in the current directory, or failing that,</font>-<a name="line-51"></a><font color=Blue>-- from \$HOME\/.hscolour, and failing that, returns a default set of prefs.</font>+<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><-</font> readFile <font color=Magenta>".hscolour"</font>@@ -66,7 +66,7 @@ <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>-></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>-- | Convert token classification to colour highlights.</font>+<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>-></font> TokenType <font color=Red>-></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
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>-- | Formats Haskell source code using HTML with font tags.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using HTML with font tags.</i></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>-- * Internals</font>+<a name="line-4"></a> <font color=Blue><i>-- * Internals</i></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>-- | 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>-></font> Bool <font color=Blue>-- ^ Whether to include anchors.</font>-<a name="line-17"></a> <font color=Red>-></font> Bool <font color=Blue>-- ^ Whether output should be partial.</font>-<a name="line-18"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Title for webpage output.</font>-<a name="line-19"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-20"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Coloured Haskell source code.</font>+<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>-></font> Bool <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-17"></a> <font color=Red>-></font> Bool <font color=Blue><i>-- ^ Whether output should be partial.</i></font>+<a name="line-18"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Title for webpage output.</i></font>+<a name="line-19"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-20"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Coloured Haskell source code.</i></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>"<a name=\""</font><font color=Cyan>++</font>v<font color=Cyan>++</font><font color=Magenta>"\"></a>"</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>-- 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-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-47"></a>renderComment <font color=Red>::</font> String <font color=Red>-></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>-- 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-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-52"></a> isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&'()*+,;=-._~%"</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>"<a href=\""</font> <font color=Cyan>++</font> link <font color=Cyan>++</font> <font color=Magenta>"\">"</font> <font color=Cyan>++</font> escape link <font color=Cyan>++</font> <font color=Magenta>"</a>"</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>"<a name=\"line-"</font> <font color=Cyan>++</font> show line <font color=Cyan>++</font> <font color=Magenta>"\"></a>"</font> <font color=Cyan>++</font> s <a name="line-62"></a>-<a name="line-63"></a><a name="fontify"></a><font color=Blue>-- Html stuff</font>+<a name="line-63"></a><a name="fontify"></a><font color=Blue><i>-- Html stuff</i></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>@@ -80,23 +80,24 @@ <a name="line-73"></a>font Concealed s <font color=Red>=</font> s <a name="line-74"></a>font <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"<font color="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>">"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"</font>"</font> <a name="line-75"></a>font <font color=Cyan>(</font>Background c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"<font bgcolor="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>">"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"</font>"</font>-<a name="line-76"></a>-<a name="line-77"></a><a name="escape"></a>escape <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>"&lt;"</font><font color=Cyan>++</font>escape cs-<a name="line-78"></a>escape <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>"&gt;"</font><font color=Cyan>++</font>escape cs-<a name="line-79"></a>escape <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>"&amp;"</font><font color=Cyan>++</font>escape cs-<a name="line-80"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs-<a name="line-81"></a>escape [] <font color=Red>=</font> []-<a name="line-82"></a>-<a name="line-83"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines-<a name="line-84"></a> <font color=Red>[</font> <font color=Magenta>"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">"</font>-<a name="line-85"></a> <font color=Cyan>,</font> <font color=Magenta>"<html>"</font>-<a name="line-86"></a> <font color=Cyan>,</font> <font color=Magenta>"<head>"</font>-<a name="line-87"></a> <font color=Cyan>,</font><font color=Magenta>"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"</font>-<a name="line-88"></a> <font color=Cyan>,</font> <font color=Magenta>"<title>"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"</title>"</font>-<a name="line-89"></a> <font color=Cyan>,</font> <font color=Magenta>"</head>"</font>-<a name="line-90"></a> <font color=Cyan>,</font> <font color=Magenta>"<body>"</font>-<a name="line-91"></a> <font color=Red>]</font>-<a name="line-92"></a><a name="htmlClose"></a>htmlClose <font color=Red>=</font> <font color=Magenta>"\n</body>\n</html>"</font>+<a name="line-76"></a>font Italic s <font color=Red>=</font> <font color=Magenta>"<i>"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"</i>"</font>+<a name="line-77"></a>+<a name="line-78"></a><a name="escape"></a>escape <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>"&lt;"</font><font color=Cyan>++</font>escape cs+<a name="line-79"></a>escape <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>"&gt;"</font><font color=Cyan>++</font>escape cs+<a name="line-80"></a>escape <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>"&amp;"</font><font color=Cyan>++</font>escape cs+<a name="line-81"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs+<a name="line-82"></a>escape [] <font color=Red>=</font> []+<a name="line-83"></a>+<a name="line-84"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines+<a name="line-85"></a> <font color=Red>[</font> <font color=Magenta>"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">"</font>+<a name="line-86"></a> <font color=Cyan>,</font> <font color=Magenta>"<html>"</font>+<a name="line-87"></a> <font color=Cyan>,</font> <font color=Magenta>"<head>"</font>+<a name="line-88"></a> <font color=Cyan>,</font><font color=Magenta>"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"</font>+<a name="line-89"></a> <font color=Cyan>,</font> <font color=Magenta>"<title>"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"</title>"</font>+<a name="line-90"></a> <font color=Cyan>,</font> <font color=Magenta>"</head>"</font>+<a name="line-91"></a> <font color=Cyan>,</font> <font color=Magenta>"<body>"</font>+<a name="line-92"></a> <font color=Red>]</font>+<a name="line-93"></a><a name="htmlClose"></a>htmlClose <font color=Red>=</font> <font color=Magenta>"\n</body>\n</html>"</font> </pre> </body> </html>
+ docs/hscolour/Language/Haskell/HsColour/InlineCSS.html view
@@ -0,0 +1,90 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">+<html>+<head>+<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->+<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>+<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+<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+<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><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>-></font> Bool <font color=Blue><i>-- ^ Whether to include anchors.</i></font>+<a name="line-13"></a> <font color=Red>-></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>-></font> String <font color=Blue><i>-- ^ Title for HTML page.</i></font>+<a name="line-16"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-17"></a> <font color=Red>-></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-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+<a name="line-22"></a> <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor +<a name="line-23"></a> <u><font color=Green>then</font></u> renderNewLinesAnchors+<a name="line-24"></a> <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-25"></a> <font color=Cyan>.</font> insertAnchors+<a name="line-26"></a> <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="line-27"></a> <font color=Cyan>.</font> tokenise+<a name="line-28"></a>+<a name="line-29"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-></font> String <font color=Red>-></font> String+<a name="line-30"></a>top'n'tail title <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>+<a name="line-31"></a>+<a name="line-32"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-></font> String+<a name="line-33"></a>pre <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"<pre style=\"font-family:Consolas, Monaco, Monospace;\">"</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="line-34"></a> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"</pre>"</font><font color=Cyan>)</font>+<a name="line-35"></a>+<a name="line-36"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-></font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-></font> String+<a name="line-37"></a>renderToken prefs <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>+<a name="line-38"></a> stylise <font color=Cyan>(</font>colourise prefs cls<font color=Cyan>)</font> <font color=Cyan>$</font>+<a name="line-39"></a> <u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text+<a name="line-40"></a>+<a name="line-41"></a><a name="stylise"></a>stylise <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-></font> String <font color=Red>-></font> String+<a name="line-42"></a>stylise hs s <font color=Red>=</font> <font color=Magenta>"<span style=\""</font> <font color=Cyan>++</font> concatMap style hs <font color=Cyan>++</font> <font color=Magenta>"\">"</font> <font color=Cyan>++</font>s<font color=Cyan>++</font> <font color=Magenta>"</span>"</font>+<a name="line-43"></a>+<a name="line-44"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines+<a name="line-45"></a> <font color=Red>[</font><font color=Magenta>"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"</font>+<a name="line-46"></a> <font color=Cyan>,</font><font color=Magenta>"<html>"</font>+<a name="line-47"></a> <font color=Cyan>,</font><font color=Magenta>"<head>"</font>+<a name="line-48"></a> <font color=Cyan>,</font><font color=Magenta>"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"</font>+<a name="line-49"></a> <font color=Cyan>,</font><font color=Magenta>"<title>"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"</title>"</font>+<a name="line-50"></a> <font color=Cyan>,</font><font color=Magenta>"</head>"</font>+<a name="line-51"></a> <font color=Cyan>,</font><font color=Magenta>"<body style=\"background-color: #131313; color: #ffffff;\">"</font>+<a name="line-52"></a> <font color=Red>]</font>+<a name="line-53"></a> +<a name="line-54"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines+<a name="line-55"></a> <font color=Red>[</font><font color=Magenta>"</body>"</font>+<a name="line-56"></a> <font color=Cyan>,</font><font color=Magenta>"</html>"</font>+<a name="line-57"></a> <font color=Red>]</font>+<a name="line-58"></a>+<a name="line-59"></a><a name="style"></a>style <font color=Red>::</font> Highlight <font color=Red>-></font> String+<a name="line-60"></a>style Normal <font color=Red>=</font> <font color=Magenta>""</font>+<a name="line-61"></a>style Bold <font color=Red>=</font> <font color=Magenta>"font-weight: bold;"</font>+<a name="line-62"></a>style Dim <font color=Red>=</font> <font color=Magenta>"font-weight: lighter;"</font>+<a name="line-63"></a>style Underscore <font color=Red>=</font> <font color=Magenta>"text-decoration: underline;"</font>+<a name="line-64"></a>style Blink <font color=Red>=</font> <font color=Magenta>"text-decoration: blink;"</font>+<a name="line-65"></a>style ReverseVideo <font color=Red>=</font> <font color=Magenta>""</font>+<a name="line-66"></a>style Concealed <font color=Red>=</font> <font color=Magenta>"text-decoration: line-through;"</font>+<a name="line-67"></a>style <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"color: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>+<a name="line-68"></a>style <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"background-colour: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>+<a name="line-69"></a>style Italic <font color=Red>=</font> <font color=Magenta>"font-style: italic;"</font>+<a name="line-70"></a>+<a name="line-71"></a><a name="csscolour"></a>csscolour <font color=Red>::</font> Colour <font color=Red>-></font> String+<a name="line-72"></a>csscolour Black <font color=Red>=</font> <font color=Magenta>"#000000"</font>+<a name="line-73"></a>csscolour Red <font color=Red>=</font> <font color=Magenta>"#ff0000"</font>+<a name="line-74"></a>csscolour Green <font color=Red>=</font> <font color=Magenta>"#00ff00"</font>+<a name="line-75"></a>csscolour Yellow <font color=Red>=</font> <font color=Magenta>"#ffff00"</font>+<a name="line-76"></a>csscolour Blue <font color=Red>=</font> <font color=Magenta>"#0000ff"</font>+<a name="line-77"></a>csscolour Magenta <font color=Red>=</font> <font color=Magenta>"#ff00ff"</font>+<a name="line-78"></a>csscolour Cyan <font color=Red>=</font> <font color=Magenta>"#00ffff"</font>+<a name="line-79"></a>csscolour White <font color=Red>=</font> <font color=Magenta>"#ffffff"</font>+<a name="line-80"></a>+</pre>+</body>+</html>
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>-- | Formats Haskell source code using LaTeX macros.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Formats Haskell source code using LaTeX macros.</i></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>-- | 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>-></font> Bool <font color=Blue>-- ^ Whether output should be partial (= no prologue).</font>-<a name="line-11"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-12"></a> <font color=Red>-></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-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>-></font> Bool <font color=Blue><i>-- ^ Whether output should be partial (= no prologue).</i></font>+<a name="line-11"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-12"></a> <font color=Red>-></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-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>-></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>-- | 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-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-24"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-></font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-></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>-- | Filter white space characters.</font>+<a name="line-34"></a><a name="filterSpace"></a><font color=Blue><i>-- | Filter white space characters.</i></font> <a name="line-35"></a>filterSpace <font color=Red>::</font> String <a name="line-36"></a> <font color=Red>-></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>-- | Filters the characters "#$%&~_^\{}" 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>-></font> String <font color=Blue>-- ^ The LaTeX-safe string.</font>+<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue><i>-- | Filters the characters "#$%&~_^\{}" 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>-></font> String <font color=Blue><i>-- ^ The LaTeX-safe string.</i></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>-- | Constructs the appropriate LaTeX macro for the given style.</font>+<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-67"></a>latexHighlight <font color=Red>::</font> Highlight <font color=Red>-></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>@@ -81,39 +81,40 @@ <a name="line-74"></a>latexHighlight Concealed <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\conceal{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font> <a name="line-75"></a>latexHighlight <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\textcolor{"</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-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>-<a name="line-78"></a><a name="latexColour"></a><font color=Blue>-- | Translate a 'Colour' into a LaTeX colour name.</font>-<a name="line-79"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-></font> String-<a name="line-80"></a>latexColour Black <font color=Red>=</font> <font color=Magenta>"black"</font>-<a name="line-81"></a>latexColour Red <font color=Red>=</font> <font color=Magenta>"red"</font>-<a name="line-82"></a>latexColour Green <font color=Red>=</font> <font color=Magenta>"green"</font>-<a name="line-83"></a>latexColour Yellow <font color=Red>=</font> <font color=Magenta>"yellow"</font>-<a name="line-84"></a>latexColour Blue <font color=Red>=</font> <font color=Magenta>"blue"</font>-<a name="line-85"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>-<a name="line-86"></a>latexColour Cyan <font color=Red>=</font> <font color=Magenta>"cyan"</font>-<a name="line-87"></a>latexColour White <font color=Red>=</font> <font color=Magenta>"white"</font>-<a name="line-88"></a>-<a name="line-89"></a><a name="latexPrefix"></a><font color=Blue>-- | Generic LaTeX document preamble.</font>-<a name="line-90"></a>latexPrefix <font color=Red>=</font> unlines-<a name="line-91"></a> <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font>-<a name="line-92"></a> <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>-<a name="line-93"></a> <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>-<a name="line-94"></a> <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>-<a name="line-95"></a> <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>-<a name="line-96"></a> <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>-<a name="line-97"></a> <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>-<a name="line-98"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>-<a name="line-99"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>-<a name="line-100"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>-<a name="line-101"></a> <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>-<a name="line-102"></a> <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font>-<a name="line-103"></a> <font color=Red>]</font>-<a name="line-104"></a>-<a name="line-105"></a><a name="latexSuffix"></a><font color=Blue>-- | Generic LaTeX document postamble.</font>-<a name="line-106"></a>latexSuffix <font color=Red>=</font> unlines-<a name="line-107"></a> <font color=Red>[</font><font color=Magenta>""</font>-<a name="line-108"></a> <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>-<a name="line-109"></a> <font color=Red>]</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-80"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-></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>+<a name="line-83"></a>latexColour Green <font color=Red>=</font> <font color=Magenta>"green"</font>+<a name="line-84"></a>latexColour Yellow <font color=Red>=</font> <font color=Magenta>"yellow"</font>+<a name="line-85"></a>latexColour Blue <font color=Red>=</font> <font color=Magenta>"blue"</font>+<a name="line-86"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>+<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-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>+<a name="line-94"></a> <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>+<a name="line-95"></a> <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>+<a name="line-96"></a> <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>+<a name="line-97"></a> <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>+<a name="line-98"></a> <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>+<a name="line-99"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>+<a name="line-100"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>+<a name="line-101"></a> <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>+<a name="line-102"></a> <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>+<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-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>+<a name="line-110"></a> <font color=Red>]</font> </pre> </body> </html>
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>-- | Formats Haskell source code using mIRC codes.</font>-<a name="line-2"></a><font color=Blue>-- (see http:\/\/irssi.org\/documentation\/formats)</font>+<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> <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>-- | 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>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-14"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Coloured Haskell source code.</font>+<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>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-14"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Coloured Haskell source code.</i></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>-></font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-></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>-- mIRC stuff</font>+<a name="line-21"></a><a name="fontify"></a><font color=Blue><i>-- mIRC stuff</i></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>-- mIRC combines colour codes in a non-modular way</font>+<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-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>-></font> MircColour
docs/hscolour/Language/Haskell/HsColour/Options.html view
@@ -13,17 +13,17 @@ <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>-- | Command-line options</font>+<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>-- ^ print usage message</font>-<a name="line-12"></a> <font color=Red>|</font> Version <font color=Blue>-- ^ report version</font>-<a name="line-13"></a> <font color=Red>|</font> Information <font color=Blue>-- ^ report auxiliary information, e.g. CSS defaults</font>-<a name="line-14"></a> <font color=Red>|</font> Format Output <font color=Blue>-- ^ what type of output to produce</font>-<a name="line-15"></a> <font color=Red>|</font> LHS Literate <font color=Blue>-- ^ literate input (i.e. multiple embedded fragments)</font>-<a name="line-16"></a> <font color=Red>|</font> Anchors Bool <font color=Blue>-- ^ whether to add anchors</font>-<a name="line-17"></a> <font color=Red>|</font> Partial Bool <font color=Blue>-- ^ whether to produce a full document or partial</font>-<a name="line-18"></a> <font color=Red>|</font> Input FilePath <font color=Blue>-- ^ input source file</font>-<a name="line-19"></a> <font color=Red>|</font> Output FilePath <font color=Blue>-- ^ output source file</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
docs/hscolour/Language/Haskell/HsColour/Output.html view
@@ -7,13 +7,14 @@ <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>-- | 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> MIRC <font color=Blue>-- ^ mIRC chat clients</font>-<a name="line-9"></a> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>+<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-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> </html>
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>-- | Highlights Haskell code with ANSI terminal codes.</font>+<pre><a name="line-1"></a><font color=Blue><i>-- | Highlights Haskell code with ANSI terminal codes.</i></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>-- | 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>-></font> String <font color=Blue>-- ^ Haskell source code.</font>-<a name="line-11"></a> <font color=Red>-></font> String <font color=Blue>-- ^ Coloured Haskell source code.</font>+<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>-></font> String <font color=Blue><i>-- ^ Haskell source code.</i></font>+<a name="line-11"></a> <font color=Red>-></font> String <font color=Blue><i>-- ^ Coloured Haskell source code.</i></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>-></font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-></font> String
docs/hscolour/doc-index-H.html view
@@ -219,13 +219,21 @@ ><TD CLASS="indexannot" >4 (Function)</TD ><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-InlineCSS.html#v%3Ahscolour"+>Language.Haskell.HsColour.InlineCSS</A+></TD+></TR+><TR+><TD CLASS="indexannot"+>5 (Function)</TD+><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-LaTeX.html#v%3Ahscolour" >Language.Haskell.HsColour.LaTeX</A ></TD ></TR ><TR ><TD CLASS="indexannot"->5 (Function)</TD+>6 (Function)</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-MIRC.html#v%3Ahscolour" >Language.Haskell.HsColour.MIRC</A@@ -233,7 +241,7 @@ ></TR ><TR ><TD CLASS="indexannot"->6 (Function)</TD+>7 (Function)</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-TTY.html#v%3Ahscolour" >Language.Haskell.HsColour.TTY</A
docs/hscolour/doc-index-I.html view
@@ -135,6 +135,18 @@ ><TABLE CELLPADDING="0" CELLSPACING="5" ><TR ><TD CLASS="indexentry"+>ICSS</TD+><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-Output.html#v%3AICSS"+>Language.Haskell.HsColour.Output</A+>, <A HREF="Language-Haskell-HsColour-Options.html#v%3AICSS"+>Language.Haskell.HsColour.Options</A+>, <A HREF="Language-Haskell-HsColour.html#v%3AICSS"+>Language.Haskell.HsColour</A+></TD+></TR+><TR+><TD CLASS="indexentry" >Information</TD ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Options.html#v%3AInformation"@@ -147,6 +159,16 @@ ><TD CLASS="indexlinks" ><A HREF="Language-Haskell-HsColour-Options.html#v%3AInput" >Language.Haskell.HsColour.Options</A+></TD+></TR+><TR+><TD CLASS="indexentry"+>Italic</TD+><TD CLASS="indexlinks"+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AItalic"+>Language.Haskell.HsColour.ColourHighlight</A+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AItalic"+>Language.Haskell.HsColour.ANSI</A ></TD ></TR ><TR
docs/hscolour/index.html view
@@ -159,6 +159,16 @@ ></TR ><TR ><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Language-Haskell-HsColour-InlineCSS.html"+>Language.Haskell.HsColour.InlineCSS</A+></TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding-left: 1.25em;width: 44em" ><A HREF="Language-Haskell-HsColour-LaTeX.html" >Language.Haskell.HsColour.LaTeX</A ></TD
hscolour.cabal view
@@ -1,5 +1,5 @@ Name: hscolour-Version: 1.12+Version: 1.13 Copyright: 2003-2009 Malcolm Wallace, University of York; 2006 Bjorn Bringert Maintainer: Malcolm Wallace Author: Malcolm Wallace@@ -11,28 +11,30 @@ Synopsis: Colourise Haskell code. Description: hscolour is a small Haskell script to colourise Haskell code. It currently- has five output formats: + has six output formats: ANSI terminal codes, HTML 3.2 with <font> tags, HTML 4.01 with CSS,+ XHTML 1.0 with inline CSS styling, LaTeX, and mIRC chat codes. Category: Language Exposed-Modules: - Language.Haskell.HsColour,- Language.Haskell.HsColour.ANSI,- Language.Haskell.HsColour.Anchors,- Language.Haskell.HsColour.Classify,- Language.Haskell.HsColour.ColourHighlight,- Language.Haskell.HsColour.Colourise,- Language.Haskell.HsColour.TTY,- Language.Haskell.HsColour.HTML,- Language.Haskell.HsColour.LaTeX,- Language.Haskell.HsColour.General,- Language.Haskell.HsColour.MIRC,+ Language.Haskell.HsColour+ Language.Haskell.HsColour.ANSI+ Language.Haskell.HsColour.Anchors Language.Haskell.HsColour.CSS- Language.Haskell.HsColour.Output+ Language.Haskell.HsColour.Classify+ Language.Haskell.HsColour.ColourHighlight+ Language.Haskell.HsColour.Colourise+ Language.Haskell.HsColour.General+ Language.Haskell.HsColour.HTML+ Language.Haskell.HsColour.InlineCSS+ Language.Haskell.HsColour.LaTeX+ Language.Haskell.HsColour.MIRC Language.Haskell.HsColour.Options+ Language.Haskell.HsColour.Output+ Language.Haskell.HsColour.TTY data-files: hscolour.css --ghc-options: -O -W Build-Type: Simple
index.html view
@@ -10,8 +10,9 @@ <p> <b>hscolour</b> is a small Haskell script to colourise Haskell code.-It currently has five output formats: ANSI terminal codes, HTML 3.2 with-<font> tags, HTML 4.01 with CSS, LaTeX, and mIRC chat client codes.+It currently has six output formats: ANSI terminal codes, HTML 3.2 with+<font> tags, HTML 4.01 with CSS, XHTML 1.0 with inline CSS styling,+LaTeX, and mIRC chat client codes. <h2>Example</h2> <p>@@ -35,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.11.tar.gz">- http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.tar.gz</a>- <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.zip">- http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.11.zip</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> <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@@ -56,6 +57,7 @@ <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>@@ -64,7 +66,7 @@ <li><pre> HsColour [ -help | -version | -print-css ] [ -oOUTPUT ]- [ -tty | -html | -css | -latex | -mirc ]+ [ -tty | -html | -css | -icss | -latex | -mirc ] [ -lit | -lit-tex | -nolit ] [ -anchor | -noanchor | -partial | -nopartial ] [file.hs]</pre>@@ -72,8 +74,9 @@ <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 LaTeX (option -latex), or for IRC-(option -mirc). The default is for terminal output.+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. <p> If no file argument is given, it reads standard input. Output is written to file OUTPUT (option -o), defaulting to stdout.@@ -100,11 +103,11 @@ <h2>Configuration of colours</h2> <p>-If you use either -html, -tty, -mirc, or -latex, you can configure the+If you use any of -html, -tty, -icss, -mirc, or -latex, 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.)-For CSS output, it is sufficient to edit the+For (non-inline) CSS output, it is sufficient to edit the <a href="hscolour.css"><tt>hscolour.css</tt></a> file, also in the distribution. (An alternative choice is supplied as <a href="emacs.css"><tt>emacs.css</tt></a>.) The <tt>-print-css</tt> option@@ -134,6 +137,7 @@ <font color=Red>|</font> Concealed <font color=Red>|</font> Foreground Colour <font color=Red>|</font> Background Colour+ <font color=Red>|</font> Italic </pre> <p>@@ -169,7 +173,7 @@ <p> <h2>Copyright and licence</h2>-<b>hscolour</b> is © Malcolm Wallace 2003-2008. It is distributed+<b>hscolour</b> is © Malcolm Wallace 2003-2009. It is distributed under the Gnu GPL, which can be found in the file <a href="LICENCE-GPL">LICENCE-GPL</a>. @@ -193,6 +197,7 @@ <h2>History</h2> <p> <dl>+<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> <dt>1.11</dt><dd> new literate input option -lit-tex</dd>@@ -214,7 +219,7 @@ </dl> <p>-This page last modified: 2nd Feb 2009<br>+This page last modified: 6th May 2009<br> Malcolm Wallace<br> </td></tr></table>