diff options
author | murphy <murphy@rubychan.de> | 2007-01-01 03:03:04 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2007-01-01 03:03:04 +0000 |
commit | 74c9a0d2b32e45c0692b4cdad4eddcab1e6a74e3 (patch) | |
tree | 59d2395fcfb0033dad16ed73780c20351a07379e | |
parent | 9b2710502466667dde1a9d6ce22d952ae8ad4dc7 (diff) | |
download | coderay-74c9a0d2b32e45c0692b4cdad4eddcab1e6a74e3.tar.gz |
Added tests for debug scanner and another ruby test case.
Added drafts for a comparison of CodeRa an Pygments features.
-rw-r--r-- | etc/language_report.textile | 59 | ||||
-rw-r--r-- | etc/output_report.textile | 34 | ||||
-rw-r--r-- | test/scanners/debug/class.actual.html | 138 | ||||
-rw-r--r-- | test/scanners/debug/class.expected.raydebug | 14 | ||||
-rw-r--r-- | test/scanners/debug/class.in.raydebug | 14 | ||||
-rw-r--r-- | test/scanners/debug/kate.actual.html | 200 | ||||
-rw-r--r-- | test/scanners/debug/kate.expected.raydebug | 76 | ||||
-rw-r--r-- | test/scanners/debug/kate.in.raydebug | 76 | ||||
-rw-r--r-- | test/scanners/debug/suite.rb | 3 | ||||
-rw-r--r-- | test/scanners/ruby/nested-heredoc.expected.raydebug | 27 | ||||
-rwxr-xr-x | test/scanners/ruby/nested-heredoc.in.rb | 27 |
11 files changed, 668 insertions, 0 deletions
diff --git a/etc/language_report.textile b/etc/language_report.textile new file mode 100644 index 0000000..d79ed10 --- /dev/null +++ b/etc/language_report.textile @@ -0,0 +1,59 @@ +h1. CodeRay Missing Languages Report + +This is a list of input formats for highlighters, comparing Pygments with +CodeRay. + +h2. Lexers / Scanners + +h3. Supported by both + +* C +* Delphi/Pascal +* HTML +* RHTML +* Ruby +* XML + +h3. Only in CodeRay + +* Raydebug +* Nitro-XHTML + +h3. Only in Pygments, but soon in CodeRay + +* JavaScript +* CSS +* PHP +* Diff +* SQL + +h3. Soon only in CodeRay + +* IO +* YAML + +h3. Only in Pygments + +* Boo +* Brainfuck +* C++ +* C# +* Smarty +* Django +* Ini +* IRC +* Lua +* Makefile +* Perl +* Python +* VisualBasic +* TeX +* Python Console (pycon) +* Ruby Console (irb) + +h3. Missing totally + +* Haskell +* BBCode +* Wikicode +* JSON
\ No newline at end of file diff --git a/etc/output_report.textile b/etc/output_report.textile new file mode 100644 index 0000000..2d8d5a2 --- /dev/null +++ b/etc/output_report.textile @@ -0,0 +1,34 @@ +h1. CodeRay Missing Outputs Report + +This is a list of output formats for highlighters, comparing Pygments with +CodeRay. + +h2. Formatters / Encoders + +h3. Supported by both + +* HTML +* Tokens (named raw in Pygments, raydebug or debug in CodeRay) +* Text + +h3. Only in CodeRay + +* Statistic and Counter +* Span, Div, Page (HTML variants) +* XML +* YAML + +h3. Only in Pygments, but soon in CodeRay + +h3. Soon only in CodeRay + +h3. Only in Pygments + +* LaTeX +* ANSI Console (very useful!) +* BBCode + +h3. Missing totally + +* PDF +* RTF (do we need this?)
\ No newline at end of file diff --git a/test/scanners/debug/class.actual.html b/test/scanners/debug/class.actual.html new file mode 100644 index 0000000..1b55223 --- /dev/null +++ b/test/scanners/debug/class.actual.html @@ -0,0 +1,138 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <title>CodeRay HTML Encoder Example</title> + <style type="text/css"> +.CodeRay { + background-color: #f8f8f8; + border: 1px solid silver; + font-family: 'Courier New', 'Terminal', monospace; + color: #100; +} +.CodeRay pre { margin: 0px } + +div.CodeRay { } + +span.CodeRay { white-space: pre; border: 0px; padding: 2px } + +table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px } +table.CodeRay td { padding: 2px 4px; vertical-align: top } + +.CodeRay .line_numbers, .CodeRay .no { + background-color: #def; + color: gray; + text-align: right; +} +.CodeRay .line_numbers tt { font-weight: bold } +.CodeRay .no { padding: 0px 4px } +.CodeRay .code { width: 100% } + +ol.CodeRay { font-size: 10pt } +ol.CodeRay li { white-space: pre } + +.CodeRay .code pre { overflow: auto } + +.CodeRay .debug { color:white ! important; background:blue ! important; } + +.CodeRay .af { color:#00C } +.CodeRay .an { color:#007 } +.CodeRay .av { color:#700 } +.CodeRay .aw { color:#C00 } +.CodeRay .bi { color:#509; font-weight:bold } +.CodeRay .c { color:#888 } + +.CodeRay .ch { color:#04D } +.CodeRay .ch .k { color:#04D } +.CodeRay .ch .dl { color:#039 } + +.CodeRay .cl { color:#B06; font-weight:bold } +.CodeRay .co { color:#036; font-weight:bold } +.CodeRay .cr { color:#0A0 } +.CodeRay .cv { color:#369 } +.CodeRay .df { color:#099; font-weight:bold } +.CodeRay .di { color:#088; font-weight:bold } +.CodeRay .dl { color:black } +.CodeRay .do { color:#970 } +.CodeRay .ds { color:#D42; font-weight:bold } +.CodeRay .e { color:#666; font-weight:bold } +.CodeRay .en { color:#800; font-weight:bold } +.CodeRay .er { color:#F00; background-color:#FAA } +.CodeRay .ex { color:#F00; font-weight:bold } +.CodeRay .fl { color:#60E; font-weight:bold } +.CodeRay .fu { color:#06B; font-weight:bold } +.CodeRay .gv { color:#d70; font-weight:bold } +.CodeRay .hx { color:#058; font-weight:bold } +.CodeRay .i { color:#00D; font-weight:bold } +.CodeRay .ic { color:#B44; font-weight:bold } + +.CodeRay .il { background: #eee } +.CodeRay .il .il { background: #ddd } +.CodeRay .il .il .il { background: #ccc } +.CodeRay .il .idl { font-weight: bold; color: #888 } + +.CodeRay .in { color:#B2B; font-weight:bold } +.CodeRay .iv { color:#33B } +.CodeRay .la { color:#970; font-weight:bold } +.CodeRay .lv { color:#963 } +.CodeRay .oc { color:#40E; font-weight:bold } +.CodeRay .on { color:#000; font-weight:bold } +.CodeRay .op { } +.CodeRay .pc { color:#038; font-weight:bold } +.CodeRay .pd { color:#369; font-weight:bold } +.CodeRay .pp { color:#579 } +.CodeRay .pt { color:#339; font-weight:bold } +.CodeRay .r { color:#080; font-weight:bold } + +.CodeRay .rx { background-color:#fff0ff } +.CodeRay .rx .k { color:#808 } +.CodeRay .rx .dl { color:#404 } +.CodeRay .rx .mod { color:#C2C } +.CodeRay .rx .fu { color:#404; font-weight: bold } + +.CodeRay .s { background-color:#fff0f0 } +.CodeRay .s .s { background-color:#ffe0e0 } +.CodeRay .s .s .s { background-color:#ffd0d0 } +.CodeRay .s .k { color:#D20 } +.CodeRay .s .dl { color:#710 } + +.CodeRay .sh { background-color:#f0fff0 } +.CodeRay .sh .k { color:#2B2 } +.CodeRay .sh .dl { color:#161 } + +.CodeRay .sy { color:#A60 } +.CodeRay .sy .k { color:#A60 } +.CodeRay .sy .dl { color:#630 } + +.CodeRay .ta { color:#070 } +.CodeRay .tf { color:#070; font-weight:bold } +.CodeRay .ts { color:#D70; font-weight:bold } +.CodeRay .ty { color:#339; font-weight:bold } +.CodeRay .v { color:#036 } +.CodeRay .xt { color:#444 } + + </style> +</head> +<body style="background-color: white;"> + +<div class="CodeRay"> + <div class="code"><pre><span class="no"> 1</span> <span title="[:error]" class="er">3</span><span title="[:error]" class="er">7</span><span title="[:error]" class="er">,</span><span title="[:error]" class="er">3</span><span title="[:error]" class="er">8</span><span title="[:error]" class="er">c</span><span title="[:error]" class="er">3</span><span title="[:error]" class="er">7</span><span title="[:error]" class="er">,</span><span title="[:error]" class="er">3</span><span title="[:error]" class="er">8</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 2</span> </span><span title="[:error]" class="er"><</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:reserved]" class="r">for</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">input</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:reserved]" class="r">in</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:constant]" class="co">Dir</span><span title="[:operator]" class="NO_HIGHLIGHT">[</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">*.</span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :delimiter]" class="dl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">extension</span><span title="[:string, :inline, :delimiter]" class="dl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:operator]" class="NO_HIGHLIGHT">]</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 3</span> </span><span title="[:error]" class="er"><</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">name</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:constant]" class="co">File</span><span title="[:operator]" class="NO_HIGHLIGHT">.</span><span title="[:ident]" class="NO_HIGHLIGHT">basename</span><span title="[:operator]" class="NO_HIGHLIGHT">(</span><span title="[:ident]" class="NO_HIGHLIGHT">input</span><span title="[:operator]" class="NO_HIGHLIGHT">,</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">.</span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :delimiter]" class="dl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">extension</span><span title="[:string, :inline, :delimiter]" class="dl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:operator]" class="NO_HIGHLIGHT">)</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 4</span> </span><span title="[:error]" class="er">-</span><span title="[:error]" class="er">-</span><span title="[:error]" class="er">-</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 5</span> </span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:reserved]" class="r">for</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">input</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:reserved]" class="r">in</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:constant]" class="co">Dir</span><span title="[:operator]" class="NO_HIGHLIGHT">[</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">*.</span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :inline_delimiter]" class="idl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">extension</span><span title="[:string, :inline, :inline_delimiter]" class="idl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:operator]" class="NO_HIGHLIGHT">]</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 6</span> </span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">name</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:constant]" class="co">File</span><span title="[:operator]" class="NO_HIGHLIGHT">.</span><span title="[:ident]" class="NO_HIGHLIGHT">basename</span><span title="[:operator]" class="NO_HIGHLIGHT">(</span><span title="[:ident]" class="NO_HIGHLIGHT">input</span><span title="[:operator]" class="NO_HIGHLIGHT">,</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">.</span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :inline_delimiter]" class="idl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">extension</span><span title="[:string, :inline, :inline_delimiter]" class="idl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:operator]" class="NO_HIGHLIGHT">)</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 7</span> </span><span title="[:error]" class="er">4</span><span title="[:error]" class="er">9</span><span title="[:error]" class="er">c</span><span title="[:error]" class="er">4</span><span title="[:error]" class="er">9</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 8</span> </span><span title="[:error]" class="er"><</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">puts</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">New test: </span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :delimiter]" class="dl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">output</span><span title="[:string, :inline, :delimiter]" class="dl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 9</span> </span><span title="[:error]" class="er">-</span><span title="[:error]" class="er">-</span><span title="[:error]" class="er">-</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>10</strong></span> </span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:ident]" class="NO_HIGHLIGHT">puts</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">New test: </span><span title="[:string, :inline]" class="il"><span title="[:string, :inline, :inline_delimiter]" class="idl">#{</span><span title="[:string, :inline, :ident]" class="NO_HIGHLIGHT">output</span><span title="[:string, :inline, :inline_delimiter]" class="idl">}</span></span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">11</span> </span><span title="[:error]" class="er">6</span><span title="[:error]" class="er">9</span><span title="[:error]" class="er">c</span><span title="[:error]" class="er">6</span><span title="[:error]" class="er">9</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">12</span> </span><span title="[:error]" class="er"><</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:error]" class="er">!</span><span title="[:error]" class="er">!</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:error]" class="er">F</span><span title="[:error]" class="er">o</span><span title="[:error]" class="er">l</span><span title="[:error]" class="er">d</span><span title="[:error]" class="er">e</span><span title="[:error]" class="er">r</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:error]" class="er">)</span><span title="[:inline]" class="il"><span title="[:inline, :delimiter]" class="dl">#{</span><span title="[:inline, :constant]" class="co">File</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">.</span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">split</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">(</span><span title="[:inline, :pre_constant]" class="pc">__FILE__</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">)</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">.</span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">first</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">+</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :string]" class="s"><span title="[:inline, :string, :delimiter]" class="dl">'</span><span title="[:inline, :string, :content]" class="k">/</span><span title="[:inline, :string, :delimiter]" class="dl">'</span></span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">+</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">name</span><span title="[:inline, :delimiter]" class="dl">}</span></span><span title="[:content]" class="k"> not found +<span class="no">13</span> --- +<span class="no">14</span> > !! Folder </span><span title="[:inline]" class="il"><span title="[:inline, :inline_delimiter]" class="idl">#{</span><span title="[:inline, :constant]" class="co">File</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">.</span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">split</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">(</span><span title="[:inline, :pre_constant]" class="pc">__FILE__</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">)</span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">.</span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">first</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">+</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :string]" class="s"><span title="[:inline, :string, :delimiter]" class="dl">'</span><span title="[:inline, :string, :content]" class="k">/</span><span title="[:inline, :string, :delimiter]" class="dl">'</span></span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :operator]" class="NO_HIGHLIGHT">+</span><span title="[:inline, :space]" class="NO_HIGHLIGHT"> </span><span title="[:inline, :ident]" class="NO_HIGHLIGHT">name</span><span title="[:inline, :inline_delimiter]" class="idl">}</span></span><span title="[:error]" class="er">c</span><span title="[:error]" class="er">o</span><span title="[:error]" class="er">n</span><span title="[:error]" class="er">t</span><span title="[:error]" class="er">e</span><span title="[:error]" class="er">n</span><span title="[:error]" class="er">t</span><span title="[:error]" class="er">(</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:error]" class="er">n</span><span title="[:error]" class="er">o</span><span title="[:error]" class="er">t</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:error]" class="er">f</span><span title="[:error]" class="er">o</span><span title="[:error]" class="er">u</span><span title="[:error]" class="er">n</span><span title="[:error]" class="er">d</span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">15</span> </span></pre></div> +</div> + +</body> +</html> diff --git a/test/scanners/debug/class.expected.raydebug b/test/scanners/debug/class.expected.raydebug new file mode 100644 index 0000000..c0df683 --- /dev/null +++ b/test/scanners/debug/class.expected.raydebug @@ -0,0 +1,14 @@ +error(3)error(7)error(,)error(3)error(8)error(c)error(3)error(7)error(,)error(3)error(8) +error(<) reserved(for) ident(input) reserved(in) constant(Dir)operator([)string<delimiter(")content(*.)inline<delimiter(#{)ident(extension)delimiter(})>delimiter(")>operator(]) +error(<) ident(name) operator(=) constant(File)operator(.)ident(basename)operator(()ident(input)operator(,) string<delimiter(")content(.)inline<delimiter(#{)ident(extension)delimiter(})>delimiter(")>operator(\)) +error(-)error(-)error(-) +> reserved(for) ident(input) reserved(in) constant(Dir)operator([)string<delimiter(")content(*.)inline<inline_delimiter(#{)ident(extension)inline_delimiter(})>delimiter(")>operator(]) +> ident(name) operator(=) constant(File)operator(.)ident(basename)operator(()ident(input)operator(,) string<delimiter(")content(.)inline<inline_delimiter(#{)ident(extension)inline_delimiter(})>delimiter(")>operator(\)) +error(4)error(9)error(c)error(4)error(9) +error(<) ident(puts) string<delimiter(")content(New test: )inline<delimiter(#{)ident(output)delimiter(})>delimiter(")> +error(-)error(-)error(-) +> ident(puts) string<delimiter(")content(New test: )inline<inline_delimiter(#{)ident(output)inline_delimiter(})>delimiter(")> +error(6)error(9)error(c)error(6)error(9) +error(<) error(!)error(!) error(F)error(o)error(l)error(d)error(e)error(r) error(\))inline<delimiter(#{)constant(File)operator(.)ident(split)operator(()pre_constant(__FILE__)operator(\))operator(.)ident(first) operator(+) string<delimiter(')content(/)delimiter(')> operator(+) ident(name)delimiter(})>content( not found +--- +> !! Folder )inline<inline_delimiter(#{)constant(File)operator(.)ident(split)operator(()pre_constant(__FILE__)operator(\))operator(.)ident(first) operator(+) string<delimiter(')content(/)delimiter(')> operator(+) ident(name)inline_delimiter(})>error(c)error(o)error(n)error(t)error(e)error(n)error(t)error(() error(n)error(o)error(t) error(f)error(o)error(u)error(n)error(d) diff --git a/test/scanners/debug/class.in.raydebug b/test/scanners/debug/class.in.raydebug new file mode 100644 index 0000000..501c99f --- /dev/null +++ b/test/scanners/debug/class.in.raydebug @@ -0,0 +1,14 @@ +37,38c37,38 +< reserved(for) ident(input) reserved(in) constant(Dir)operator([)string<delimiter(")content(*.)inline<delimiter(#{)ident(extension)delimiter(})>delimiter(")>operator(]) +< ident(name) operator(=) constant(File)operator(.)ident(basename)operator(()ident(input)operator(,) string<delimiter(")content(.)inline<delimiter(#{)ident(extension)delimiter(})>delimiter(")>operator(\)) +--- +> reserved(for) ident(input) reserved(in) constant(Dir)operator([)string<delimiter(")content(*.)inline<inline_delimiter(#{)ident(extension)inline_delimiter(})>delimiter(")>operator(]) +> ident(name) operator(=) constant(File)operator(.)ident(basename)operator(()ident(input)operator(,) string<delimiter(")content(.)inline<inline_delimiter(#{)ident(extension)inline_delimiter(})>delimiter(")>operator(\)) +49c49 +< ident(puts) string<delimiter(")content(New test: )inline<delimiter(#{)ident(output)delimiter(})>delimiter(")> +--- +> ident(puts) string<delimiter(")content(New test: )inline<inline_delimiter(#{)ident(output)inline_delimiter(})>delimiter(")> +69c69 +< !! Folder )inline<delimiter(#{)constant(File)operator(.)ident(split)operator(()pre_constant(__FILE__)operator(\))operator(.)ident(first) operator(+) string<delimiter(')content(/)delimiter(')> operator(+) ident(name)delimiter(})>content( not found +--- +> !! Folder )inline<inline_delimiter(#{)constant(File)operator(.)ident(split)operator(()pre_constant(__FILE__)operator(\))operator(.)ident(first) operator(+) string<delimiter(')content(/)delimiter(')> operator(+) ident(name)inline_delimiter(})>content( not found diff --git a/test/scanners/debug/kate.actual.html b/test/scanners/debug/kate.actual.html new file mode 100644 index 0000000..48e02fb --- /dev/null +++ b/test/scanners/debug/kate.actual.html @@ -0,0 +1,200 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <title>CodeRay HTML Encoder Example</title> + <style type="text/css"> +.CodeRay { + background-color: #f8f8f8; + border: 1px solid silver; + font-family: 'Courier New', 'Terminal', monospace; + color: #100; +} +.CodeRay pre { margin: 0px } + +div.CodeRay { } + +span.CodeRay { white-space: pre; border: 0px; padding: 2px } + +table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px } +table.CodeRay td { padding: 2px 4px; vertical-align: top } + +.CodeRay .line_numbers, .CodeRay .no { + background-color: #def; + color: gray; + text-align: right; +} +.CodeRay .line_numbers tt { font-weight: bold } +.CodeRay .no { padding: 0px 4px } +.CodeRay .code { width: 100% } + +ol.CodeRay { font-size: 10pt } +ol.CodeRay li { white-space: pre } + +.CodeRay .code pre { overflow: auto } + +.CodeRay .debug { color:white ! important; background:blue ! important; } + +.CodeRay .af { color:#00C } +.CodeRay .an { color:#007 } +.CodeRay .av { color:#700 } +.CodeRay .aw { color:#C00 } +.CodeRay .bi { color:#509; font-weight:bold } +.CodeRay .c { color:#888 } + +.CodeRay .ch { color:#04D } +.CodeRay .ch .k { color:#04D } +.CodeRay .ch .dl { color:#039 } + +.CodeRay .cl { color:#B06; font-weight:bold } +.CodeRay .co { color:#036; font-weight:bold } +.CodeRay .cr { color:#0A0 } +.CodeRay .cv { color:#369 } +.CodeRay .df { color:#099; font-weight:bold } +.CodeRay .di { color:#088; font-weight:bold } +.CodeRay .dl { color:black } +.CodeRay .do { color:#970 } +.CodeRay .ds { color:#D42; font-weight:bold } +.CodeRay .e { color:#666; font-weight:bold } +.CodeRay .en { color:#800; font-weight:bold } +.CodeRay .er { color:#F00; background-color:#FAA } +.CodeRay .ex { color:#F00; font-weight:bold } +.CodeRay .fl { color:#60E; font-weight:bold } +.CodeRay .fu { color:#06B; font-weight:bold } +.CodeRay .gv { color:#d70; font-weight:bold } +.CodeRay .hx { color:#058; font-weight:bold } +.CodeRay .i { color:#00D; font-weight:bold } +.CodeRay .ic { color:#B44; font-weight:bold } + +.CodeRay .il { background: #eee } +.CodeRay .il .il { background: #ddd } +.CodeRay .il .il .il { background: #ccc } +.CodeRay .il .idl { font-weight: bold; color: #888 } + +.CodeRay .in { color:#B2B; font-weight:bold } +.CodeRay .iv { color:#33B } +.CodeRay .la { color:#970; font-weight:bold } +.CodeRay .lv { color:#963 } +.CodeRay .oc { color:#40E; font-weight:bold } +.CodeRay .on { color:#000; font-weight:bold } +.CodeRay .op { } +.CodeRay .pc { color:#038; font-weight:bold } +.CodeRay .pd { color:#369; font-weight:bold } +.CodeRay .pp { color:#579 } +.CodeRay .pt { color:#339; font-weight:bold } +.CodeRay .r { color:#080; font-weight:bold } + +.CodeRay .rx { background-color:#fff0ff } +.CodeRay .rx .k { color:#808 } +.CodeRay .rx .dl { color:#404 } +.CodeRay .rx .mod { color:#C2C } +.CodeRay .rx .fu { color:#404; font-weight: bold } + +.CodeRay .s { background-color:#fff0f0 } +.CodeRay .s .s { background-color:#ffe0e0 } +.CodeRay .s .s .s { background-color:#ffd0d0 } +.CodeRay .s .k { color:#D20 } +.CodeRay .s .dl { color:#710 } + +.CodeRay .sh { background-color:#f0fff0 } +.CodeRay .sh .k { color:#2B2 } +.CodeRay .sh .dl { color:#161 } + +.CodeRay .sy { color:#A60 } +.CodeRay .sy .k { color:#A60 } +.CodeRay .sy .dl { color:#630 } + +.CodeRay .ta { color:#070 } +.CodeRay .tf { color:#070; font-weight:bold } +.CodeRay .ts { color:#D70; font-weight:bold } +.CodeRay .ty { color:#339; font-weight:bold } +.CodeRay .v { color:#036 } +.CodeRay .xt { color:#444 } + + </style> +</head> +<body style="background-color: white;"> + +<div class="CodeRay"> + <div class="code"><pre><span class="no"> 1</span> <span title="[:preprocessor]" class="pp"><?xml version="1.0" encoding="UTF-8"?></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 2</span> </span><span title="[:preprocessor]" class="pp"><!DOCTYPE language SYSTEM "language.dtd"></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 3</span> </span><span title="[:tag]" class="ta"><language</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Eiffel</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">version</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">1.02</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">kateversion</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">2.1</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">section</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Sources</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">extensions</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">*.e</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">mimetype</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">text/x-eiffel-src</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 4</span> </span><span title="[:tag]" class="ta"><highlighting></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 5</span> </span><span title="[:tag]" class="ta"><list</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">keywords</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 6</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">indexing </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 7</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">class </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 8</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">inherit </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"> 9</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">creation </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>10</strong></span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">feature </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">11</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">rename </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">12</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">redefine </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">13</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">undefine </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">14</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">select </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">15</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">export </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">16</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">local </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">17</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">deferred </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">18</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">do </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">19</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">is </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>20</strong></span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">once </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">21</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">alias </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">22</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">external </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">23</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">rescue </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">24</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">debug </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">25</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">if </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">26</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">inspect </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">27</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">from </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">28</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">else </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">29</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">elseif </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>30</strong></span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">when </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">31</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">until </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">32</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">loop </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">33</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">then </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">34</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">obsolete </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">35</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">end </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">36</span> </span><span title="[:tag]" class="ta"></list></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">37</span> </span><span title="[:tag]" class="ta"><list</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">assertions</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">38</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">check </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">39</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">ensure </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>40</strong></span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">require </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">41</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">variant </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">42</span> </span><span title="[:tag]" class="ta"><item></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:plain]" class="NO_HIGHLIGHT">invariant </span><span title="[:tag]" class="ta"></item></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">43</span> </span><span title="[:tag]" class="ta"></list></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">44</span> </span><span title="[:tag]" class="ta"><contexts></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">45</span> </span><span title="[:tag]" class="ta"><context</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Normal Text</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">lineEndContext</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Normal</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">46</span> </span><span title="[:tag]" class="ta"><keyword</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Keyword</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">String</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">keywords</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">47</span> </span><span title="[:tag]" class="ta"><Float</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Float</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">48</span> </span><span title="[:tag]" class="ta"><Int</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Decimal</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">49</span> </span><span title="[:tag]" class="ta"><RegExpr</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Char</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">String</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">'.'</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>50</strong></span> </span><span title="[:tag]" class="ta"><DetectChar</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">char</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :entity]" class="en">&quot;</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">51</span> </span><span title="[:tag]" class="ta"><Detect2Chars</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Comment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Comment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">char</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">-</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">char1</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">-</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">52</span> </span><span title="[:tag]" class="ta"><keyword</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Assertions</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#stay</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">String</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">assertions</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">53</span> </span><span title="[:tag]" class="ta"></context></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">54</span> </span><span title="[:tag]" class="ta"><context</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">lineEndContext</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#pop</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">55</span> </span><span title="[:tag]" class="ta"><DetectChar</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">context</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#pop</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">char</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :entity]" class="en">&quot;</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">56</span> </span><span title="[:tag]" class="ta"></context></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">57</span> </span><span title="[:tag]" class="ta"><context</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">attribute</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Comment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Comment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">lineEndContext</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">#pop</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">58</span> </span><span title="[:tag]" class="ta"></contexts></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">59</span> </span><span title="[:tag]" class="ta"><itemDatas></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>60</strong></span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Normal Text</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsNormal</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">61</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Keyword</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsKeyword</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">62</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Decimal</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsDecVal</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">63</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Float</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsFloat</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">64</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Char</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsChar</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">65</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">String</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsString</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">66</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Comment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsComment</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">67</span> </span><span title="[:tag]" class="ta"><itemData</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">Assertions</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">defStyleNum</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">dsOthers</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">68</span> </span><span title="[:tag]" class="ta"></itemDatas></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">69</span> </span><span title="[:tag]" class="ta"></highlighting></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no"><strong>70</strong></span> </span><span title="[:tag]" class="ta"><general></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">71</span> </span><span title="[:tag]" class="ta"><comments></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">72</span> </span><span title="[:tag]" class="ta"><comment</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">name</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">singleLine</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">start</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">--</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">73</span> </span><span title="[:tag]" class="ta"></comments></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">74</span> </span><span title="[:tag]" class="ta"><keywords</span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:attribute_name]" class="an">casesensitive</span><span title="[:operator]" class="NO_HIGHLIGHT">=</span><span title="[:string]" class="s"><span title="[:string, :delimiter]" class="dl">"</span><span title="[:string, :content]" class="k">1</span><span title="[:string, :delimiter]" class="dl">"</span></span><span title="[:space]" class="NO_HIGHLIGHT"> </span><span title="[:tag]" class="ta">/></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">75</span> </span><span title="[:tag]" class="ta"></general></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">76</span> </span><span title="[:tag]" class="ta"></language></span><span title="[:space]" class="NO_HIGHLIGHT"> +<span class="no">77</span> </span></pre></div> +</div> + +</body> +</html> diff --git a/test/scanners/debug/kate.expected.raydebug b/test/scanners/debug/kate.expected.raydebug new file mode 100644 index 0000000..01eec5a --- /dev/null +++ b/test/scanners/debug/kate.expected.raydebug @@ -0,0 +1,76 @@ +preprocessor(<?xml version="1.0" encoding="UTF-8"?>) +preprocessor(<!DOCTYPE language SYSTEM "language.dtd">) +tag(<language) attribute_name(name)operator(=)string<delimiter(")content(Eiffel)delimiter(")> attribute_name(version)operator(=)string<delimiter(")content(1.02)delimiter(")> attribute_name(kateversion)operator(=)string<delimiter(")content(2.1)delimiter(")> attribute_name(section)operator(=)string<delimiter(")content(Sources)delimiter(")> attribute_name(extensions)operator(=)string<delimiter(")content(*.e)delimiter(")> attribute_name(mimetype)operator(=)string<delimiter(")content(text/x-eiffel-src)delimiter(")>tag(>) + tag(<highlighting>) + tag(<list) attribute_name(name)operator(=)string<delimiter(")content(keywords)delimiter(")>tag(>) + tag(<item>) plain(indexing )tag(</item>) + tag(<item>) plain(class )tag(</item>) + tag(<item>) plain(inherit )tag(</item>) + tag(<item>) plain(creation )tag(</item>) + tag(<item>) plain(feature )tag(</item>) + tag(<item>) plain(rename )tag(</item>) + tag(<item>) plain(redefine )tag(</item>) + tag(<item>) plain(undefine )tag(</item>) + tag(<item>) plain(select )tag(</item>) + tag(<item>) plain(export )tag(</item>) + tag(<item>) plain(local )tag(</item>) + tag(<item>) plain(deferred )tag(</item>) + tag(<item>) plain(do )tag(</item>) + tag(<item>) plain(is )tag(</item>) + tag(<item>) plain(once )tag(</item>) + tag(<item>) plain(alias )tag(</item>) + tag(<item>) plain(external )tag(</item>) + tag(<item>) plain(rescue )tag(</item>) + tag(<item>) plain(debug )tag(</item>) + tag(<item>) plain(if )tag(</item>) + tag(<item>) plain(inspect )tag(</item>) + tag(<item>) plain(from )tag(</item>) + tag(<item>) plain(else )tag(</item>) + tag(<item>) plain(elseif )tag(</item>) + tag(<item>) plain(when )tag(</item>) + tag(<item>) plain(until )tag(</item>) + tag(<item>) plain(loop )tag(</item>) + tag(<item>) plain(then )tag(</item>) + tag(<item>) plain(obsolete )tag(</item>) + tag(<item>) plain(end )tag(</item>) + tag(</list>) + tag(<list) attribute_name(name)operator(=)string<delimiter(")content(assertions)delimiter(")>tag(>) + tag(<item>) plain(check )tag(</item>) + tag(<item>) plain(ensure )tag(</item>) + tag(<item>) plain(require )tag(</item>) + tag(<item>) plain(variant )tag(</item>) + tag(<item>) plain(invariant )tag(</item>) + tag(</list>) + tag(<contexts>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(Normal Text)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(Normal)delimiter(")>tag(>) + tag(<keyword) attribute_name(attribute)operator(=)string<delimiter(")content(Keyword)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content(keywords)delimiter(")>tag(/>) + tag(<Float) attribute_name(attribute)operator(=)string<delimiter(")content(Float)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")>tag(/>) + tag(<Int) attribute_name(attribute)operator(=)string<delimiter(")content(Decimal)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")>tag(/>) + tag(<RegExpr) attribute_name(attribute)operator(=)string<delimiter(")content(Char)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content('.')delimiter(")>tag(/>) + tag(<DetectChar) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(char)operator(=)string<delimiter(")entity(")delimiter(")>tag(/>) + tag(<Detect2Chars) attribute_name(attribute)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(char)operator(=)string<delimiter(")content(-)delimiter(")> attribute_name(char1)operator(=)string<delimiter(")content(-)delimiter(")>tag(/>) + tag(<keyword) attribute_name(attribute)operator(=)string<delimiter(")content(Assertions)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content(assertions)delimiter(")>tag(/>) + tag(</context>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#pop)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(String)delimiter(")>tag(>) + tag(<DetectChar) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#pop)delimiter(")> attribute_name(char)operator(=)string<delimiter(")entity(")delimiter(")>tag(/>) + tag(</context>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#pop)delimiter(")>tag(/>) + tag(</contexts>) + tag(<itemDatas>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Normal Text)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsNormal)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Keyword)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsKeyword)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Decimal)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsDecVal)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Float)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsFloat)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Char)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsChar)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsString)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsComment)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Assertions)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsOthers)delimiter(")> tag(/>) + tag(</itemDatas>) + tag(</highlighting>) + tag(<general>) + tag(<comments>) + tag(<comment) attribute_name(name)operator(=)string<delimiter(")content(singleLine)delimiter(")> attribute_name(start)operator(=)string<delimiter(")content(--)delimiter(")> tag(/>) + tag(</comments>) + tag(<keywords) attribute_name(casesensitive)operator(=)string<delimiter(")content(1)delimiter(")> tag(/>) + tag(</general>) +tag(</language>) diff --git a/test/scanners/debug/kate.in.raydebug b/test/scanners/debug/kate.in.raydebug new file mode 100644 index 0000000..01eec5a --- /dev/null +++ b/test/scanners/debug/kate.in.raydebug @@ -0,0 +1,76 @@ +preprocessor(<?xml version="1.0" encoding="UTF-8"?>) +preprocessor(<!DOCTYPE language SYSTEM "language.dtd">) +tag(<language) attribute_name(name)operator(=)string<delimiter(")content(Eiffel)delimiter(")> attribute_name(version)operator(=)string<delimiter(")content(1.02)delimiter(")> attribute_name(kateversion)operator(=)string<delimiter(")content(2.1)delimiter(")> attribute_name(section)operator(=)string<delimiter(")content(Sources)delimiter(")> attribute_name(extensions)operator(=)string<delimiter(")content(*.e)delimiter(")> attribute_name(mimetype)operator(=)string<delimiter(")content(text/x-eiffel-src)delimiter(")>tag(>) + tag(<highlighting>) + tag(<list) attribute_name(name)operator(=)string<delimiter(")content(keywords)delimiter(")>tag(>) + tag(<item>) plain(indexing )tag(</item>) + tag(<item>) plain(class )tag(</item>) + tag(<item>) plain(inherit )tag(</item>) + tag(<item>) plain(creation )tag(</item>) + tag(<item>) plain(feature )tag(</item>) + tag(<item>) plain(rename )tag(</item>) + tag(<item>) plain(redefine )tag(</item>) + tag(<item>) plain(undefine )tag(</item>) + tag(<item>) plain(select )tag(</item>) + tag(<item>) plain(export )tag(</item>) + tag(<item>) plain(local )tag(</item>) + tag(<item>) plain(deferred )tag(</item>) + tag(<item>) plain(do )tag(</item>) + tag(<item>) plain(is )tag(</item>) + tag(<item>) plain(once )tag(</item>) + tag(<item>) plain(alias )tag(</item>) + tag(<item>) plain(external )tag(</item>) + tag(<item>) plain(rescue )tag(</item>) + tag(<item>) plain(debug )tag(</item>) + tag(<item>) plain(if )tag(</item>) + tag(<item>) plain(inspect )tag(</item>) + tag(<item>) plain(from )tag(</item>) + tag(<item>) plain(else )tag(</item>) + tag(<item>) plain(elseif )tag(</item>) + tag(<item>) plain(when )tag(</item>) + tag(<item>) plain(until )tag(</item>) + tag(<item>) plain(loop )tag(</item>) + tag(<item>) plain(then )tag(</item>) + tag(<item>) plain(obsolete )tag(</item>) + tag(<item>) plain(end )tag(</item>) + tag(</list>) + tag(<list) attribute_name(name)operator(=)string<delimiter(")content(assertions)delimiter(")>tag(>) + tag(<item>) plain(check )tag(</item>) + tag(<item>) plain(ensure )tag(</item>) + tag(<item>) plain(require )tag(</item>) + tag(<item>) plain(variant )tag(</item>) + tag(<item>) plain(invariant )tag(</item>) + tag(</list>) + tag(<contexts>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(Normal Text)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(Normal)delimiter(")>tag(>) + tag(<keyword) attribute_name(attribute)operator(=)string<delimiter(")content(Keyword)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content(keywords)delimiter(")>tag(/>) + tag(<Float) attribute_name(attribute)operator(=)string<delimiter(")content(Float)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")>tag(/>) + tag(<Int) attribute_name(attribute)operator(=)string<delimiter(")content(Decimal)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")>tag(/>) + tag(<RegExpr) attribute_name(attribute)operator(=)string<delimiter(")content(Char)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content('.')delimiter(")>tag(/>) + tag(<DetectChar) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(char)operator(=)string<delimiter(")entity(")delimiter(")>tag(/>) + tag(<Detect2Chars) attribute_name(attribute)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(char)operator(=)string<delimiter(")content(-)delimiter(")> attribute_name(char1)operator(=)string<delimiter(")content(-)delimiter(")>tag(/>) + tag(<keyword) attribute_name(attribute)operator(=)string<delimiter(")content(Assertions)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#stay)delimiter(")> attribute_name(String)operator(=)string<delimiter(")content(assertions)delimiter(")>tag(/>) + tag(</context>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#pop)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(String)delimiter(")>tag(>) + tag(<DetectChar) attribute_name(attribute)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(context)operator(=)string<delimiter(")content(#pop)delimiter(")> attribute_name(char)operator(=)string<delimiter(")entity(")delimiter(")>tag(/>) + tag(</context>) + tag(<context) attribute_name(attribute)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(name)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(lineEndContext)operator(=)string<delimiter(")content(#pop)delimiter(")>tag(/>) + tag(</contexts>) + tag(<itemDatas>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Normal Text)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsNormal)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Keyword)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsKeyword)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Decimal)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsDecVal)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Float)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsFloat)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Char)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsChar)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(String)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsString)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Comment)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsComment)delimiter(")> tag(/>) + tag(<itemData) attribute_name(name)operator(=)string<delimiter(")content(Assertions)delimiter(")> attribute_name(defStyleNum)operator(=)string<delimiter(")content(dsOthers)delimiter(")> tag(/>) + tag(</itemDatas>) + tag(</highlighting>) + tag(<general>) + tag(<comments>) + tag(<comment) attribute_name(name)operator(=)string<delimiter(")content(singleLine)delimiter(")> attribute_name(start)operator(=)string<delimiter(")content(--)delimiter(")> tag(/>) + tag(</comments>) + tag(<keywords) attribute_name(casesensitive)operator(=)string<delimiter(")content(1)delimiter(")> tag(/>) + tag(</general>) +tag(</language>) diff --git a/test/scanners/debug/suite.rb b/test/scanners/debug/suite.rb new file mode 100644 index 0000000..42503ee --- /dev/null +++ b/test/scanners/debug/suite.rb @@ -0,0 +1,3 @@ +class Debug < CodeRay::TestCase + extension :raydebug +end diff --git a/test/scanners/ruby/nested-heredoc.expected.raydebug b/test/scanners/ruby/nested-heredoc.expected.raydebug new file mode 100644 index 0000000..4aa4fed --- /dev/null +++ b/test/scanners/ruby/nested-heredoc.expected.raydebug @@ -0,0 +1,27 @@ +ident(p) string<delimiter(")inline<inline_delimiter(#{)string<delimiter(<<'END')>operator(.)ident(strip)operator(.)ident(reverse)inline_delimiter(})>char(\\ +)content(First +END +Second)delimiter(")> + +ident(p) shell<delimiter(<<`one`)> operator(;) ident(p) string<delimiter(")inline<inline_delimiter(#{)string<delimiter(<<two)>inline_delimiter(})>delimiter(")>shell<content( +1)delimiter( +one)>string<content( +2)delimiter( +two)> + +ident(this)operator(.)ident(should)operator(.)ident(be)operator(.)ident(plain) + +comment(# from Rails) +reserved(unless) ident(new_record?) + ident(connection)operator(.)ident(delete) string<delimiter(<<-end_sql)>operator(,) string<delimiter(")inline<inline_delimiter(#{)pre_constant(self)operator(.)ident(class)operator(.)ident(name)inline_delimiter(})>content( Destroy)delimiter(")>string<content( + DELETE FROM )inline<inline_delimiter(#{)pre_constant(self)operator(.)ident(class)operator(.)ident(table_name)inline_delimiter(})>content( + WHERE )inline<inline_delimiter(#{)pre_constant(self)operator(.)ident(class)operator(.)ident(primary_key)inline_delimiter(})>content( = )inline<inline_delimiter(#{)ident(quoted_id)inline_delimiter(})>delimiter( + end_sql)> +reserved(end) + +ident(p) string<delimiter(<<this)>string<content( +but it may break )inline<inline_delimiter(#{)string<delimiter(<<that)>inline_delimiter(})>content( +code. +that)delimiter( +this)> +ident(that)operator(.)ident(should)operator(.)ident(be)operator(.)ident(plain)
\ No newline at end of file diff --git a/test/scanners/ruby/nested-heredoc.in.rb b/test/scanners/ruby/nested-heredoc.in.rb new file mode 100755 index 0000000..3059e48 --- /dev/null +++ b/test/scanners/ruby/nested-heredoc.in.rb @@ -0,0 +1,27 @@ +p "#{<<'END'.strip.reverse}\ +First +END +Second" + +p <<`one` ; p "#{<<two}" +1 +one +2 +two + +this.should.be.plain + +# from Rails +unless new_record? + connection.delete <<-end_sql, "#{self.class.name} Destroy" + DELETE FROM #{self.class.table_name} + WHERE #{self.class.primary_key} = #{quoted_id} + end_sql +end + +p <<this +but it may break #{<<that} +code. +that +this +that.should.be.plain
\ No newline at end of file |