rouge 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/formatters/terminal256.rb +5 -2
- data/lib/rouge/lexers/elixir.rb +4 -4
- data/lib/rouge/lexers/objective_c.rb +1 -1
- data/lib/rouge/lexers/ruby.rb +5 -5
- data/lib/rouge/lexers/swift.rb +128 -0
- data/lib/rouge/theme.rb +9 -1
- data/lib/rouge/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f56238615c98f486c5d3cd978aac53f45e6bb2ee
|
4
|
+
data.tar.gz: 4659578e0b792daf6e8ad9085a4d2dd0312d5749
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97d1c64beea24ce75095a5f2975ff3aa8d902725120f4022ed69b3ac29681cd9e6e61ff88f44ec65733d7795f1a00ae17594e8d5d23ef4419570d1d50c43331e
|
7
|
+
data.tar.gz: b43ec6cbb46295bca0cd5185b1e21202c1583c10f6b0fb447c9ae5d53e5d5469dd0dbde18d13ecfc2044033cc0afd6b45055b2fe44cd11d05d635222b53a0ee0
|
@@ -19,7 +19,7 @@ module Rouge
|
|
19
19
|
tokens.each do |tok, val|
|
20
20
|
escape = escape_sequence(tok)
|
21
21
|
yield escape.style_string
|
22
|
-
yield val
|
22
|
+
yield val.gsub("\n", "\n#{escape.style_string}")
|
23
23
|
yield escape.reset_string
|
24
24
|
end
|
25
25
|
end
|
@@ -126,11 +126,14 @@ module Rouge
|
|
126
126
|
hexes.map { |h| h.to_i(16) }
|
127
127
|
end
|
128
128
|
|
129
|
+
# max distance between two colors, #000000 to #ffffff
|
130
|
+
MAX_DISTANCE = 257 * 257 * 3
|
131
|
+
|
129
132
|
def self.closest_color(r, g, b)
|
130
133
|
@@colors_cache ||= {}
|
131
134
|
key = (r << 16) + (g << 8) + b
|
132
135
|
@@colors_cache.fetch(key) do
|
133
|
-
distance =
|
136
|
+
distance = MAX_DISTANCE
|
134
137
|
|
135
138
|
match = 0
|
136
139
|
|
data/lib/rouge/lexers/elixir.rb
CHANGED
@@ -29,8 +29,8 @@ module Rouge
|
|
29
29
|
rule /(?<!\.)\b(and|not|or|when|xor|in)\b/, Operator::Word
|
30
30
|
rule %r{%=|\*=|\*\*=|\+=|\-=|\^=|\|\|=|
|
31
31
|
<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?=[\s\t])\?|
|
32
|
-
(?<=[\s\t])
|
33
|
-
|
32
|
+
(?<=[\s\t])!+|&(&&?|(?!\d))|\|\||\^|\*|\+|\-|/|
|
33
|
+
\||\+\+|\-\-|\*\*|\/\/|\<\-|\<\>|<<|>>|=|\.|~~~}x, Operator
|
34
34
|
rule %r{(?<!:)(:)([a-zA-Z_]\w*([?!]|=(?![>=]))?|\<\>|===?|>=?|<=?|
|
35
35
|
<=>|&&?|%\(\)|%\[\]|%\{\}|\+\+?|\-\-?|\|\|?|\!|//|[%&`/\|]|
|
36
36
|
\*\*?|=?~|<\-)|([a-zA-Z_]\w*([?!])?)(:)(?!:)}, Str::Symbol
|
@@ -38,11 +38,11 @@ module Rouge
|
|
38
38
|
rule /\b(nil|true|false)\b(?![?!])|\b[A-Z]\w*\b/, Name::Constant
|
39
39
|
rule /\b(__(FILE|LINE|MODULE|MAIN|FUNCTION)__)\b(?![?!])/, Name::Builtin::Pseudo
|
40
40
|
rule /[a-zA-Z_!][\w_]*[!\?]?/, Name
|
41
|
-
rule %r{::|[(){};,/\|:\\\[\]]}, Punctuation
|
41
|
+
rule %r{::|[%(){};,/\|:\\\[\]]}, Punctuation
|
42
42
|
rule /@[a-zA-Z_]\w*|&\d/, Name::Variable
|
43
43
|
rule %r{\b(0[xX][0-9A-Fa-f]+|\d(_?\d)*(\.(?![^\d\s])
|
44
44
|
(_?\d)*)?([eE][-+]?\d(_?\d)*)?|0[bB][01]+)\b}x, Num
|
45
|
-
rule %r{
|
45
|
+
rule %r{~r\/.*\/}, Str::Regex
|
46
46
|
|
47
47
|
mixin :strings
|
48
48
|
end
|
data/lib/rouge/lexers/ruby.rb
CHANGED
@@ -196,18 +196,18 @@ module Rouge
|
|
196
196
|
mixin :has_heredocs
|
197
197
|
|
198
198
|
rule /[A-Z][a-zA-Z0-9_]+/, Name::Constant, :method_call
|
199
|
-
rule /(\.|::)([a-z_]\w*[!?]?|[*%&^`~+-\/\[<>=])/ do
|
200
|
-
groups Punctuation, Name::Function
|
199
|
+
rule /(\.|::)(\s*)([a-z_]\w*[!?]?|[*%&^`~+-\/\[<>=])/ do
|
200
|
+
groups Punctuation, Text, Name::Function
|
201
201
|
push :expr_start
|
202
202
|
end
|
203
203
|
|
204
204
|
rule /[a-zA-Z_]\w*[?!]/, Name, :expr_start
|
205
205
|
rule /[a-zA-Z_]\w*/, Name, :method_call
|
206
|
-
rule
|
206
|
+
rule /\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3}/,
|
207
207
|
Operator, :expr_start
|
208
208
|
rule /[-+\/*%=<>&!^|~]=?/, Operator, :expr_start
|
209
|
-
rule %r<[({,?:\\;/]>, Punctuation, :expr_start
|
210
|
-
rule %r<[)}]>, Punctuation
|
209
|
+
rule %r<[\[({,?:\\;/]>, Punctuation, :expr_start
|
210
|
+
rule %r<[\])}]>, Punctuation
|
211
211
|
end
|
212
212
|
|
213
213
|
state :has_heredocs do
|
@@ -0,0 +1,128 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
class Swift < RegexLexer
|
6
|
+
tag 'swift'
|
7
|
+
filenames '*.swift'
|
8
|
+
|
9
|
+
desc 'Multi paradigm, compiled programming language developed by Apple for iOS and OS X development. (developer.apple.com/swift)'
|
10
|
+
|
11
|
+
id_head = /_|(?!\p{Mc})\p{Alpha}|[^\u0000-\uFFFF]/
|
12
|
+
id_rest = /[\p{Alnum}_]|[^\u0000-\uFFFF]/
|
13
|
+
id = /#{id_head}#{id_rest}*/
|
14
|
+
|
15
|
+
def self.keywords
|
16
|
+
@keywords ||= Set.new %w(
|
17
|
+
break case continue default do else fallthrough if in for return switch where while
|
18
|
+
|
19
|
+
as dynamicType is new super self Self Type __COLUMN__ __FILE__ __FUNCTION__ __LINE__
|
20
|
+
|
21
|
+
associativity didSet get infix inout left mutating none nonmutating operator override postfix precedence prefix right set unowned unowned(safe) unowned(unsafe) weak willSet
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.declarations
|
26
|
+
@declarations ||= Set.new %w(
|
27
|
+
class deinit enum extension func import init let protocol static struct subscript typealias var
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.types
|
32
|
+
@types ||= Set.new %w(
|
33
|
+
Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Int
|
34
|
+
Double Float
|
35
|
+
Bool
|
36
|
+
String Character
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.constants
|
41
|
+
@constants ||= Set.new %w(
|
42
|
+
true false nil
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
state :whitespace do
|
47
|
+
rule /\s+/m, Text
|
48
|
+
rule %r(\/\/.*?\n), Comment::Single
|
49
|
+
rule %r((?<re>\/\*(?:(?>[^\/\*\*\/]+)|\g<re>)*\*\/))m, Comment::Multiline
|
50
|
+
end
|
51
|
+
|
52
|
+
state :root do
|
53
|
+
mixin :whitespace
|
54
|
+
rule /\$(([1-9]\d*)?\d)/, Name::Variable
|
55
|
+
|
56
|
+
rule %r{[()\[\]{}:;,?]}, Punctuation
|
57
|
+
rule %r([-/=+*%<>!&|^.~]+), Operator
|
58
|
+
rule /@?"/, Str, :dq
|
59
|
+
rule /'(\\.|.)'/, Str::Char
|
60
|
+
rule /(\d+\*|\d*\.\d+)(e[+-]?[0-9]+)?/i, Num::Float
|
61
|
+
rule /\d+e[+-]?[0-9]+/i, Num::Float
|
62
|
+
rule /0_?[0-7]+(?:_[0-7]+)*/, Num::Oct
|
63
|
+
rule /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/, Num::Hex
|
64
|
+
rule /0b[01]+(?:_[01]+)*/, Num::Bin
|
65
|
+
rule %r{[\d]+(?:_\d+)*}, Num::Integer
|
66
|
+
|
67
|
+
rule /(?!\b(if|while|for)\b)\b#{id}(?=\s*[(])/, Name::Function
|
68
|
+
|
69
|
+
rule /(#?#{id})(\s*)(:)/ do
|
70
|
+
groups Name::Variable, Text, Punctuation
|
71
|
+
end
|
72
|
+
|
73
|
+
rule /(let|var)\b(\s*)(#{id})/ do
|
74
|
+
groups Keyword, Text, Name::Variable
|
75
|
+
end
|
76
|
+
|
77
|
+
rule id do |m|
|
78
|
+
if self.class.keywords.include? m[0]
|
79
|
+
token Keyword
|
80
|
+
elsif self.class.declarations.include? m[0]
|
81
|
+
token Keyword::Declaration
|
82
|
+
elsif self.class.types.include? m[0]
|
83
|
+
token Keyword::Type
|
84
|
+
elsif self.class.constants.include? m[0]
|
85
|
+
token Keyword::Constant
|
86
|
+
else
|
87
|
+
token Name
|
88
|
+
end
|
89
|
+
end
|
90
|
+
rule id, Name
|
91
|
+
end
|
92
|
+
|
93
|
+
state :dq do
|
94
|
+
rule /\\[\\0tnr'"]/, Str::Escape
|
95
|
+
rule /\\[(]/, Str::Escape, :interp
|
96
|
+
rule /\\x\h{2}/, Str::Escape
|
97
|
+
rule /\\u\h{4}/, Str::Escape
|
98
|
+
rule /\\U\h{8}/, Str::Escape
|
99
|
+
rule /[^\\"]+/, Str
|
100
|
+
rule /"/, Str, :pop!
|
101
|
+
end
|
102
|
+
|
103
|
+
state :interp do
|
104
|
+
rule /[(]/, Punctuation, :interp_inner
|
105
|
+
rule /[)]/, Str::Escape, :pop!
|
106
|
+
mixin :root
|
107
|
+
end
|
108
|
+
|
109
|
+
state :interp_inner do
|
110
|
+
rule /[(]/, Punctuation, :push
|
111
|
+
rule /[)]/, Punctuation, :pop!
|
112
|
+
mixin :root
|
113
|
+
end
|
114
|
+
|
115
|
+
state :class do
|
116
|
+
mixin :whitespace
|
117
|
+
rule id, Name::Class, :pop!
|
118
|
+
end
|
119
|
+
|
120
|
+
state :namespace do
|
121
|
+
mixin :whitespace
|
122
|
+
rule /(?=[(])/, Text, :pop!
|
123
|
+
rule /(#{id}|[.])+/, Name::Namespace, :pop!
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
data/lib/rouge/theme.rb
CHANGED
@@ -90,7 +90,11 @@ module Rouge
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def get_style(token)
|
93
|
-
get_own_style(token) ||
|
93
|
+
get_own_style(token) || base_style
|
94
|
+
end
|
95
|
+
|
96
|
+
def base_style
|
97
|
+
styles[Token::Tokens::Text]
|
94
98
|
end
|
95
99
|
|
96
100
|
def name(n=nil)
|
@@ -148,6 +152,10 @@ module Rouge
|
|
148
152
|
end
|
149
153
|
end
|
150
154
|
|
155
|
+
def render_base(selector, &b)
|
156
|
+
self.class.base_style.render(selector, &b)
|
157
|
+
end
|
158
|
+
|
151
159
|
def style_for(tok)
|
152
160
|
self.class.get_style(tok)
|
153
161
|
end
|
data/lib/rouge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Adkisson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
|
14
14
|
email:
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- lib/rouge/demos/smalltalk
|
83
83
|
- lib/rouge/demos/sml
|
84
84
|
- lib/rouge/demos/sql
|
85
|
+
- lib/rouge/demos/swift
|
85
86
|
- lib/rouge/demos/tcl
|
86
87
|
- lib/rouge/demos/tex
|
87
88
|
- lib/rouge/demos/toml
|
@@ -157,6 +158,7 @@ files:
|
|
157
158
|
- lib/rouge/lexers/smalltalk.rb
|
158
159
|
- lib/rouge/lexers/sml.rb
|
159
160
|
- lib/rouge/lexers/sql.rb
|
161
|
+
- lib/rouge/lexers/swift.rb
|
160
162
|
- lib/rouge/lexers/tcl.rb
|
161
163
|
- lib/rouge/lexers/tex.rb
|
162
164
|
- lib/rouge/lexers/toml.rb
|
@@ -199,8 +201,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
201
|
version: '0'
|
200
202
|
requirements: []
|
201
203
|
rubyforge_project: rouge
|
202
|
-
rubygems_version: 2.2.
|
204
|
+
rubygems_version: 2.2.2
|
203
205
|
signing_key:
|
204
206
|
specification_version: 4
|
205
207
|
summary: A pure-ruby colorizer based on pygments
|
206
208
|
test_files: []
|
209
|
+
has_rdoc:
|