packages feed

skylighting-core 0.7.7 → 0.8

raw patch · 4 files changed

+495/−36 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

changelog.md view
@@ -1,5 +1,21 @@-# Revision history for skylighting-core+# Revision history for skylighting and skylighting-core +## 0.8 -- 2019-05-27++ *  Wrap html source lines with `<span>`, not `<a>` (David+    Baynard).  Fixes jgm/pandoc#4386. Also fixes #33 (and+    therefore fixes jgm/pandoc#4278).+  * Prevent line-wrap overlap in html by increasing padding+    (David Baynard).+  * Remove superfluous 'pointer-events: all' (David Baynard).+  * Simplify HTML generation code (David Baynard).+  * Remove sourceLine class from spans (David Baynard).+  * Display line numbers using css counters (David Baynard).+  * Add Elm syntax definition (#66, #68, Bonghyun Kim).+  * Put changelog in base directory, use symlinks to point to it.+    We have the same changelog for skylighting and skylighting-core,+    for simplicity.  (Version numbers are kept in sync.)+ ## 0.7.7 -- 2019-02-27    * Add parseSyntaxDefinitionFromString [API change].@@ -82,6 +98,314 @@  ## 0.7 -- 2018-03-03 -  * Initial release of this library, which includes the core-    functionality of skylighting, relicensed as BSD3-    (Jonathan Daugherty).+  * Split skylighting into skylighting-core (BSD3) and skylighting (GPL)+    (#37, Jonathan Daugherty).  skylighting-core (BSD3 licensed) includes+    the core library functionality and the source of the XML syntax, but+    not the compiled Syntax modules, and skylighting (GPL2 licensed)+    includes Syntax modules compiled from the XML syntax files.++  * We discontinue support for GHC before 7.10 (because we need to support the+    reexport-modules Cabal directive.)++  * Print message about loaded syntax defs to stderr (#36).++  * New module Skylighting.Loader, exporting+    `loadSyntaxFromFile` and `loadSyntaxesFromDir` (Jonathan Daugherty).++  * Adjust tests to load xml definitions dynamically.++## 0.6 -- 2018-01-18++  * Add ANSI color output (Alexander Ronald Altman, #22).++    + New package dependencies: `ansi-terminal` and `colour`.+    + New module: `Skylighting.Format.ANSI`, exporting `formatANSI`,+      (also reexported from the module `Skylighting`).+    + In `Skylighting.Types`, new types `ANSIColorLevel` and+      `Xterm256ColorCode`, and a new field `ansiColorLevel` in+      `FormatOptions`.+    + Main `skylighting` executable now supports ANSI output (use+      `ansi` as argument to `--format`), which is now the default output+      format. A new flag `--color-level` has been added to select+      the number of colors (with options `16`, `256`, `true`, and+      the default `auto`).++  * Reword error for missing contexts in IncludeRules.++  * Use ordNub instead of nub for missingIncludes.++## 0.5.1 -- 2018-01-07++  * Fixed tokenizer exceptions (#31).  Previously `throwError`+    did not actually generate `Left` results in `tokenize`,+    because of the way the MonadPlus instance worked. Rewrote+    the TokenizerM monad from scratch so that exceptions would+    not be skipped.++  * Improved error message about undefined contexts.++  * Makefile: use cabal for bootstrap target.++  * README: remove stack bootstrap instructions.+    You can no longer bootstrap with stack, because it+    insists on building ALL the executables the first time,+    and of course that can't be done with this library.++  * Use quickcheck for fuzz test.++## 0.5.0.1 -- 2017-12-18++  * Small improvements to fuzz tests in test suite.  We now+    ensure that we print the random text on test failure.  Also,+    we now run the test with many smaller samples rather than+    one big one.++  * Add aeson lower bound (because of toEncoding) (#28).++## 0.5 -- 2017-12-10++  * Fix line spacing and overflowing content in generated HTML+    (David Baynard, #25, see jgm/pandoc#4128).++    + Fix empty line height, explicitly+    + Ensure long lines scroll on screen+    + Only apply colour to the outer div+    + Don't reset line number colour+    + Fix borders on empty code lines+    + Collapse divs correctly.++  * Changes to Style types and JSON instances.  Previously we could not+    successfully round-trip through JSON.++    + `tokenStyles` is now a map rather than an association list.+    + We now use `line-number-color` instead of `line-numbers` at+      the top level in the JSON instances, falling back to+      `line-numbers` in `editor-colors`, for KDE theme compatibility.+    + We use `line-number-background-color` at the top level, falling+      back to the text background color.+    + We use `text-color` at the top level, falling back to the `text-color`+      of the `Normal` token style if it exists, for KDE compatibility.+    + We use `background-color` at the top level, falling back to+      the `background-color` in `editor-colors`, for KDE compatibility.+    + A round-trip JSON test has been added.++## 0.4.4.1 -- 2017-11-27++  * HTML formatting: fix color, bgcolor when numbering enabled.+    Previously, the code got the color and background color+    the numbers were supposed to get.  See jgm/pandoc #4103.+  * Updated syntax descriptions for bash, clojure, commonlisp, diff,+    dockerfile, doxygen, doxygenlua, fsharp, hamlet, haskell, haxe,+    java, javascript, julia, latex, literate-curry, literate-haskell,+    makefile, mediawiki, monobasic, ocaml, prolog, r, relaxng, scala,+    sci, sql-mysql, sql-postgresql, sql, xslt.+  * test program:  use --accept instead of --regen.++## 0.4.4 -- 2017-11-21++  * HTML formatter: always use an a element (rather than a div)+    for source lines.  The divs were invalid, because code+    elements must contain phrasing content.  Previously we used+    a elements when line anchors were called for, but there is+    no clear reason not to use them always.+  * skylighting binary: add doctype to generated HTML.++## 0.4.3.2 -- 2017-11-04++  * Fixed regression in `data-line-number` attributes in HTML+    output.  We should not include the `lineIdPrefix` in+    front of this.++## 0.4.3.1 -- 2017-11-03++  * Fixed typo in css (Artymort).+  * Fixed travis build times.++## 0.4.3 --- 2017-11-02++  * `FormatOptions`: added `lineIdPrefix` (jgm/pandoc#4031).+    This is needed because a web page may contain several+    code samples, and we need to make sure that the ids on+    lines are unique.+  * HTML formatter: use `lineIdPrefix` in ids for lines.+  * HTML formatter: Don't put href attributes on divs.++## 0.4.2 --- 2017-10-26++  * HTML output: remove outer div.  This prevented margin+    collapsing between the pre and surrounding block elements,+    and often gave us excess white space around code blocks.+    See jgm/pandoc#3996.++## 0.4.1 --- 2017-09-28++  * Updated XML definitions from KDE repository.+    Changed: actionscript, ada, agda, alert, alert_indent, asn1, awk, bash,+    boo, c, changelog, clojure, cmake, coldfusion, commonlisp, cpp, cs, css,+    curry, d, dockerfile, dot, doxygen, doxygenlua, eiffel, email, erlang,+    fortran, fsharp, gcc, haskell, haxe, isocpp, java, javascript, jsp, julia,+    lilypond, lua, m4, makefile, matlab, maxima, mips, modelines, modula-2,+    monobasic, objectivec, objectivecpp, ocaml, octave, opencl, pascal, perl,+    php, pike, postscript, prolog, purebasic, python, r, relaxng,+    relaxngcompact, rest, rhtml, ruby, rust, scala, scheme, sci, sql-mysql,+    sql-postgresql, sql, tcl, tcsh, verilog, vhdl, xml, xslt, xul, zsh.+  * Added support for powershell, using definition from KDE repository.+  * Stop terminating long builds on TravisCI (Kyle Ondy).++## 0.4 --- 2017-09-15++  * Removed ToJSON/FromJSON instances for KeywordAttr,+    WordSet, Matcher, Context, ContextSwitch, Rule, Syntax+    (added in 0.3.5).  Creating these increased the memory+    requirements for compiling skylighting to a degree not+    justified by the usefulness of these instances.++## 0.3.5 --- 2017-09-14++  * Added ToJSON/FromJSON instances for all basic types.+  * Added some background colors to 'kate' style, matching default.theme,+    and made FromJSON for Style sensitive to background-color.++## 0.3.4.1 -- 2017-09-09++  * HTML formatting: do not use `div` elements for source+    lines in inline output.++## 0.3.4 -- 2017-09-09++  * HTML formatting changes (David Baynard).  Note that these+    changes may require changes in hard-coded CSS that is+    used with skylighting's HTML output.++    + Wrap lines of source code in a `div` with `display` set to+      `inline-block`.  The `div`s make per-line processing easier.+      They cannot be set as `display: block` as that introduces extra+      new lines when copying and pasting.+    + Render line numbers in html using CSS pseudo elements rather than+      a table.  The line numbers are always produced, as `data-line-number`+      attributes, and css to display them as `::before` elements are+      always produced. The option to switch on line numbering only+      toggles a class; this means it is possible to toggle line numbering+      without re-running skylighting.+    + If the `linkAnchors` option is set, wrap with an `a` element rather+      than a `div`, set so that clicking the line number (and only the+      line number) will jump to that line.+    + Code wraps by default when html is printed, with wrapped lines+      indented.++## 0.3.3.1 -- 2017-06-26++  * Updated xml syntax definitions and clojure test.+  * Improved 'make update-xml' target.+  * Updated version bound for criterion.++## 0.3.3 -- 2017-04-22++  * Revert change from 0.3.2; now entities from a DTD are+    resolved if the DTD element is included.  This is needed+    for agda.xml and some others.  If you want to use a custom+    xml definition without needing language.dtd, just remove+    the reference to language.dtd in your xml file.+  * Added `case` keyword for ats (Hanwen (Steinway) Wu).++## 0.3.2 -- 2017-04-01++  * Parse xml definitions without resolving entities from+    language.dtd.  This allows xml definitions to be used even+    when language.dtd isn't available.  Existing definitions+    don't rely on the two or three entities definied in+    language.dtd, so this is harmless.+  * Small optimizations.++## 0.3.1 -- 2017-02-28++  * Use handwritten parser for Float instead of regex.  Fixes+    jgm/highlighting-kate#57 (again).+  * Added float parsing tests.+  * Use parsec parsers, not regex, for CStringChar and CChar.+  * Rewrote Int, Hex, Oct, CStringChar, CCHar parsers with parsec+    instead of regex.  This speeds things up.+  * Don't include leading + in Int, Hex, Oct parsers.  That gives+    bad results for things like `i+1`.++## 0.3 -- 2017-02-19++  * Store literal binary-encoded representations of the Syntax+    structure in Skylighting.Syntax.*.hs, instead of the+    structure itself.  This works around a problem ghc has+    compiling modules with large structures.  This indirect method+    produces faster compile times and avoids massive memory usage by+    ghc (especially in profiling builds).  For background see+    http://stackoverflow.com/questions/16348340/.  Closes #7.+  * Types: Internals of 'WordSet' are no longer exposed.++## 0.2 -- 2017-02-19++  * Restore Data, Typeable, Generic instances for basic types.+    To do this, we remove reCompiled field from RE (API change).  Instead, we+    have the tokenizer compile regexes the first time it encounters them,+    memoizing the results.  Performance is not significantly worse.+  * Skylighting.Syntax.*:  use string representation of the Syntax,+    which is then 'read', rather than including the code for the data+    structure directly (#7).  This indirect method produces faster compile+    times and avoids massive memory usage by ghc (especially in profiling+    builds).  For background see+    http://stackoverflow.com/questions/16348340/compiling-very-large-constants-with-ghc+  * Use -fprof-auto-exported for profiling builds.+  * Added benchmark for xml syntax definition parsing.+  * Patched perl.xml (improperly escaped regex) (#8).+    This fixes a perl regex compilation error for regex patterns+    with backslash as delimiter, e.g. m\a\.+  * Add a flag to build with system pcre (Felix Yan).++## 0.1.1.5  -- 2017-02-03++  * Avoid depending on a PrintfArg instance for Text (#5).+    This isn't provided in some older versions of the text library.+    This change should allow the package to build on older platforms.++## 0.1.1.4  -- 2017-01-31++  * Properly escape characters in subDynamic.+    This fixes a problem that caused failures with++        echo -e "s\0b\0c" | skylighting -s perl++  * More efficient rewrite of char escaping for regexes.++## 0.1.1.3  -- 2017-01-29++  * Increase test timeout to 6s.+  * Avoid double {{}} in latex macros.+  * Fixed problem compiling Format.LaTeX on older ghc versions (7.8.3)+    that can't take a Text as PrintfArg.++## 0.1.1.2  -- 2017-01-28++  * Added much more extensive testing to ensure that tokenizers+    don't hang or drop input.+  * Fixed some issues with line-end and fallthrough context+    handling.+  * Fixed a bug in WordDetect handling which caused it to drop+    input (#2).++## 0.1.1.1  -- 2017-01-21++  * Optimized.  Speed is now comparable to highlighting-kate+    and often better.+  * Added benchmarks.++## 0.1.1    -- 2017-01-19++  * Added breezeDark style, from breeze-dark.theme.+  * Fixed performance bug in regex application (#1).  This gives a+    significant speedup, especially for inputs with long lines.++## 0.1.0.1  -- 2016-12-23++  * Fixed bug in LaTeX renderer (backslash in wrong position).++## 0.1.0.0  -- 2016-12-23++  * Initial release+
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.7.7+version:             0.8 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
src/Skylighting/Format/HTML.hs view
@@ -7,7 +7,6 @@ import Data.List (intersperse, sort) import qualified Data.Map as Map import Data.Monoid ((<>))-import Data.String (fromString) import qualified Data.Text as Text import Skylighting.Types import Text.Blaze.Html@@ -81,19 +80,13 @@ -- subsequent per-line processing (e.g. adding line numnbers) possible. sourceLineToHtml :: FormatOptions -> LineNo -> SourceLine -> Html sourceLineToHtml opts lno cont =-  (if lineAnchors opts-      then H.a   ! A.class_ sourceLine-                 ! A.id lineNum-                 ! A.href lineRef-                 ! dataAttrib-      else H.a   ! A.class_ sourceLine-                 ! A.id lineNum-                 ! dataAttrib) $ mapM_ (tokenToHtml opts) cont-  where  sourceLine = toValue "sourceLine"-         lineNum = toValue prefixedLineNo+  H.span ! A.id lineNum+         $ do+           H.a ! A.href lineRef $ mempty+           mapM_ (tokenToHtml opts) cont+  where  lineNum = toValue prefixedLineNo          lineRef = toValue ('#':prefixedLineNo)          prefixedLineNo = Text.unpack (lineIdPrefix opts) <> show (lineNo lno)-         dataAttrib = A.title (toValue (show (lineNo lno)))  tokenToHtml :: FormatOptions -> Token -> Html tokenToHtml _ (NormalTok, txt)  = toHtml txt@@ -141,22 +134,21 @@ styleToCss f = unlines $   divspec ++ numberspec ++ colorspec ++ linkspec ++     sort (map toCss (Map.toList (tokenStyles f)))-   where colorspec = [-           "div.sourceCode\n  { "-           ++ case (defaultColor f, backgroundColor f) of-                (Nothing, Nothing) -> ""-                (Just c, Nothing)  -> "color: " ++ fromColor c ++ ";"-                (Nothing, Just c)  -> "background-color: " ++ fromColor c ++ ";"-                (Just c1, Just c2) -> "color: " ++ fromColor c1-                     ++ "; background-color: " ++ fromColor c2 ++ ";"-           ++ " }"]+   where colorspec = pure . unwords $ [+            "div.sourceCode\n  {"+          , maybe "" (\c -> "color: "            ++ fromColor c ++ ";") (defaultColor f)+          , maybe "" (\c -> "background-color: " ++ fromColor c ++ ";") (backgroundColor f)+          , "}"+          ]          numberspec = [-            "pre.numberSource a.sourceLine"-          , "  { position: relative; left: -4em; }"-          , "pre.numberSource a.sourceLine::before"-          , "  { content: attr(title);"+            "pre.numberSource code"+          , "  { counter-reset: source-line 0; }"+          , "pre.numberSource code > span"+          , "  { position: relative; left: -4em; counter-increment: source-line; }"+          , "pre.numberSource code > span > a:first-child::before"+          , "  { content: counter(source-line);"           , "    position: relative; left: -1em; text-align: right; vertical-align: baseline;"-          , "    border: none; pointer-events: all; display: inline-block;"+          , "    border: none; display: inline-block;"           , "    -webkit-touch-callout: none; -webkit-user-select: none;"           , "    -khtml-user-select: none; -moz-user-select: none;"           , "    -ms-user-select: none; user-select: none;"@@ -171,9 +163,9 @@               " padding-left: 4px; }"           ]          divspec = [-            "a.sourceLine { display: inline-block; line-height: 1.25; }"-          , "a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }"-          , "a.sourceLine:empty { height: 1.2em; }" -- correct empty line height+            "code.sourceCode > span { display: inline-block; line-height: 1.25; }"+          , "code.sourceCode > span { color: inherit; text-decoration: inherit; }"+          , "code.sourceCode > span:empty { height: 1.2em; }" -- correct empty line height           , ".sourceCode { overflow: visible; }" -- needed for line numbers           , "code.sourceCode { white-space: pre; position: relative; }" -- position relative needed for relative contents           , "div.sourceCode { margin: 1em 0; }" -- Collapse neighbours correctly@@ -183,11 +175,11 @@           , "}"           , "@media print {"           , "code.sourceCode { white-space: pre-wrap; }"-          , "a.sourceLine { text-indent: -1em; padding-left: 1em; }"+          , "code.sourceCode > span { text-indent: -5em; padding-left: 5em; }"           , "}"           ]          linkspec = [ "@media screen {"-          , "a.sourceLine::before { text-decoration: underline; }"+          , "code.sourceCode > span > a:first-child::before { text-decoration: underline; }"           , "}"           ] 
+ xml/elm.xml view
@@ -0,0 +1,143 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language SYSTEM "language.dtd">+<language name="Elm" version="1" kateversion="5.0" section="Sources" extensions="*.elm" author="Bonghyun Kim (bonghyun.d.kim@gmail.com)" license="MIT" style="elm">+  <highlighting>+    <list name="declarations">+      <item>type</item>+      <item>alias</item>+      <item>port</item>+    </list>+    <list name="controlFlows">+      <item>case</item>+      <item>of</item>+      <item>if</item>+      <item>else</item>+      <item>then</item>+    </list>+    <list name="letExpressions">+      <item>let</item>+      <item>in</item>+    </list>+    <list name="imports">+      <item>module</item>+      <item>exposing</item>+      <item>import</item>+      <item>as</item>+    </list>+    <list name="infixes">+      <item>infix</item>+      <item>left</item>+      <item>right</item>+      <item>non</item>+    </list>+    <list name="effects">+      <item>effect</item>+      <item>where</item>+      <item>command</item>+      <item>subscription</item>+    </list>+    <contexts>+      <context attribute="Normal" lineEndContext="#stay" name="code">+        <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" />+        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />+        <WordDetect attribute="Comment" context="documentation" String="{-|" />++        <keyword attribute="Keyword"          context="#stay" String="declarations" />+        <keyword attribute="Keyword"          context="#stay" String="letExpressions" />+        <keyword attribute="Keyword"          context="#stay" String="effects" />+        <keyword attribute="Keyword"          context="#stay" String="imports" />+        <keyword attribute="Keyword"          context="#stay" String="infixes" />+        <keyword attribute="ControlFlowKeyword"          context="#stay" String="controlFlows" />++        <WordDetect attribute="Import" context="module" String="module" />+        <WordDetect attribute="Port" context="port" String="port" />+        <WordDetect attribute="Import" context="import" String="import" />++        <RegExpr attribute="Name"         context="#stay" String="(\b[a-z]\w*|\b_\b)" />+        <RegExpr attribute="Operator"         context="#stay" String="(-&gt;|::|\/\/|\.\.|&amp;&amp;|\|\||\+\+|\|&gt;|&lt;\||&gt;&gt;|&lt;&lt;|==|\/=|&lt;=|&gt;=)" />+        <RegExpr attribute="Operator"         context="#stay" String="[+-\/*%=&gt;&lt;^\|!]" />+        <RegExpr attribute="Operator"         context="#stay" String="[@\#$&amp;~?]" />++        <RegExpr attribute="Type"             context="#stay" String="\b[A-Z][\w]*" />++        <Int        attribute="Decimal" context="#stay" />+        <RegExpr    attribute="Hex"     context="#stay" String="0x[\da-f]+" insensitive="true" />+        <RegExpr    attribute="Float"   context="#stay" String="\d+\.\d+(e[+-]?\d+)?" insensitive="true" />++        <RegExpr    attribute="Char"    context="#stay" String="'(.|\\'|\\n|\\r|\\t|\\&quot;|\\\\|\\u\{(10|0?[0-9])[0-9a-fA-F]{4}\})'" />+        <DetectChar attribute="String"  context="string" char="&quot;" />+        <RegExpr attribute="String"     context="multilineString" String="&quot;&quot;&quot;"/>+      </context>+      <context attribute="Comment" lineEndContext="#pop" name="comment">+      </context>+      <context attribute="Comment" lineEndContext="#stay" name="comments">+        <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" />+        <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="String" lineEndContext="#stay" name="multilineString">+        <RegExpr attribute="String" context="#stay" String="\s*" />+        <RegExpr attribute="String" context="#stay" String="\.*" />+        <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;" />+      </context>+      <context attribute="Normal" lineEndContext="#stay" name="module">+        <DetectChar attribute="Normal" context="moduleParentheses" char="(" />+        <keyword attribute="Keyword"          context="#stay" String="imports" />+        <RegExpr attribute="Name"         context="#stay" String="\b[a-z][\w]*" />+        <RegExpr attribute="Type"             context="#stay" String="\b[A-Z][\w]*" />+        <DetectChar attribute="Normal" context="#pop" char=")" />+      </context>+      <context attribute="Normal" lineEndContext="#stay" name="moduleParentheses">+        <DetectChar attribute="Normal" context="moduleParentheses" char="(" />+        <RegExpr attribute="Name"         context="#stay" String="\b[a-z][\w]*" />+        <RegExpr attribute="Type"             context="#stay" String="\b[A-Z][\w]*" />+        <DetectChar attribute="Normal" context="#pop" char=")" />+      </context>+      <context attribute="Normal" lineEndContext="#stay" name="port">+        <WordDetect attribute="Import" context="module" String="imports" />+      </context>+      <context attribute="Normal" lineEndContext="#stay" name="import">+        <DetectChar attribute="Normal" context="moduleParentheses" char="(" />+        <keyword attribute="Keyword"          context="#stay" String="imports" />+        <RegExpr attribute="Name"         context="#stay" String="\b[a-z][\w]*" />+        <RegExpr attribute="Type"             context="#stay" String="\b[A-Z][\w]*" />+        <DetectChar attribute="Normal" context="#pop" char=")" />+      </context>+      <context attribute="Comment" lineEndContext="#stay" name="documentation">+        <WordDetect attribute="Comment" context="#stay" String="@docs" />+        <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />+      </context>+    </contexts>++    <itemDatas>+      <itemData name="Normal"           defStyleNum="dsNormal"   spellChecking="false" />+      <itemData name="Comment"          defStyleNum="dsComment" />++      <itemData name="Keyword"          defStyleNum="dsKeyword"  spellChecking="false" />+      <itemData name="ControlFlowKeyword" defStyleNum="dsControlFlow"  spellChecking="false" />++      <itemData name="Name"         defStyleNum="dsFunction"   spellChecking="false" />+      <itemData name="Port"         defStyleNum="dsNormal"   spellChecking="false" />+      <itemData name="Import"         defStyleNum="dsImport"   spellChecking="false" />+      <itemData name="Operator"         defStyleNum="dsOperator" spellChecking="false" />+      <itemData name="Type"             defStyleNum="dsDataType" spellChecking="false" />++      <itemData name="Decimal"          defStyleNum="dsDecVal"   spellChecking="false" />+      <itemData name="Hex"          defStyleNum="dsBaseN"   spellChecking="false" />+      <itemData name="Float"            defStyleNum="dsFloat"    spellChecking="false" />+      <itemData name="Char"             defStyleNum="dsChar"     spellChecking="false" />+      <itemData name="String"           defStyleNum="dsString" />+    </itemDatas>+  </highlighting>+  <general>+    <folding indentationsensitive="1"/>+    <comments>+      <comment name="singleLine" start="--" />+      <comment name="multiLine" start="{-" end="-}" />+    </comments>+    <keywords casesensitive="1" />+</general>+</language>