coderay 0.8.357 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/README +4 -3
- data/lib/coderay.rb +2 -1
- data/lib/coderay/encoder.rb +41 -15
- data/lib/coderay/encoders/_map.rb +3 -1
- data/lib/coderay/encoders/comment_filter.rb +43 -0
- data/lib/coderay/encoders/div.rb +2 -3
- data/lib/coderay/encoders/filter.rb +75 -0
- data/lib/coderay/encoders/html.rb +20 -3
- data/lib/coderay/encoders/html/css.rb +1 -1
- data/lib/coderay/encoders/html/numerization.rb +11 -2
- data/lib/coderay/encoders/html/output.rb +10 -1
- data/lib/coderay/encoders/json.rb +69 -0
- data/lib/coderay/encoders/lines_of_code.rb +90 -0
- data/lib/coderay/encoders/page.rb +1 -2
- data/lib/coderay/encoders/span.rb +2 -3
- data/lib/coderay/encoders/term.rb +137 -0
- data/lib/coderay/encoders/text.rb +4 -4
- data/lib/coderay/encoders/token_class_filter.rb +84 -0
- data/lib/coderay/encoders/xml.rb +1 -0
- data/lib/coderay/for_redcloth.rb +9 -4
- data/lib/coderay/helpers/file_type.rb +54 -15
- data/lib/coderay/helpers/plugin.rb +21 -3
- data/lib/coderay/helpers/word_list.rb +19 -4
- data/lib/coderay/scanner.rb +33 -2
- data/lib/coderay/scanners/_map.rb +10 -4
- data/lib/coderay/scanners/c.rb +61 -23
- data/lib/coderay/scanners/cpp.rb +228 -0
- data/lib/coderay/scanners/css.rb +9 -1
- data/lib/coderay/scanners/debug.rb +1 -0
- data/lib/coderay/scanners/delphi.rb +2 -2
- data/lib/coderay/scanners/diff.rb +1 -0
- data/lib/coderay/scanners/groovy.rb +263 -0
- data/lib/coderay/scanners/html.rb +9 -2
- data/lib/coderay/scanners/java.rb +18 -14
- data/lib/coderay/scanners/java_script.rb +42 -13
- data/lib/coderay/scanners/json.rb +7 -1
- data/lib/coderay/scanners/nitro_xhtml.rb +4 -0
- data/lib/coderay/scanners/php.rb +526 -0
- data/lib/coderay/scanners/plaintext.rb +4 -1
- data/lib/coderay/scanners/python.rb +285 -0
- data/lib/coderay/scanners/rhtml.rb +3 -0
- data/lib/coderay/scanners/ruby.rb +29 -11
- data/lib/coderay/scanners/ruby/patterns.rb +26 -20
- data/lib/coderay/scanners/scheme.rb +3 -0
- data/lib/coderay/scanners/sql.rb +162 -0
- data/lib/coderay/scanners/xml.rb +1 -1
- data/lib/coderay/scanners/yaml.rb +4 -1
- data/lib/coderay/styles/cycnus.rb +11 -7
- data/lib/coderay/token_classes.rb +4 -1
- data/lib/coderay/tokens.rb +50 -46
- metadata +14 -4
- data/lib/coderay/encoders/tokens.rb +0 -44
@@ -0,0 +1,162 @@
|
|
1
|
+
module CodeRay module Scanners
|
2
|
+
|
3
|
+
# by Josh Goebel
|
4
|
+
class SQL < Scanner
|
5
|
+
|
6
|
+
register_for :sql
|
7
|
+
|
8
|
+
RESERVED_WORDS = %w(
|
9
|
+
create database table index trigger drop primary key set select
|
10
|
+
insert update delete replace into
|
11
|
+
on from values before and or if exists case when
|
12
|
+
then else as group order by avg where
|
13
|
+
join inner outer union engine not
|
14
|
+
like end using collate show columns begin
|
15
|
+
)
|
16
|
+
|
17
|
+
PREDEFINED_TYPES = %w(
|
18
|
+
char varchar enum binary text tinytext mediumtext
|
19
|
+
longtext blob tinyblob mediumblob longblob timestamp
|
20
|
+
date time datetime year double decimal float int
|
21
|
+
integer tinyint mediumint bigint smallint unsigned bit
|
22
|
+
bool boolean hex bin oct
|
23
|
+
)
|
24
|
+
|
25
|
+
PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
|
26
|
+
|
27
|
+
DIRECTIVES = %w( auto_increment unique default charset )
|
28
|
+
|
29
|
+
PREDEFINED_CONSTANTS = %w( null true false )
|
30
|
+
|
31
|
+
IDENT_KIND = CaseIgnoringWordList.new(:ident).
|
32
|
+
add(RESERVED_WORDS, :reserved).
|
33
|
+
add(PREDEFINED_TYPES, :pre_type).
|
34
|
+
add(PREDEFINED_CONSTANTS, :pre_constant).
|
35
|
+
add(PREDEFINED_FUNCTIONS, :predefined).
|
36
|
+
add(DIRECTIVES, :directive)
|
37
|
+
|
38
|
+
ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
|
39
|
+
UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
|
40
|
+
|
41
|
+
STRING_PREFIXES = /[xnb]|_\w+/i
|
42
|
+
|
43
|
+
def scan_tokens tokens, options
|
44
|
+
|
45
|
+
state = :initial
|
46
|
+
string_type = nil
|
47
|
+
string_content = ''
|
48
|
+
|
49
|
+
until eos?
|
50
|
+
|
51
|
+
kind = nil
|
52
|
+
match = nil
|
53
|
+
|
54
|
+
if state == :initial
|
55
|
+
|
56
|
+
if scan(/ \s+ | \\\n /x)
|
57
|
+
kind = :space
|
58
|
+
|
59
|
+
elsif scan(/^(?:--\s?|#).*/)
|
60
|
+
kind = :comment
|
61
|
+
|
62
|
+
elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
|
63
|
+
kind = :comment
|
64
|
+
|
65
|
+
elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
|
66
|
+
kind = :operator
|
67
|
+
|
68
|
+
elsif scan(/(#{STRING_PREFIXES})?([`"'])/o)
|
69
|
+
prefix = self[1]
|
70
|
+
string_type = self[2]
|
71
|
+
tokens << [:open, :string]
|
72
|
+
tokens << [prefix, :modifier] if prefix
|
73
|
+
match = string_type
|
74
|
+
state = :string
|
75
|
+
kind = :delimiter
|
76
|
+
|
77
|
+
elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
|
78
|
+
kind = match[0] == ?@ ? :variable : IDENT_KIND[match.downcase]
|
79
|
+
|
80
|
+
elsif scan(/0[xX][0-9A-Fa-f]+/)
|
81
|
+
kind = :hex
|
82
|
+
|
83
|
+
elsif scan(/0[0-7]+(?![89.eEfF])/)
|
84
|
+
kind = :oct
|
85
|
+
|
86
|
+
elsif scan(/(?>\d+)(?![.eEfF])/)
|
87
|
+
kind = :integer
|
88
|
+
|
89
|
+
elsif scan(/\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
|
90
|
+
kind = :float
|
91
|
+
|
92
|
+
else
|
93
|
+
getch
|
94
|
+
kind = :error
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
elsif state == :string
|
99
|
+
if match = scan(/[^\\"'`]+/)
|
100
|
+
string_content << match
|
101
|
+
next
|
102
|
+
elsif match = scan(/["'`]/)
|
103
|
+
if string_type == match
|
104
|
+
if peek(1) == string_type # doubling means escape
|
105
|
+
string_content << string_type << getch
|
106
|
+
next
|
107
|
+
end
|
108
|
+
unless string_content.empty?
|
109
|
+
tokens << [string_content, :content]
|
110
|
+
string_content = ''
|
111
|
+
end
|
112
|
+
tokens << [matched, :delimiter]
|
113
|
+
tokens << [:close, :string]
|
114
|
+
state = :initial
|
115
|
+
string_type = nil
|
116
|
+
next
|
117
|
+
else
|
118
|
+
string_content << match
|
119
|
+
end
|
120
|
+
next
|
121
|
+
elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
|
122
|
+
unless string_content.empty?
|
123
|
+
tokens << [string_content, :content]
|
124
|
+
string_content = ''
|
125
|
+
end
|
126
|
+
kind = :char
|
127
|
+
elsif match = scan(/ \\ . /mox)
|
128
|
+
string_content << match
|
129
|
+
next
|
130
|
+
elsif scan(/ \\ | $ /x)
|
131
|
+
unless string_content.empty?
|
132
|
+
tokens << [string_content, :content]
|
133
|
+
string_content = ''
|
134
|
+
end
|
135
|
+
kind = :error
|
136
|
+
state = :initial
|
137
|
+
else
|
138
|
+
raise "else case \" reached; %p not handled." % peek(1), tokens
|
139
|
+
end
|
140
|
+
|
141
|
+
else
|
142
|
+
raise 'else-case reached', tokens
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
match ||= matched
|
147
|
+
unless kind
|
148
|
+
raise_inspect 'Error token %p in line %d' %
|
149
|
+
[[match, kind], line], tokens, state
|
150
|
+
end
|
151
|
+
raise_inspect 'Empty token', tokens unless match
|
152
|
+
|
153
|
+
tokens << [match, kind]
|
154
|
+
|
155
|
+
end
|
156
|
+
tokens
|
157
|
+
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
161
|
+
|
162
|
+
end end
|
data/lib/coderay/scanners/xml.rb
CHANGED
@@ -9,6 +9,8 @@ module Scanners
|
|
9
9
|
register_for :yaml
|
10
10
|
file_extension 'yml'
|
11
11
|
|
12
|
+
KINDS_NOT_LOC = :all
|
13
|
+
|
12
14
|
def scan_tokens tokens, options
|
13
15
|
|
14
16
|
value_expected = nil
|
@@ -60,7 +62,8 @@ module Scanners
|
|
60
62
|
when match = scan(/[|>][-+]?/)
|
61
63
|
tokens << [:open, :string]
|
62
64
|
tokens << [match, :delimiter]
|
63
|
-
|
65
|
+
string_indent = key_indent || column(pos - match.size - 1)
|
66
|
+
tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
|
64
67
|
tokens << [:close, :string]
|
65
68
|
next
|
66
69
|
when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
|
@@ -32,6 +32,7 @@ table.CodeRay td { padding: 2px 4px; vertical-align: top }
|
|
32
32
|
text-align: right;
|
33
33
|
}
|
34
34
|
.CodeRay .line_numbers tt { font-weight: bold }
|
35
|
+
.CodeRay .line_numbers .highlighted { color: red }
|
35
36
|
.CodeRay .no { padding: 0px 4px }
|
36
37
|
.CodeRay .code { width: 100% }
|
37
38
|
|
@@ -57,9 +58,11 @@ ol.CodeRay li { white-space: pre }
|
|
57
58
|
.ch .dl { color:#039 }
|
58
59
|
|
59
60
|
.cl { color:#B06; font-weight:bold }
|
61
|
+
.cm { color:#A08; font-weight:bold }
|
60
62
|
.co { color:#036; font-weight:bold }
|
61
63
|
.cr { color:#0A0 }
|
62
64
|
.cv { color:#369 }
|
65
|
+
.de { color:#B0B; }
|
63
66
|
.df { color:#099; font-weight:bold }
|
64
67
|
.di { color:#088; font-weight:bold }
|
65
68
|
.dl { color:black }
|
@@ -69,7 +72,7 @@ ol.CodeRay li { white-space: pre }
|
|
69
72
|
.e { color:#666; font-weight:bold }
|
70
73
|
.en { color:#800; font-weight:bold }
|
71
74
|
.er { color:#F00; background-color:#FAA }
|
72
|
-
.ex { color:#
|
75
|
+
.ex { color:#C00; font-weight:bold }
|
73
76
|
.fl { color:#60E; font-weight:bold }
|
74
77
|
.fu { color:#06B; font-weight:bold }
|
75
78
|
.gv { color:#d70; font-weight:bold }
|
@@ -77,10 +80,11 @@ ol.CodeRay li { white-space: pre }
|
|
77
80
|
.i { color:#00D; font-weight:bold }
|
78
81
|
.ic { color:#B44; font-weight:bold }
|
79
82
|
|
80
|
-
.il { background: #
|
81
|
-
.il .il { background: #
|
82
|
-
.il .il .il { background: #
|
83
|
-
.il .idl { font-weight: bold; color: #
|
83
|
+
.il { background: #ddd; color: black }
|
84
|
+
.il .il { background: #ccc }
|
85
|
+
.il .il .il { background: #bbb }
|
86
|
+
.il .idl { background: #ddd; font-weight: bold; color: #666 }
|
87
|
+
.idl { background-color: #bbb; font-weight: bold; color: #666; }
|
84
88
|
|
85
89
|
.im { color:#f00; }
|
86
90
|
.in { color:#B2B; font-weight:bold }
|
@@ -93,8 +97,8 @@ ol.CodeRay li { white-space: pre }
|
|
93
97
|
.pc { color:#038; font-weight:bold }
|
94
98
|
.pd { color:#369; font-weight:bold }
|
95
99
|
.pp { color:#579; }
|
96
|
-
.ps { color:#00C; font-weight:
|
97
|
-
.pt { color:#
|
100
|
+
.ps { color:#00C; font-weight:bold }
|
101
|
+
.pt { color:#074; font-weight:bold }
|
98
102
|
.r, .kw { color:#080; font-weight:bold }
|
99
103
|
|
100
104
|
.ke { color: #808; }
|
@@ -15,8 +15,10 @@ module CodeRay
|
|
15
15
|
:class_variable => 'cv',
|
16
16
|
:color => 'cr',
|
17
17
|
:comment => 'c',
|
18
|
+
:complex => 'cm',
|
18
19
|
:constant => 'co',
|
19
20
|
:content => 'k',
|
21
|
+
:decorator => 'de',
|
20
22
|
:definition => 'df',
|
21
23
|
:delimiter => 'dl',
|
22
24
|
:directive => 'di',
|
@@ -31,6 +33,7 @@ module CodeRay
|
|
31
33
|
:function => 'fu',
|
32
34
|
:global_variable => 'gv',
|
33
35
|
:hex => 'hx',
|
36
|
+
:imaginary => 'cm',
|
34
37
|
:important => 'im',
|
35
38
|
:include => 'ic',
|
36
39
|
:inline => 'il',
|
@@ -74,7 +77,7 @@ module CodeRay
|
|
74
77
|
:space => :NO_HIGHLIGHT, # 'sp'
|
75
78
|
:plain => :NO_HIGHLIGHT,
|
76
79
|
}
|
77
|
-
ClassOfKind[:
|
80
|
+
ClassOfKind[:method] = ClassOfKind[:function]
|
78
81
|
ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
|
79
82
|
ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
|
80
83
|
ClassOfKind[:escape] = ClassOfKind[:delimiter]
|
data/lib/coderay/tokens.rb
CHANGED
@@ -14,7 +14,7 @@ module CodeRay
|
|
14
14
|
#
|
15
15
|
# [:comment, '# It looks like this']
|
16
16
|
# [:float, '3.1415926']
|
17
|
-
# [:error, '
|
17
|
+
# [:error, '$^']
|
18
18
|
#
|
19
19
|
# Some scanners also yield some kind of sub-tokens, represented by special
|
20
20
|
# token texts, namely :open and :close .
|
@@ -46,47 +46,10 @@ module CodeRay
|
|
46
46
|
#
|
47
47
|
# Tokens' subclass TokenStream allows streaming to save memory.
|
48
48
|
class Tokens < Array
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
#
|
54
|
-
# This format is used by Encoders.Tokens.
|
55
|
-
# It can be reverted using read_token.
|
56
|
-
def write_token text, type
|
57
|
-
if text.is_a? String
|
58
|
-
"#{type}\t#{escape(text)}\n"
|
59
|
-
else
|
60
|
-
":#{text}\t#{type}\t\n"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Read a token from the string.
|
65
|
-
#
|
66
|
-
# Inversion of write_token.
|
67
|
-
#
|
68
|
-
# TODO Test this!
|
69
|
-
def read_token token
|
70
|
-
type, text = token.split("\t", 2)
|
71
|
-
if type[0] == ?:
|
72
|
-
[text.to_sym, type[1..-1].to_sym]
|
73
|
-
else
|
74
|
-
[type.to_sym, unescape(text)]
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
# Escapes a string for use in write_token.
|
79
|
-
def escape text
|
80
|
-
text.gsub(/[\n\\]/, '\\\\\&')
|
81
|
-
end
|
82
|
-
|
83
|
-
# Unescapes a string created by escape.
|
84
|
-
def unescape text
|
85
|
-
text.gsub(/\\[\n\\]/) { |m| m[1,1] }
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
49
|
+
|
50
|
+
# The Scanner instance that created the tokens.
|
51
|
+
attr_accessor :scanner
|
52
|
+
|
90
53
|
# Whether the object is a TokenStream.
|
91
54
|
#
|
92
55
|
# Returns false.
|
@@ -146,7 +109,6 @@ module CodeRay
|
|
146
109
|
encode :text, options
|
147
110
|
end
|
148
111
|
|
149
|
-
|
150
112
|
# Redirects unknown methods to encoder calls.
|
151
113
|
#
|
152
114
|
# For example, if you call +tokens.html+, the HTML encoder
|
@@ -230,6 +192,8 @@ module CodeRay
|
|
230
192
|
replace fix
|
231
193
|
end
|
232
194
|
|
195
|
+
# TODO: Scanner#split_into_lines
|
196
|
+
#
|
233
197
|
# Makes sure that:
|
234
198
|
# - newlines are single tokens
|
235
199
|
# (which means all other token are single-line)
|
@@ -380,8 +344,48 @@ module CodeRay
|
|
380
344
|
|
381
345
|
end
|
382
346
|
|
383
|
-
|
384
|
-
# Token name abbreviations
|
385
|
-
require 'coderay/token_classes'
|
347
|
+
end
|
386
348
|
|
349
|
+
if $0 == __FILE__
|
350
|
+
$VERBOSE = true
|
351
|
+
$: << File.join(File.dirname(__FILE__), '..')
|
352
|
+
eval DATA.read, nil, $0, __LINE__ + 4
|
387
353
|
end
|
354
|
+
|
355
|
+
__END__
|
356
|
+
require 'test/unit'
|
357
|
+
|
358
|
+
class TokensTest < Test::Unit::TestCase
|
359
|
+
|
360
|
+
def test_creation
|
361
|
+
assert CodeRay::Tokens < Array
|
362
|
+
tokens = nil
|
363
|
+
assert_nothing_raised do
|
364
|
+
tokens = CodeRay::Tokens.new
|
365
|
+
end
|
366
|
+
assert_kind_of Array, tokens
|
367
|
+
end
|
368
|
+
|
369
|
+
def test_adding_tokens
|
370
|
+
tokens = CodeRay::Tokens.new
|
371
|
+
assert_nothing_raised do
|
372
|
+
tokens << ['string', :type]
|
373
|
+
tokens << ['()', :operator]
|
374
|
+
end
|
375
|
+
assert_equal tokens.size, 2
|
376
|
+
end
|
377
|
+
|
378
|
+
def test_dump_undump
|
379
|
+
tokens = CodeRay::Tokens.new
|
380
|
+
assert_nothing_raised do
|
381
|
+
tokens << ['string', :type]
|
382
|
+
tokens << ['()', :operator]
|
383
|
+
end
|
384
|
+
tokens2 = nil
|
385
|
+
assert_nothing_raised do
|
386
|
+
tokens2 = tokens.dump.undump
|
387
|
+
end
|
388
|
+
assert_equal tokens, tokens2
|
389
|
+
end
|
390
|
+
|
391
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coderay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- murphy
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-01 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: " CodeRay is a Ruby library for syntax highlighting.\n I try to make CodeRay easy to use and intuitive, but at the same time\n fully featured, complete, fast and efficient.\n\n Usage is simple:\n
|
16
|
+
description: " CodeRay is a Ruby library for syntax highlighting.\n I try to make CodeRay easy to use and intuitive, but at the same time\n fully featured, complete, fast and efficient.\n\n Usage is simple:\n CodeRay.scan(code, :ruby).div\n"
|
17
17
|
email: murphy@rubychan.de
|
18
18
|
executables:
|
19
19
|
- coderay
|
@@ -27,19 +27,24 @@ files:
|
|
27
27
|
- ./lib/coderay/duo.rb
|
28
28
|
- ./lib/coderay/encoder.rb
|
29
29
|
- ./lib/coderay/encoders/_map.rb
|
30
|
+
- ./lib/coderay/encoders/comment_filter.rb
|
30
31
|
- ./lib/coderay/encoders/count.rb
|
31
32
|
- ./lib/coderay/encoders/debug.rb
|
32
33
|
- ./lib/coderay/encoders/div.rb
|
34
|
+
- ./lib/coderay/encoders/filter.rb
|
33
35
|
- ./lib/coderay/encoders/html/css.rb
|
34
36
|
- ./lib/coderay/encoders/html/numerization.rb
|
35
37
|
- ./lib/coderay/encoders/html/output.rb
|
36
38
|
- ./lib/coderay/encoders/html.rb
|
39
|
+
- ./lib/coderay/encoders/json.rb
|
40
|
+
- ./lib/coderay/encoders/lines_of_code.rb
|
37
41
|
- ./lib/coderay/encoders/null.rb
|
38
42
|
- ./lib/coderay/encoders/page.rb
|
39
43
|
- ./lib/coderay/encoders/span.rb
|
40
44
|
- ./lib/coderay/encoders/statistic.rb
|
45
|
+
- ./lib/coderay/encoders/term.rb
|
41
46
|
- ./lib/coderay/encoders/text.rb
|
42
|
-
- ./lib/coderay/encoders/
|
47
|
+
- ./lib/coderay/encoders/token_class_filter.rb
|
43
48
|
- ./lib/coderay/encoders/xml.rb
|
44
49
|
- ./lib/coderay/encoders/yaml.rb
|
45
50
|
- ./lib/coderay/for_redcloth.rb
|
@@ -50,21 +55,26 @@ files:
|
|
50
55
|
- ./lib/coderay/scanner.rb
|
51
56
|
- ./lib/coderay/scanners/_map.rb
|
52
57
|
- ./lib/coderay/scanners/c.rb
|
58
|
+
- ./lib/coderay/scanners/cpp.rb
|
53
59
|
- ./lib/coderay/scanners/css.rb
|
54
60
|
- ./lib/coderay/scanners/debug.rb
|
55
61
|
- ./lib/coderay/scanners/delphi.rb
|
56
62
|
- ./lib/coderay/scanners/diff.rb
|
63
|
+
- ./lib/coderay/scanners/groovy.rb
|
57
64
|
- ./lib/coderay/scanners/html.rb
|
58
65
|
- ./lib/coderay/scanners/java/builtin_types.rb
|
59
66
|
- ./lib/coderay/scanners/java.rb
|
60
67
|
- ./lib/coderay/scanners/java_script.rb
|
61
68
|
- ./lib/coderay/scanners/json.rb
|
62
69
|
- ./lib/coderay/scanners/nitro_xhtml.rb
|
70
|
+
- ./lib/coderay/scanners/php.rb
|
63
71
|
- ./lib/coderay/scanners/plaintext.rb
|
72
|
+
- ./lib/coderay/scanners/python.rb
|
64
73
|
- ./lib/coderay/scanners/rhtml.rb
|
65
74
|
- ./lib/coderay/scanners/ruby/patterns.rb
|
66
75
|
- ./lib/coderay/scanners/ruby.rb
|
67
76
|
- ./lib/coderay/scanners/scheme.rb
|
77
|
+
- ./lib/coderay/scanners/sql.rb
|
68
78
|
- ./lib/coderay/scanners/xml.rb
|
69
79
|
- ./lib/coderay/scanners/yaml.rb
|
70
80
|
- ./lib/coderay/style.rb
|