packages feed

highlighting-kate 0.2.3 → 0.2.4

raw patch · 8 files changed

+443/−20 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ParseSyntaxFiles.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -farrows #-}+{-# LANGUAGE Arrows #-}  {-  ParseSyntaxFiles.hs processes a directory containing Kate@@ -22,7 +22,6 @@  import Text.XML.HXT.Arrow import Text.XML.HXT.Arrow.Edit-import Text.XML.HXT.Arrow.XmlNodeSet import Control.Arrow import Control.Arrow.ArrowList import Data.List@@ -83,25 +82,32 @@                } deriving (Read, Show)  +-- | Converts a list of files (ending in .xml) and directories containing .xml files+-- into a list of .xml files.+argFiles :: [String] -> IO [String]+argFiles [] = error "Specify paths of xml files and/or directories containing xml syntax files."+argFiles args = do+  let isXmlFile x = isSuffixOf ".xml" x+  let (files, dirs) = partition isXmlFile args+  dirContents <- mapM (\dir -> getDirectoryContents dir >>= return . map (combine dir) . filter isXmlFile) dirs+  return $ nub (files ++ concat dirContents)++ libraryPath = joinPath ["Text", "Highlighting", "Kate"] destDir = joinPath [libraryPath, "Syntax"]  main :: IO () main = do-  argv <- getArgs-  srcDir <- if null argv -               then error "Specify path of directory containing xml syntax files."-               else return $ argv !! 0-  let isXmlFile x = isSuffixOf ".xml" x-  files <- getDirectoryContents srcDir >>= (return . map (combine srcDir) . filter isXmlFile)+  files <- getArgs >>= argFiles   destDirExists <- doesDirectoryExist destDir   if destDirExists      then return ()      else createDirectory destDir -  mapM processOneFile files >> return ()+  mapM_ processOneFile files   let syntaxFile = combine libraryPath (addExtension "Syntax" "hs")   putStrLn $ "Writing " ++ syntaxFile-  let names = sort $ map nameFromPath files +  -- Get all syntax files, not only the newly generated ones.+  names <- getDirectoryContents destDir >>= return . sort . map dropExtension . filter (isSuffixOf ".hs")   let imports = unlines $ map (\name -> "import qualified Text.Highlighting.Kate.Syntax." ++ name ++ " as " ++ name) names    let cases = unlines $ map (\name -> "        " ++ show (map toLower name) ++ " -> " ++ name ++ ".highlight") names   let languageExtensions = concat $ intersperse ", " $ map (\name -> "(" ++ show name ++ ", " ++ name ++ ".syntaxExtensions)") names
README view
@@ -71,6 +71,7 @@ - perl.xml:  Fixed regexes - needed backslash-escapes before ] and ^ - haskell.xml:  Added support for module names - bash.xml: Changed "\\" to "\" in two Detect2Char rules in FindString+- literate-haskell.xml:  Fixed single line comments and growing context stack  NOTE:  This software is largely untested.  Known bugs are recorded in the file BUGS. Please send bug reports (or better, patches) to the author (jgm at
Text/Highlighting/Kate.hs view
@@ -35,4 +35,4 @@ import Text.Highlighting.Kate.Syntax ( highlightAs, languages, languagesByExtension ) import Text.Highlighting.Kate.Definitions ( SourceLine, LabeledSource ) -highlightingKateVersion = "0.2.3"+highlightingKateVersion = "0.2.4"
Text/Highlighting/Kate/Syntax/LiterateHaskell.hs view
@@ -50,8 +50,8 @@   context <- currentContext   case context of     "literate-normal" -> return ()-    "normal" -> pushContext "literate-normal"-    "comment_single_line" -> (popContext >> return ())+    "normal" -> (popContext >> return ())+    "comment_single_line" -> (popContext >> popContext >> return ())     "comment_multi_line" -> return ()     "string" -> return ()     "infix" -> return ()
changelog view
@@ -1,10 +1,39 @@-highlighting-kate (0.2.1)+highlighting-kate 0.2.4 (15 Mar 2009) +  * Fixed bug in literate-haskell-xml. Also fixed now upstream.+    (Bjorn Buckwalter)++  * Modified ParseSyntaxFiles.hs to allow regeneration of individual+    syntax files. With the change ParseSyntaxFiles accepts any number of+    arguments. Those ending with .xml are assumed to be files while the+    rest are assumed to be directories containing .xml files.+    The syntaxes included in Syntax.hs are based on the contents of+    destDir rather than the arguments, this allows regenerating a subset+    of syntaxes but still having all syntaxes in Syntax.hs. (Bjorn Buckwalter)++  * ParseSyntaxFiles.hs: Change deprecated pragma, remove obsolete import.+    (Bjorn Buckwalter)++highlighting-kate 0.2.3 (9 Jul 2008)++  * Removed -O2 in Ghc-Options, as it provides very little speedup++highlighting-kate 0.2.2 (9 Jul 2008)++  * Added Cc-options -O0 to cabal file. This is needed to prevent+    gcc from using enormous amounts of memory on platforms+    that lack a native code generator and compile via C. See+    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469893.++  * Depend on parsec < 3, because parsec 3 is much slower.++  * normalizeHighlighting now strips out empty strings++highlighting-kate 0.2.1 (10 Feb 2008)+   *  Implemented lookAhead in parsers, which fixed bugs in perl, bash,      and other parsers. -highlighting-kate 0.2+highlighting-kate 0.2 (10 Feb 2008)    *  Initial release-  - -- John MacFarlane <jgm@berkeley.edu> 10 Feb 2008
highlighting-kate.cabal view
@@ -1,5 +1,5 @@ Name:                highlighting-kate-Version:             0.2.3+Version:             0.2.4 Cabal-Version:       >= 1.2 Build-Type:          Simple Category:            Text@@ -68,6 +68,7 @@                      xml/latex.xml                      xml/lex.xml                      xml/literate-haskell.xml+                     xml/literate-haskell.xml.bkp                      xml/lua.xml                      xml/makefile.xml                      xml/matlab.xml
xml/literate-haskell.xml view
@@ -327,7 +327,7 @@ 		<context attribute="Comment" lineEndContext="#stay" name="literate-normal"> 			<DetectChar attribute="Special" context="normal" char="&gt;" column="0"/> 		</context>-		<context attribute="Normal Text" lineEndContext="literate-normal" name="normal">+		<context attribute="Normal Text" lineEndContext="#pop" name="normal"> 			<Detect2Chars attribute="Comment" context="comment_multi_line" char="{" char1="-" /> 			<Detect2Chars attribute="Comment" context="comment_single_line" char="-" char1="-" /> 			<keyword attribute="Keyword" context="#stay" String="keywords" />@@ -343,7 +343,7 @@ 			<Float attribute="Float" context="#stay" /> 			<Int attribute="Decimal" context="#stay" /> 		</context>-		<context attribute="Comment" lineEndContext="#pop" name="comment_single_line" />+		<context attribute="Comment" lineEndContext="#pop#pop" name="comment_single_line" /> 		<context attribute="Comment" lineEndContext="#stay" name="comment_multi_line"> 			<Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" /> 		</context>
+ xml/literate-haskell.xml.bkp view
@@ -0,0 +1,386 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language SYSTEM "language.dtd">+<language name="Literate Haskell" version="1.04" kateversion="2.4" section="Sources" extensions="*.lhs" author="Marcel Martin (mmar@freenet.de)" license="">+	<highlighting>+	<list name="keywords">+		<item> case </item>+		<item> class </item>+		<item> data </item>+		<item> deriving </item>+		<item> do </item>+		<item> else </item>+		<item> if </item>+		<item> in </item>+		<item> infixl </item>+		<item> infixr </item>+		<item> instance </item>+		<item> let </item>+		<item> module </item>+		<item> of </item>+		<item> primitive </item>+		<item> then </item>+		<item> type </item>+		<item> where </item>+	</list>+        <list name="infix operators">+		<item> quot </item>+		<item> rem </item>+		<item> div </item>+		<item> mod </item>+		<item> elem </item>+		<item> notElem </item>+		<item> seq </item>+	</list>+	<list name="functions">+		<!--+                These operators are not handled yet.+		<item> !! </item>+		<item> % </item>+		<item> && </item>+		<item> $! </item>+		<item> $ </item>+		<item> * </item>+		<item> ** </item>+		<item> - </item>+		<item> . </item>+		<item> /= </item>+		<item> < </item>+		<item> <= </item>+		<item> =<< </item>+		<item> == </item>+		<item> > </item>+		<item> >= </item>+		<item> >> </item>+		<item> >>= </item>+		<item> ^ </item>+		<item> ^^ </item>+		<item> ++ </item>+		<item> || </item>+		//-->++		<item> FilePath </item>+		<item> IOError </item>+		<item> abs </item>+		<item> acos </item>+		<item> acosh </item>+		<item> all </item>+		<item> and </item>+		<item> any </item>+		<item> appendFile </item>+		<item> approxRational </item>+		<item> asTypeOf </item>+		<item> asin </item>+		<item> asinh </item>+		<item> atan </item>+		<item> atan2 </item>+		<item> atanh </item>+		<item> basicIORun </item>+		<item> break </item>+		<item> catch </item>+		<item> ceiling </item>+		<item> chr </item>+		<item> compare </item>+		<item> concat </item>+		<item> concatMap </item>+		<item> const </item>+		<item> cos </item>+		<item> cosh </item>+		<item> curry </item>+		<item> cycle </item>+		<item> decodeFloat </item>+		<item> denominator </item>+		<item> digitToInt </item>+		<item> div </item>+		<item> divMod </item>+		<item> drop </item>+		<item> dropWhile </item>+		<item> either </item>+		<item> elem </item>+		<item> encodeFloat </item>+		<item> enumFrom </item>+		<item> enumFromThen </item>+		<item> enumFromThenTo </item>+		<item> enumFromTo </item>+		<item> error </item>+		<item> even </item>+		<item> exp </item>+		<item> exponent </item>+		<item> fail </item>+		<item> filter </item>+		<item> flip </item>+		<item> floatDigits </item>+		<item> floatRadix </item>+		<item> floatRange </item>+		<item> floor </item>+		<item> fmap </item>+		<item> foldl </item>+		<item> foldl1 </item>+		<item> foldr </item>+		<item> foldr1 </item>+		<item> fromDouble </item>+		<item> fromEnum </item>+		<item> fromInt </item>+		<item> fromInteger </item>+		<item> fromIntegral </item>+		<item> fromRational </item>+		<item> fst </item>+		<item> gcd </item>+		<item> getChar </item>+		<item> getContents </item>+		<item> getLine </item>+		<item> head </item>+		<item> id </item>+		<item> inRange </item>+		<item> index </item>+		<item> init </item>+		<item> intToDigit </item>+		<item> interact </item>+		<item> ioError </item>+		<item> isAlpha </item>+		<item> isAlphaNum </item>+		<item> isAscii </item>+		<item> isControl </item>+		<item> isDenormalized </item>+		<item> isDigit </item>+		<item> isHexDigit </item>+		<item> isIEEE </item>+		<item> isInfinite </item>+		<item> isLower </item>+		<item> isNaN </item>+		<item> isNegativeZero </item>+		<item> isOctDigit </item>+		<item> isPrint </item>+		<item> isSpace </item>+		<item> isUpper </item>+		<item> iterate </item>+		<item> last </item>+		<item> lcm </item>+		<item> length </item>+		<item> lex </item>+		<item> lexDigits </item>+		<item> lexLitChar </item>+		<item> lines </item>+		<item> log </item>+		<item> logBase </item>+		<item> lookup </item>+		<item> map </item>+		<item> mapM </item>+		<item> mapM_ </item>+		<item> max </item>+		<item> maxBound </item>+		<item> maximum </item>+		<item> maybe </item>+		<item> min </item>+		<item> minBound </item>+		<item> minimum </item>+		<item> mod </item>+		<item> negate </item>+		<item> not </item>+		<item> notElem </item>+		<item> null </item>+		<item> numerator </item>+		<item> odd </item>+		<item> or </item>+		<item> ord </item>+		<item> otherwise </item>+		<item> pi </item>+		<item> pred </item>+		<item> primExitWith </item>+		<item> print </item>+		<item> product </item>+		<item> properFraction </item>+		<item> putChar </item>+		<item> putStr </item>+		<item> putStrLn </item>+		<item> quot </item>+		<item> quotRem </item>+		<item> range </item>+		<item> rangeSize </item>+		<item> read </item>+		<item> readDec </item>+		<item> readFile </item>+		<item> readFloat </item>+		<item> readHex </item>+		<item> readIO </item>+		<item> readInt </item>+		<item> readList </item>+		<item> readLitChar </item>+		<item> readLn </item>+		<item> readOct </item>+		<item> readParen </item>+		<item> readSigned </item>+		<item> reads </item>+		<item> readsPrec </item>+		<item> realToFrac </item>+		<item> recip </item>+		<item> rem </item>+		<item> repeat </item>+		<item> replicate </item>+		<item> return </item>+		<item> reverse </item>+		<item> round </item>+		<item> scaleFloat </item>+		<item> scanl </item>+		<item> scanl1 </item>+		<item> scanr </item>+		<item> scanr1 </item>+		<item> seq </item>+		<item> sequence </item>+		<item> sequence_ </item>+		<item> show </item>+		<item> showChar </item>+		<item> showInt </item>+		<item> showList </item>+		<item> showLitChar </item>+		<item> showParen </item>+		<item> showSigned </item>+		<item> showString </item>+		<item> shows </item>+		<item> showsPrec </item>+		<item> significand </item>+		<item> signum </item>+		<item> sin </item>+		<item> sinh </item>+		<item> snd </item>+		<item> span </item>+		<item> splitAt </item>+		<item> sqrt </item>+		<item> subtract </item>+		<item> succ </item>+		<item> sum </item>+		<item> tail </item>+		<item> take </item>+		<item> takeWhile </item>+		<item> tan </item>+		<item> tanh </item>+		<item> threadToIOResult </item>+		<item> toEnum </item>+		<item> toInt </item>+		<item> toInteger </item>+		<item> toLower </item>+		<item> toRational </item>+		<item> toUpper </item>+		<item> truncate </item>+		<item> uncurry </item>+		<item> undefined </item>+		<item> unlines </item>+		<item> until </item>+		<item> unwords </item>+		<item> unzip </item>+		<item> unzip3 </item>+		<item> userError </item>+		<item> words </item>+		<item> writeFile </item>+		<item> zip </item>+		<item> zip3 </item>+		<item> zipWith </item>+		<item> zipWith3 </item>+	</list>+	<list name="type constructors">+		<item> Bool </item>+		<item> Char </item>+                <item> Double </item>+		<item> Either </item>+		<item> Float </item>+		<item> IO </item>+		<item> Integer </item>+		<item> Int </item>+		<item> Maybe </item>+		<item> Ordering </item>+		<item> Rational </item>+		<item> Ratio </item>+		<item> ReadS </item>+		<item> ShowS </item>+		<item> String </item>++	</list>+	<list name="classes">+		<item> Bounded </item>+		<item> Enum </item>+		<item> Eq </item>+		<item> Floating </item>+		<item> Fractional </item>+		<item> Functor </item>+		<item> Integral </item>+		<item> Ix </item>+		<item> Monad </item>+		<item> Num </item>+		<item> Ord </item>+		<item> Read </item>+		<item> RealFloat </item>+		<item> RealFrac </item>+		<item> Real </item>+		<item> Show </item>+	</list>+	<list name="data constructors">+		<item> EQ </item>+		<item> False </item>+		<item> GT </item>+		<item> Just </item>+		<item> LT </item>+		<item> Left </item>+		<item> Nothing </item>+		<item> Right </item>+		<item> True </item>+	</list>+	<contexts>+		<context attribute="Comment" lineEndContext="#stay" name="literate-normal">+			<DetectChar attribute="Special" context="normal" char="&gt;" column="0"/>+		</context>+		<context attribute="Normal Text" lineEndContext="literate-normal" name="normal">+			<Detect2Chars attribute="Comment" context="comment_multi_line" char="{" char1="-" />+			<Detect2Chars attribute="Comment" context="comment_single_line" char="-" char1="-" />+			<keyword attribute="Keyword" context="#stay" String="keywords" />+			<keyword attribute="Class" context="#stay" String="classes" />+			<keyword attribute="Type Constructor" context="#stay" String="type constructors" />+			<keyword attribute="Function" context="#stay" String="functions" />+			<keyword attribute="Data Constructor" context="#stay" String="data constructors" />+			<DetectChar attribute="String" context="string" char="&quot;" />+			<DetectChar attribute="Infix Operator" context="infix" char="`"/>+			<RegExpr attribute="Normal Text" context="#stay" String="\w[']+" />+			<DetectChar attribute="Char" context="single_char" char="'" />+			<RegExpr attribute="Function Definition" context="#stay" String="\s*[a-z_]+\w*'*\s*::" />+			<Float attribute="Float" context="#stay" />+			<Int attribute="Decimal" context="#stay" />+		</context>+		<context attribute="Comment" lineEndContext="#pop" name="comment_single_line" />+		<context attribute="Comment" lineEndContext="#stay" name="comment_multi_line">+			<Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />+		</context>+		<context attribute="String" lineEndContext="#stay" name="string">+			<RegExpr attribute="String" context="#stay" String="\\." />+			<DetectChar attribute="String" context="#pop" char="&quot;" />+		</context>+		<context attribute="Infix Operator" lineEndContext="#stay" name="infix">+			<DetectChar attribute="Infix Operator" context="#pop" char="`"/>+		</context>+		<context attribute="Char" lineEndContext="#pop" name="single_char">+			<RegExpr attribute="Char" context="#stay" String="\\." />+			<DetectChar attribute="Char" context="#pop" char="'" />+		</context>+		<context attribute="Function Definition" lineEndContext="#pop" name="function_definition">+			<DetectChar attribute="Function Definition" context="#pop" char=";" />+		</context>+	</contexts>+	<itemDatas>+		<itemData name="Normal Text"		defStyleNum="dsNormal"/>+		<itemData name="Keyword" 		defStyleNum="dsKeyword"/>+		<itemData name="Function"		defStyleNum="dsFunction"/>+		<itemData name="Function Definition"	defStyleNum="dsFunction"/>+		<itemData name="Class"			defStyleNum="dsKeyword"/>+		<itemData name="Decimal"		defStyleNum="dsDecVal"/>+		<itemData name="Float"			defStyleNum="dsFloat"/>+		<itemData name="Char"			defStyleNum="dsChar"/>+		<itemData name="String"			defStyleNum="dsString"/>+		<itemData name="Constructor"		defStyleNum="dsOthers"/>+		<itemData name="Comment"		defStyleNum="dsComment"/>+		<itemData name="Data Constructor"	defStyleNum="dsKeyword"/>+		<itemData name="Type Constructor"	defStyleNum="dsDataType"/>+		<itemData name="Infix Operator"		defStyleNum="dsOthers"/>+		<itemData name="Special"		defStyleNum="dsChar"/>+	</itemDatas>+	</highlighting>+	<general>+		<keywords casesensitive="1" />+	</general>+</language>