coderay 0.8.273 → 0.8.303
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/coderay +1 -1
- data/{README → lib/README} +10 -9
- data/lib/coderay.rb +4 -6
- data/lib/coderay/for_redcloth.rb +1 -1
- data/lib/coderay/helpers/gzip_simple.rb +1 -1
- data/lib/coderay/scanners/_map.rb +1 -0
- data/lib/coderay/scanners/css.rb +28 -6
- data/lib/coderay/scanners/java.rb +3 -10
- data/lib/coderay/scanners/ruby.rb +6 -1
- data/lib/coderay/scanners/ruby/patterns.rb +14 -9
- data/lib/coderay/scanners/sql.Keith.rb +1 -1
- data/lib/coderay/scanners/sql.rb +1 -1
- data/lib/coderay/styles/cycnus.rb +5 -5
- metadata +9 -9
data/bin/coderay
CHANGED
data/{README → lib/README}
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
= CodeRay
|
2
2
|
|
3
3
|
[- Tired of blue'n'gray? Try the original version of this documentation on
|
4
|
-
http://
|
4
|
+
coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
|
5
5
|
|
6
6
|
== About
|
7
7
|
CodeRay is a Ruby library for syntax highlighting.
|
@@ -18,12 +18,11 @@ And with line numbers.
|
|
18
18
|
* is what everybody should have on their website
|
19
19
|
* solves all your problems and makes the girls run after you
|
20
20
|
|
21
|
-
Version: 0.8.
|
21
|
+
Version: 0.8.2
|
22
22
|
Author:: murphy (Kornelius Kalnbach)
|
23
23
|
Contact:: murphy rubychan de
|
24
24
|
Website:: coderay.rubychan.de[http://coderay.rubychan.de]
|
25
25
|
License:: GNU LGPL; see LICENSE file in the main directory.
|
26
|
-
Subversion:: $Id: README 272 2009-01-01 13:57:08Z murphy $
|
27
26
|
|
28
27
|
== Installation
|
29
28
|
|
@@ -34,7 +33,7 @@ You need RubyGems[http://rubyforge.org/frs/?group_id=126].
|
|
34
33
|
|
35
34
|
=== Dependencies
|
36
35
|
|
37
|
-
CodeRay needs Ruby 1.8.6 or later. It
|
36
|
+
CodeRay needs Ruby 1.8.6 or later. It also runs with Ruby 1.9.1+ and JRuby 1.1+.
|
38
37
|
|
39
38
|
|
40
39
|
== Example Usage
|
@@ -51,7 +50,7 @@ CodeRay needs Ruby 1.8.6 or later. It should also run with Ruby 1.9 and JRuby.
|
|
51
50
|
|
52
51
|
See CodeRay.
|
53
52
|
|
54
|
-
Please report errors in this documentation to <
|
53
|
+
Please report errors in this documentation to <murphy rubychan de>.
|
55
54
|
|
56
55
|
|
57
56
|
== Credits
|
@@ -75,8 +74,7 @@ Please report errors in this documentation to <coderay cycnus de>.
|
|
75
74
|
* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
|
76
75
|
coding CodeRay, but also gave me a wonderful target to reach for the Ruby
|
77
76
|
scanner.
|
78
|
-
* everyone who uses CodeBB on http://www.rubyforen.de
|
79
|
-
http://www.infhu.de/mx (down)
|
77
|
+
* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
|
80
78
|
* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
|
81
79
|
* Dethix from ruby-mine.de
|
82
80
|
* zickzackw
|
@@ -88,6 +86,7 @@ Please report errors in this documentation to <coderay cycnus de>.
|
|
88
86
|
* Josh Goebel for another version of the JavaScript scanner and a Diff scanner.
|
89
87
|
* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
|
90
88
|
* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
|
89
|
+
* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
|
91
90
|
* The folks at redmine.org - thank you for using and fixing CodeRay!
|
92
91
|
* matz and all Ruby gods and gurus
|
93
92
|
* The inventors of: the computer, the internet, the true color display, HTML &
|
@@ -99,9 +98,11 @@ Where would we be without all those people?
|
|
99
98
|
=== Created using
|
100
99
|
|
101
100
|
* Ruby[http://ruby-lang.org/]
|
102
|
-
* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
|
101
|
+
* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
|
102
|
+
Triella, born Rico (my new MacBook); as well as
|
103
103
|
Seras and Hikari (my PCs)
|
104
|
-
* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
|
104
|
+
* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
|
105
|
+
VIM[http://vim.org] and TextMate[http://macromates.com]
|
105
106
|
* Subversion[http://subversion.tigris.org/]
|
106
107
|
* Redmine[http://redmine.org/]
|
107
108
|
* Firefox[http://www.mozilla.org/products/firefox/],
|
data/lib/coderay.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# = CodeRay Library
|
2
2
|
#
|
3
|
-
# $Id: coderay.rb 260 2008-10-08 20:18:31Z murphy $
|
4
|
-
#
|
5
3
|
# CodeRay is a Ruby library for syntax highlighting.
|
6
4
|
#
|
7
5
|
# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
|
@@ -130,10 +128,10 @@
|
|
130
128
|
module CodeRay
|
131
129
|
|
132
130
|
# Version: Major.Minor.Teeny[.Revision]
|
133
|
-
# Major: 0 for pre-
|
134
|
-
# Minor:
|
135
|
-
# Teeny: development state
|
136
|
-
# Revision: Subversion Revision number (generated on rake)
|
131
|
+
# Major: 0 for pre-stable, 1 for stable
|
132
|
+
# Minor: feature milestone
|
133
|
+
# Teeny: development state, 0 for pre-release
|
134
|
+
# Revision: Subversion Revision number (generated on rake gem:make)
|
137
135
|
VERSION = '0.8'
|
138
136
|
|
139
137
|
require 'coderay/tokens'
|
data/lib/coderay/for_redcloth.rb
CHANGED
data/lib/coderay/scanners/css.rb
CHANGED
@@ -38,6 +38,7 @@ module Scanners
|
|
38
38
|
Id = /##{Name}/
|
39
39
|
Class = /\.#{Name}/
|
40
40
|
PseudoClass = /:#{Name}/
|
41
|
+
AttributeSelector = /\[[^\]]*\]?/
|
41
42
|
|
42
43
|
end
|
43
44
|
|
@@ -55,8 +56,8 @@ module Scanners
|
|
55
56
|
kind = :space
|
56
57
|
|
57
58
|
elsif case states.last
|
58
|
-
when :initial
|
59
|
-
if scan(
|
59
|
+
when :initial, :media
|
60
|
+
if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
|
60
61
|
kind = :keyword
|
61
62
|
elsif scan RE::Class
|
62
63
|
kind = :class
|
@@ -64,10 +65,19 @@ module Scanners
|
|
64
65
|
kind = :constant
|
65
66
|
elsif scan RE::PseudoClass
|
66
67
|
kind = :pseudo_class
|
67
|
-
elsif scan
|
68
|
-
|
68
|
+
elsif match = scan(RE::AttributeSelector)
|
69
|
+
# TODO: Improve highlighting inside of attribute selectors.
|
70
|
+
tokens << [:open, :string]
|
71
|
+
tokens << [match[0,1], :delimiter]
|
72
|
+
tokens << [match[1..-2], :content] if match.size > 2
|
73
|
+
tokens << [match[-1,1], :delimiter] if match[-1] == ?]
|
74
|
+
tokens << [:close, :string]
|
75
|
+
next
|
76
|
+
elsif match = scan(/@media/)
|
77
|
+
kind = :directive
|
78
|
+
states.push :media_before_name
|
69
79
|
end
|
70
|
-
|
80
|
+
|
71
81
|
when :block
|
72
82
|
if scan(/(?>#{RE::Ident})(?!\()/ox)
|
73
83
|
if value_expected
|
@@ -77,6 +87,18 @@ module Scanners
|
|
77
87
|
end
|
78
88
|
end
|
79
89
|
|
90
|
+
when :media_before_name
|
91
|
+
if scan RE::Ident
|
92
|
+
kind = :type
|
93
|
+
states[-1] = :media_after_name
|
94
|
+
end
|
95
|
+
|
96
|
+
when :media_after_name
|
97
|
+
if scan(/\{/)
|
98
|
+
kind = :operator
|
99
|
+
states[-1] = :media
|
100
|
+
end
|
101
|
+
|
80
102
|
when :comment
|
81
103
|
if scan(/(?:[^*\s]|\*(?!\/))+/)
|
82
104
|
kind = :comment
|
@@ -103,7 +125,7 @@ module Scanners
|
|
103
125
|
|
104
126
|
elsif scan(/\}/)
|
105
127
|
value_expected = false
|
106
|
-
if states.last == :block
|
128
|
+
if states.last == :block || states.last == :media
|
107
129
|
kind = :operator
|
108
130
|
states.pop
|
109
131
|
else
|
@@ -30,12 +30,11 @@ module Scanners
|
|
30
30
|
add(KEYWORDS, :keyword).
|
31
31
|
add(MAGIC_VARIABLES, :local_variable).
|
32
32
|
add(TYPES, :type).
|
33
|
-
add(BuiltinTypes::List, :
|
33
|
+
add(BuiltinTypes::List, :pre_type).
|
34
34
|
add(DIRECTIVES, :directive)
|
35
35
|
|
36
36
|
ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
|
37
37
|
UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
|
38
|
-
REGEXP_ESCAPE = / [bBdDsSwW] /x
|
39
38
|
STRING_CONTENT_PATTERN = {
|
40
39
|
"'" => /[^\\']+/,
|
41
40
|
'"' => /[^\\"]+/,
|
@@ -117,15 +116,11 @@ module Scanners
|
|
117
116
|
|
118
117
|
end
|
119
118
|
|
120
|
-
when :string
|
119
|
+
when :string
|
121
120
|
if scan(STRING_CONTENT_PATTERN[string_delimiter])
|
122
121
|
kind = :content
|
123
122
|
elsif match = scan(/["'\/]/)
|
124
123
|
tokens << [match, :delimiter]
|
125
|
-
if state == :regexp
|
126
|
-
modifiers = scan(/[gim]+/)
|
127
|
-
tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
|
128
|
-
end
|
129
124
|
tokens << [:close, state]
|
130
125
|
string_delimiter = nil
|
131
126
|
state = :initial
|
@@ -136,8 +131,6 @@ module Scanners
|
|
136
131
|
else
|
137
132
|
kind = :char
|
138
133
|
end
|
139
|
-
elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
|
140
|
-
kind = :char
|
141
134
|
elsif scan(/\\./m)
|
142
135
|
kind = :content
|
143
136
|
elsif scan(/ \\ | $ /x)
|
@@ -166,7 +159,7 @@ module Scanners
|
|
166
159
|
|
167
160
|
end
|
168
161
|
|
169
|
-
if
|
162
|
+
if state == :string
|
170
163
|
tokens << [:close, state]
|
171
164
|
end
|
172
165
|
|
@@ -147,6 +147,10 @@ module Scanners
|
|
147
147
|
tokens << [match, kind]
|
148
148
|
next
|
149
149
|
|
150
|
+
elsif bol? && match = scan(/\#!.*/)
|
151
|
+
tokens << [match, :doctype]
|
152
|
+
next
|
153
|
+
|
150
154
|
elsif match = scan(/\#.*/) or
|
151
155
|
( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
|
152
156
|
kind = :comment
|
@@ -191,6 +195,7 @@ module Scanners
|
|
191
195
|
depth -= 1
|
192
196
|
if depth == 0 # closing brace of inline block reached
|
193
197
|
state, depth, heredocs = inline_block_stack.pop
|
198
|
+
heredocs = nil if heredocs && heredocs.empty?
|
194
199
|
tokens << [match, :inline_delimiter]
|
195
200
|
kind = :inline
|
196
201
|
match = :close
|
@@ -346,7 +351,7 @@ module Scanners
|
|
346
351
|
value_expected = value_expected == :set
|
347
352
|
last_token_dot = last_token_dot == :set
|
348
353
|
end
|
349
|
-
|
354
|
+
|
350
355
|
if $DEBUG and not kind
|
351
356
|
raise_inspect 'Error token %p in line %d' %
|
352
357
|
[[match, kind], line], tokens, state
|
@@ -81,25 +81,30 @@ module Scanners
|
|
81
81
|
/ox
|
82
82
|
METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
|
83
83
|
|
84
|
-
|
85
|
-
# (?: M-\\C-|C-\\M-|M-\\c|c\\M-|c|C-|M-)? (?: \\ (?: [0-7]{3} | x[0-9A-Fa-f]{2} | . ) )
|
86
|
-
# assert_equal(225, ?\M-a)
|
87
|
-
# assert_equal(129, ?\M-\C-a)
|
88
|
-
ESCAPE = /
|
84
|
+
SIMPLE_ESCAPE = /
|
89
85
|
[abefnrstv]
|
90
|
-
| M-\\C-|C-\\M-|M-\\c|c\\M-|c|C-|M-
|
91
86
|
| [0-7]{1,3}
|
92
87
|
| x[0-9A-Fa-f]{1,2}
|
93
|
-
|
|
88
|
+
| .?
|
94
89
|
/mx
|
95
|
-
|
90
|
+
|
91
|
+
CONTROL_META_ESCAPE = /
|
92
|
+
(?: M-|C-|c )
|
93
|
+
(?: \\ (?: M-|C-|c ) )*
|
94
|
+
(?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
|
95
|
+
/mox
|
96
|
+
|
97
|
+
ESCAPE = /
|
98
|
+
#{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
|
99
|
+
/mox
|
100
|
+
|
96
101
|
CHARACTER = /
|
97
102
|
\?
|
98
103
|
(?:
|
99
104
|
[^\s\\]
|
100
105
|
| \\ #{ESCAPE}
|
101
106
|
)
|
102
|
-
/
|
107
|
+
/mox
|
103
108
|
|
104
109
|
# NOTE: This is not completely correct, but
|
105
110
|
# nobody needs heredoc delimiters ending with \n.
|
data/lib/coderay/scanners/sql.rb
CHANGED
@@ -8,7 +8,7 @@ module Styles
|
|
8
8
|
code_background = '#f8f8f8'
|
9
9
|
numbers_background = '#def'
|
10
10
|
border_color = 'silver'
|
11
|
-
normal_color = '#
|
11
|
+
normal_color = '#000'
|
12
12
|
|
13
13
|
CSS_MAIN_STYLES = <<-MAIN
|
14
14
|
.CodeRay {
|
@@ -50,7 +50,7 @@ ol.CodeRay li { white-space: pre }
|
|
50
50
|
.av { color:#700 }
|
51
51
|
.aw { color:#C00 }
|
52
52
|
.bi { color:#509; font-weight:bold }
|
53
|
-
.c { color:#
|
53
|
+
.c { color:#888; }
|
54
54
|
|
55
55
|
.ch { color:#04D }
|
56
56
|
.ch .k { color:#04D }
|
@@ -77,10 +77,10 @@ ol.CodeRay li { white-space: pre }
|
|
77
77
|
.i { color:#00D; font-weight:bold }
|
78
78
|
.ic { color:#B44; font-weight:bold }
|
79
79
|
|
80
|
-
.il { background: #eee }
|
80
|
+
.il { background: #eee; color: black }
|
81
81
|
.il .il { background: #ddd }
|
82
82
|
.il .il .il { background: #ccc }
|
83
|
-
.il .idl { font-weight: bold; color: #
|
83
|
+
.il .idl { font-weight: bold; color: #777 }
|
84
84
|
|
85
85
|
.im { color:#f00; }
|
86
86
|
.in { color:#B2B; font-weight:bold }
|
@@ -94,7 +94,7 @@ ol.CodeRay li { white-space: pre }
|
|
94
94
|
.pd { color:#369; font-weight:bold }
|
95
95
|
.pp { color:#579; }
|
96
96
|
.ps { color:#00C; font-weight: bold; }
|
97
|
-
.pt { color:#
|
97
|
+
.pt { color:#349; font-weight:bold }
|
98
98
|
.r, .kw { color:#080; font-weight:bold }
|
99
99
|
|
100
100
|
.ke { color: #808; }
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coderay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.303
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- murphy
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-02-16 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: "CodeRay is a Ruby library for syntax highlighting. I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete, fast and efficient. Usage is simple: require 'coderay' code = 'some %q(weird (Ruby) can't shock) me!' puts CodeRay.scan(code, :ruby).html"
|
17
|
-
email: murphy@
|
17
|
+
email: murphy@rubychan.de
|
18
18
|
executables:
|
19
19
|
- coderay
|
20
20
|
- coderay_stylesheet
|
21
21
|
extensions: []
|
22
22
|
|
23
23
|
extra_rdoc_files:
|
24
|
-
- ./README
|
24
|
+
- ./lib/README
|
25
25
|
- ./FOLDERS
|
26
26
|
files:
|
27
27
|
- ./lib/coderay/duo.rb
|
@@ -77,7 +77,7 @@ files:
|
|
77
77
|
- ./lib/coderay/tokens.rb
|
78
78
|
- ./lib/coderay.rb
|
79
79
|
- ./lib/term/ansicolor.rb
|
80
|
-
- ./README
|
80
|
+
- ./lib/README
|
81
81
|
- ./LICENSE
|
82
82
|
- ./FOLDERS
|
83
83
|
has_rdoc: true
|
@@ -85,7 +85,7 @@ homepage: http://coderay.rubychan.de
|
|
85
85
|
post_install_message:
|
86
86
|
rdoc_options:
|
87
87
|
- -SNw2
|
88
|
-
- -
|
88
|
+
- -mlib/README
|
89
89
|
- -a
|
90
90
|
- -t CodeRay Documentation
|
91
91
|
require_paths:
|
@@ -102,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: "0"
|
104
104
|
version:
|
105
|
-
requirements:
|
106
|
-
|
105
|
+
requirements: []
|
106
|
+
|
107
107
|
rubyforge_project: coderay
|
108
108
|
rubygems_version: 1.3.1
|
109
109
|
signing_key:
|