coderay 0.8.273 → 0.8.303
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|