rouge 0.5.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rouge.rb +1 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/ruby +1 -1
- data/lib/rouge/demos/sml +0 -0
- data/lib/rouge/formatters/html.rb +7 -5
- data/lib/rouge/lexer.rb +7 -0
- data/lib/rouge/lexers/cpp.rb +2 -2
- data/lib/rouge/lexers/lua.rb +28 -32
- data/lib/rouge/lexers/moonscript.rb +109 -0
- data/lib/rouge/lexers/objective_c.rb +2 -2
- data/lib/rouge/lexers/sass.rb +2 -2
- data/lib/rouge/lexers/scss.rb +2 -2
- data/lib/rouge/lexers/sml.rb +115 -0
- data/lib/rouge/regex_lexer.rb +1 -1
- data/lib/rouge/theme.rb +1 -0
- data/lib/rouge/themes/monokai.rb +86 -0
- data/lib/rouge/version.rb +1 -1
- metadata +7 -2
data/lib/rouge.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
util = require "my.module"
|
2
|
+
|
3
|
+
a_table = {
|
4
|
+
foo: 'bar'
|
5
|
+
interpolated: "foo-#{other.stuff 2 + 3}"
|
6
|
+
"string": 2
|
7
|
+
do: 'keyword'
|
8
|
+
}
|
9
|
+
|
10
|
+
class MyClass extends SomeClass
|
11
|
+
new: (@init, arg2 = 'default') =>
|
12
|
+
@derived = @init + 2
|
13
|
+
super!
|
14
|
+
|
15
|
+
other: =>
|
16
|
+
@foo + 2
|
data/lib/rouge/demos/ruby
CHANGED
data/lib/rouge/demos/sml
ADDED
File without changes
|
@@ -19,8 +19,8 @@ module Rouge
|
|
19
19
|
# the given theme will be inlined in "style" attributes. This is
|
20
20
|
# useful for formats in which stylesheets are not available.
|
21
21
|
#
|
22
|
-
# Content will be wrapped in a
|
23
|
-
# `:css_class` unless `:wrap` is set to `false`.
|
22
|
+
# Content will be wrapped in a tag (`div` if tableized, `pre` if
|
23
|
+
# not) with the given `:css_class` unless `:wrap` is set to `false`.
|
24
24
|
def initialize(opts={})
|
25
25
|
@css_class = opts.fetch(:css_class, 'highlight')
|
26
26
|
@line_numbers = opts.fetch(:line_numbers, false)
|
@@ -65,10 +65,10 @@ module Rouge
|
|
65
65
|
|
66
66
|
# generate a string of newline-separated line numbers for the gutter
|
67
67
|
numbers = num_lines.times.map do |x|
|
68
|
-
%<<
|
68
|
+
%<<pre class="lineno">#{x+1}</pre>>
|
69
69
|
end.join
|
70
70
|
|
71
|
-
yield "<
|
71
|
+
yield "<div class=#{@css_class.inspect}>" if @wrap
|
72
72
|
yield "<table><tbody><tr>"
|
73
73
|
|
74
74
|
# the "gl" class applies the style for Generic.Lineno
|
@@ -77,11 +77,13 @@ module Rouge
|
|
77
77
|
yield '</td>'
|
78
78
|
|
79
79
|
yield '<td class="code">'
|
80
|
+
yield '<pre>'
|
80
81
|
yield formatted
|
82
|
+
yield '</pre>'
|
81
83
|
yield '</td>'
|
82
84
|
|
83
85
|
yield '</tr></tbody></table>'
|
84
|
-
yield '</
|
86
|
+
yield '</div>' if @wrap
|
85
87
|
end
|
86
88
|
|
87
89
|
def span(tok, val, &b)
|
data/lib/rouge/lexer.rb
CHANGED
@@ -17,6 +17,13 @@ module Rouge
|
|
17
17
|
new(opts).lex(stream, &b)
|
18
18
|
end
|
19
19
|
|
20
|
+
def load_const(const_name, relpath)
|
21
|
+
return if Lexers.const_defined?(const_name)
|
22
|
+
|
23
|
+
root = Pathname.new(__FILE__).dirname.join('lexers')
|
24
|
+
load root.join(relpath)
|
25
|
+
end
|
26
|
+
|
20
27
|
def default_options(o={})
|
21
28
|
@default_options ||= {}
|
22
29
|
@default_options.merge!(o)
|
data/lib/rouge/lexers/cpp.rb
CHANGED
data/lib/rouge/lexers/lua.rb
CHANGED
@@ -1,27 +1,29 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
1
3
|
module Rouge
|
2
4
|
module Lexers
|
3
5
|
class Lua < RegexLexer
|
4
6
|
desc "Lua (http://www.lua.org)"
|
5
7
|
tag 'lua'
|
6
8
|
filenames '*.lua', '*.wlua'
|
7
|
-
|
9
|
+
|
8
10
|
mimetypes 'text/x-lua', 'application/x-lua'
|
9
|
-
|
11
|
+
|
10
12
|
def initialize(opts={})
|
11
13
|
@function_highlighting = opts.delete(:function_highlighting) { true }
|
12
14
|
@disabled_modules = opts.delete(:disabled_modules) { [] }
|
13
15
|
super(opts)
|
14
16
|
end
|
15
|
-
|
17
|
+
|
16
18
|
def self.analyze_text(text)
|
17
19
|
return 1 if text.shebang? 'lua'
|
18
20
|
end
|
19
|
-
|
21
|
+
|
20
22
|
def self.builtins
|
21
23
|
load Pathname.new(__FILE__).dirname.join('lua/builtins.rb')
|
22
24
|
self.builtins
|
23
25
|
end
|
24
|
-
|
26
|
+
|
25
27
|
def builtins
|
26
28
|
return [] unless @function_highlighting
|
27
29
|
|
@@ -32,37 +34,37 @@ module Rouge
|
|
32
34
|
end
|
33
35
|
end
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
state :root do
|
37
39
|
# lua allows a file to start with a shebang
|
38
40
|
rule %r(#!(.*?)$), Comment::Preproc
|
39
41
|
rule //, Text, :base
|
40
42
|
end
|
41
|
-
|
43
|
+
|
42
44
|
state :base do
|
43
|
-
rule %r(--\[(=*)\[.*?\]\1\])
|
45
|
+
rule %r(--\[(=*)\[.*?\]\1\])m, Comment::Multiline
|
44
46
|
rule %r(--.*$), Comment::Single
|
45
|
-
|
47
|
+
|
46
48
|
rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float
|
47
49
|
rule %r((?i)\d+e[+-]?\d+), Num::Float
|
48
50
|
rule %r((?i)0x[0-9a-f]*), Num::Hex
|
49
51
|
rule %r(\d+), Num::Integer
|
50
|
-
|
52
|
+
|
51
53
|
rule %r(\n), Text
|
52
54
|
rule %r([^\S\n]), Text
|
53
55
|
# multiline strings
|
54
|
-
rule %r(\[(=*)\[.*?\]\1\])
|
55
|
-
|
56
|
+
rule %r(\[(=*)\[.*?\]\1\])m, Str
|
57
|
+
|
56
58
|
rule %r((==|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#])), Operator
|
57
59
|
rule %r([\[\]\{\}\(\)\.,:;]), Punctuation
|
58
60
|
rule %r((and|or|not)\b), Operator::Word
|
59
|
-
|
61
|
+
|
60
62
|
rule %r((break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b), Keyword
|
61
63
|
rule %r((local)\b), Keyword::Declaration
|
62
64
|
rule %r((true|false|nil)\b), Keyword::Constant
|
63
|
-
|
65
|
+
|
64
66
|
rule %r((function)\b), Keyword, :function_name
|
65
|
-
|
67
|
+
|
66
68
|
rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m|
|
67
69
|
name = m[0]
|
68
70
|
if self.builtins.include?(name)
|
@@ -76,11 +78,11 @@ module Rouge
|
|
76
78
|
token Name
|
77
79
|
end
|
78
80
|
end
|
79
|
-
|
81
|
+
|
80
82
|
rule %r('), Str::Single, :escape_sqs
|
81
83
|
rule %r("), Str::Double, :escape_dqs
|
82
84
|
end
|
83
|
-
|
85
|
+
|
84
86
|
state :function_name do
|
85
87
|
rule /\s+/, Text
|
86
88
|
rule %r((?:([A-Za-z_][A-Za-z0-9_]*)(\.))?([A-Za-z_][A-Za-z0-9_]*)) do
|
@@ -90,36 +92,30 @@ module Rouge
|
|
90
92
|
# inline function
|
91
93
|
rule %r(\(), Punctuation, :pop!
|
92
94
|
end
|
93
|
-
|
95
|
+
|
94
96
|
state :escape_sqs do
|
95
97
|
mixin :string_escape
|
96
98
|
mixin :sqs
|
97
99
|
end
|
98
|
-
|
100
|
+
|
99
101
|
state :escape_dqs do
|
100
102
|
mixin :string_escape
|
101
103
|
mixin :dqs
|
102
104
|
end
|
103
|
-
|
105
|
+
|
104
106
|
state :string_escape do
|
105
107
|
rule %r(\\([abfnrtv\\"']|\d{1,3})), Str::Escape
|
106
108
|
end
|
107
|
-
|
109
|
+
|
108
110
|
state :sqs do
|
109
|
-
rule %r('), Str, :pop!
|
110
|
-
|
111
|
+
rule %r('), Str::Single, :pop!
|
112
|
+
rule %r([^']+), Str::Single
|
111
113
|
end
|
112
|
-
|
114
|
+
|
113
115
|
state :dqs do
|
114
|
-
rule %r("), Str, :pop!
|
115
|
-
|
116
|
-
end
|
117
|
-
|
118
|
-
# Lua is 8-bit clean, every character is valid in a string
|
119
|
-
state :string do
|
120
|
-
rule /./, Str
|
116
|
+
rule %r("), Str::Double, :pop!
|
117
|
+
rule %r([^"]+), Str::Double
|
121
118
|
end
|
122
|
-
|
123
119
|
end
|
124
120
|
end
|
125
121
|
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
Lexer.load_const :Lua, 'lua.rb'
|
6
|
+
|
7
|
+
class Moonscript < RegexLexer
|
8
|
+
desc "Moonscript (http://www.moonscript.org)"
|
9
|
+
tag 'moonscript'
|
10
|
+
aliases 'moon'
|
11
|
+
filenames '*.moon'
|
12
|
+
mimetypes 'text/x-moonscript', 'application/x-moonscript'
|
13
|
+
|
14
|
+
def initialize(opts={})
|
15
|
+
@function_highlighting = opts.delete(:function_highlighting) { true }
|
16
|
+
@disabled_modules = opts.delete(:disabled_modules) { [] }
|
17
|
+
super(opts)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.analyze_text(text)
|
21
|
+
return 1 if text.shebang? 'moon'
|
22
|
+
end
|
23
|
+
|
24
|
+
def builtins
|
25
|
+
return [] unless @function_highlighting
|
26
|
+
|
27
|
+
@builtins ||= Set.new.tap do |builtins|
|
28
|
+
Rouge::Lexers::Lua.builtins.each do |mod, fns|
|
29
|
+
next if @disabled_modules.include? mod
|
30
|
+
builtins.merge(fns)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
state :root do
|
36
|
+
rule %r(#!(.*?)$), Comment::Preproc # shebang
|
37
|
+
rule //, Text, :main
|
38
|
+
end
|
39
|
+
|
40
|
+
state :base do
|
41
|
+
ident = '(?:[\w_][\w\d_]*)'
|
42
|
+
|
43
|
+
rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float
|
44
|
+
rule %r((?i)\d+e[+-]?\d+), Num::Float
|
45
|
+
rule %r((?i)0x[0-9a-f]*), Num::Hex
|
46
|
+
rule %r(\d+), Num::Integer
|
47
|
+
rule %r(@#{ident}*), Name::Variable::Instance
|
48
|
+
rule %r([A-Z][\w\d_]*), Name::Class
|
49
|
+
rule %r("?[^"]+":), Literal::String::Symbol
|
50
|
+
rule %r(#{ident}:), Literal::String::Symbol
|
51
|
+
rule %r(:#{ident}), Literal::String::Symbol
|
52
|
+
|
53
|
+
rule %r(\s+), Text::Whitespace
|
54
|
+
rule %r((==|~=|!=|<=|>=|\.\.\.|\.\.|->|=>|[=+\-*/%^<>#!\\])), Operator
|
55
|
+
rule %r([\[\]\{\}\(\)\.,:;]), Punctuation
|
56
|
+
rule %r((and|or|not)\b), Operator::Word
|
57
|
+
|
58
|
+
keywords = %w{
|
59
|
+
break class continue do else elseif end extends for if import in
|
60
|
+
repeat return switch super then unless until using when with while
|
61
|
+
}
|
62
|
+
rule %r((#{keywords.join('|')})\b), Keyword
|
63
|
+
rule %r((local|export)\b), Keyword::Declaration
|
64
|
+
rule %r((true|false|nil)\b), Keyword::Constant
|
65
|
+
|
66
|
+
rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m|
|
67
|
+
name = m[0]
|
68
|
+
if self.builtins.include?(name)
|
69
|
+
token Name::Builtin
|
70
|
+
elsif name =~ /\./
|
71
|
+
a, b = name.split('.', 2)
|
72
|
+
token Name, a
|
73
|
+
token Punctuation, '.'
|
74
|
+
token Name, b
|
75
|
+
else
|
76
|
+
token Name
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
state :main do
|
82
|
+
rule %r(--.*$), Comment::Single
|
83
|
+
rule %r(\[(=*)\[.*?\]\1\])m, Str::Heredoc
|
84
|
+
|
85
|
+
mixin :base
|
86
|
+
|
87
|
+
rule %r('), Str::Single, :sqs
|
88
|
+
rule %r("), Str::Double, :dqs
|
89
|
+
end
|
90
|
+
|
91
|
+
state :sqs do
|
92
|
+
rule %r('), Str::Single, :pop!
|
93
|
+
rule %r([^']+), Str::Single
|
94
|
+
end
|
95
|
+
|
96
|
+
state :interpolation do
|
97
|
+
rule %r(\}), Str::Interpol, :pop!
|
98
|
+
mixin :base
|
99
|
+
end
|
100
|
+
|
101
|
+
state :dqs do
|
102
|
+
rule %r(#\{), Str::Interpol, :interpolation
|
103
|
+
rule %r("), Str::Double, :pop!
|
104
|
+
rule %r(#[^{]), Str::Double
|
105
|
+
rule %r([^"#]+), Str::Double
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/rouge/lexers/sass.rb
CHANGED
data/lib/rouge/lexers/scss.rb
CHANGED
@@ -0,0 +1,115 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
class SML < RegexLexer
|
4
|
+
desc 'Standard ML'
|
5
|
+
tag 'sml'
|
6
|
+
aliases 'ml'
|
7
|
+
filenames '*.sml', '*.sig', '*.fun'
|
8
|
+
|
9
|
+
mimetypes 'text/x-standardml', 'application/x-standardml'
|
10
|
+
|
11
|
+
def self.keywords
|
12
|
+
@keywords ||= Set.new %w(
|
13
|
+
abstype and andalso as case datatype do else end exception
|
14
|
+
fn fun handle if in infix infixr let local nonfix of op open
|
15
|
+
orelse raise rec then type val with withtype while
|
16
|
+
eqtype functor include sharing sig signature struct structure
|
17
|
+
where
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
id = /[a-z][\w']*/i
|
22
|
+
symbol = %r([!%&$#/:<=>?@\\~`^|*+-]+)
|
23
|
+
|
24
|
+
def self.analyze_text(text)
|
25
|
+
return 0
|
26
|
+
end
|
27
|
+
|
28
|
+
state :whitespace do
|
29
|
+
rule /\s+/m, Text
|
30
|
+
rule /[(][*]/, Comment, :comment
|
31
|
+
end
|
32
|
+
|
33
|
+
state :delimiters do
|
34
|
+
rule /[(\[{]/, Punctuation, :main
|
35
|
+
rule /[)\]}]/, Punctuation, :pop!
|
36
|
+
|
37
|
+
rule /\b(let|if|local)\b(?!')/, Keyword::Reserved do
|
38
|
+
push; push
|
39
|
+
end
|
40
|
+
|
41
|
+
rule /\b(struct|sig|while)\b(?!')/ do
|
42
|
+
token Keyword::Reserved
|
43
|
+
push
|
44
|
+
end
|
45
|
+
|
46
|
+
rule /\b(do|else|end|in|then)\b(?!')/, Keyword::Reserved, :pop!
|
47
|
+
end
|
48
|
+
|
49
|
+
def token_for_id_with_dot(id)
|
50
|
+
if self.class.keywords.include? id
|
51
|
+
Error
|
52
|
+
else
|
53
|
+
Name::Namespace
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def token_for_final_id(id)
|
58
|
+
if self.class.keywords.include? id or self.class.symbolic_reserved.include? id
|
59
|
+
Error
|
60
|
+
else
|
61
|
+
Name
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def token_for_id(id)
|
66
|
+
if self.class.keywords.include? id
|
67
|
+
Keyword::Reserved
|
68
|
+
elsif self.class.symbolic_reserved.include? id
|
69
|
+
Punctuation
|
70
|
+
else
|
71
|
+
Name
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
state :core do
|
76
|
+
rule /[()\[\]{},;_]|[.][.][.]/, Punctuation
|
77
|
+
rule /#"/, Str::Char, :char
|
78
|
+
rule /~?0x[0-9a-fA-F]+/, Num::Hex
|
79
|
+
rule /0wx[0-9a-fA-F]+/, Num::Hex
|
80
|
+
rule /0w\d+/, Num::Integer
|
81
|
+
rule /~?\d+[.]\d+[eE]~?\d+/, Num::Float
|
82
|
+
rule /~?\d+[.]\d+/, Num::Float
|
83
|
+
rule /~?\d+/, Num::Integer
|
84
|
+
|
85
|
+
rule /#\s*[1-9][0-9]*/, Name::Label
|
86
|
+
rule /#\s*#{id}/, Name::Label
|
87
|
+
rule /#\s+#{symbol}/, Name::Label
|
88
|
+
|
89
|
+
rule /\b(datatype|abstype)\b(?!')/, Keyword::Reserved, :dname
|
90
|
+
rule(/(?=\bexception\b(?!'))/) { push :ename }
|
91
|
+
rule /\b(functor|include|open|signature|structure)\b(?!')/,
|
92
|
+
Keyword::Reserved, :sname
|
93
|
+
rule /\b(type|eqtype)\b(?!')/, Keyword::Reserved, :tname
|
94
|
+
|
95
|
+
rule /'#{id}/, Name::Decorator
|
96
|
+
rule /(#{id})([.])/ do |m|
|
97
|
+
groups(token_for_id_with_dot(m[1]), Punctuation)
|
98
|
+
push :dotted
|
99
|
+
end
|
100
|
+
|
101
|
+
state :dotted do
|
102
|
+
rule /(#{id})([.])/ do |m|
|
103
|
+
groups(token_for_id_with_dot(m[1]), Punctuation)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
state :root do
|
109
|
+
rule /#!.*?\n/, Comment::Preproc
|
110
|
+
rule(//) { push :main }
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
data/lib/rouge/regex_lexer.rb
CHANGED
data/lib/rouge/theme.rb
CHANGED
@@ -142,6 +142,7 @@ module Rouge
|
|
142
142
|
# shared styles for tableized line numbers
|
143
143
|
yield "#{@scope} table { border-spacing: 0; }"
|
144
144
|
yield "#{@scope} table td { padding: 5px; }"
|
145
|
+
yield "#{@scope} table pre { margin: 0; }"
|
145
146
|
yield "#{@scope} table .gutter { text-align: right; }"
|
146
147
|
|
147
148
|
styles.each do |tok, style|
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Themes
|
3
|
+
class Monokai < CSSTheme
|
4
|
+
name 'monokai'
|
5
|
+
|
6
|
+
palette :black => '#000000'
|
7
|
+
palette :bright_green => '#a6e22e'
|
8
|
+
palette :bright_pink => '#f92672'
|
9
|
+
palette :carmine => '#960050'
|
10
|
+
palette :dark => '#49483e'
|
11
|
+
palette :dark_grey => '#888888'
|
12
|
+
palette :dark_red => '#aa0000'
|
13
|
+
palette :dimgrey => '#75715e'
|
14
|
+
palette :emperor => '#555555'
|
15
|
+
palette :grey => '#999999'
|
16
|
+
palette :light_grey => '#aaaaaa'
|
17
|
+
palette :light_violet => '#ae81ff'
|
18
|
+
palette :soft_cyan => '#66d9ef'
|
19
|
+
palette :soft_yellow => '#e6db74'
|
20
|
+
palette :very_dark => '#1e0010'
|
21
|
+
palette :whitish => '#f8f8f2'
|
22
|
+
|
23
|
+
style Comment,
|
24
|
+
Comment::Multiline,
|
25
|
+
Comment::Single, :fg => :dimgrey, :italic => true
|
26
|
+
style Comment::Preproc, :fg => :dimgrey, :bold => true
|
27
|
+
style Comment::Special, :fg => :dimgrey, :italic => true, :bold => true
|
28
|
+
style Error, :fg => :carmine, :bg => :very_dark
|
29
|
+
style Generic::Deleted,
|
30
|
+
Generic::Inserted, :fg => :black
|
31
|
+
style Generic::Emph, :fg => :black, :italic => true
|
32
|
+
style Generic::Error,
|
33
|
+
Generic::Traceback, :fg => :dark_red
|
34
|
+
style Generic::Heading, :fg => :grey
|
35
|
+
style Generic::Output, :fg => :dark_grey
|
36
|
+
style Generic::Prompt, :fg => :emperor
|
37
|
+
style Generic::Strong, :bold => true
|
38
|
+
style Generic::Subheading, :fg => :light_grey
|
39
|
+
style Keyword,
|
40
|
+
Keyword::Constant,
|
41
|
+
Keyword::Declaration,
|
42
|
+
Keyword::Pseudo,
|
43
|
+
Keyword::Reserved,
|
44
|
+
Keyword::Type, :fg => :soft_cyan, :bold => true
|
45
|
+
style Keyword::Namespace,
|
46
|
+
Operator::Word,
|
47
|
+
Operator, :fg => :bright_pink, :bold => true
|
48
|
+
style Literal::Number::Float,
|
49
|
+
Literal::Number::Hex,
|
50
|
+
Literal::Number::Integer::Long,
|
51
|
+
Literal::Number::Integer,
|
52
|
+
Literal::Number::Oct,
|
53
|
+
Literal::Number,
|
54
|
+
Literal::String::Escape, :fg => :light_violet
|
55
|
+
style Literal::String::Backtick,
|
56
|
+
Literal::String::Char,
|
57
|
+
Literal::String::Doc,
|
58
|
+
Literal::String::Double,
|
59
|
+
Literal::String::Heredoc,
|
60
|
+
Literal::String::Interpol,
|
61
|
+
Literal::String::Other,
|
62
|
+
Literal::String::Regex,
|
63
|
+
Literal::String::Single,
|
64
|
+
Literal::String::Symbol,
|
65
|
+
Literal::String, :fg => :soft_yellow
|
66
|
+
style Name::Attribute, :fg => :bright_green
|
67
|
+
style Name::Class,
|
68
|
+
Name::Decorator,
|
69
|
+
Name::Exception,
|
70
|
+
Name::Function, :fg => :bright_green, :bold => true
|
71
|
+
style Name::Constant, :fg => :soft_cyan
|
72
|
+
style Name::Builtin::Pseudo,
|
73
|
+
Name::Builtin,
|
74
|
+
Name::Entity,
|
75
|
+
Name::Namespace,
|
76
|
+
Name::Variable::Class,
|
77
|
+
Name::Variable::Global,
|
78
|
+
Name::Variable::Instance,
|
79
|
+
Name::Variable,
|
80
|
+
Text::Whitespace, :fg => :whitish
|
81
|
+
style Name::Label, :fg => :whitish, :bold => true
|
82
|
+
style Name::Tag, :fg => :bright_pink
|
83
|
+
style Text, :fg => :whitish, :bg => :dark
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/rouge/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-05 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
|
15
15
|
email:
|
@@ -36,6 +36,7 @@ files:
|
|
36
36
|
- lib/rouge/themes/thankful_eyes.rb
|
37
37
|
- lib/rouge/themes/base16.rb
|
38
38
|
- lib/rouge/themes/github.rb
|
39
|
+
- lib/rouge/themes/monokai.rb
|
39
40
|
- lib/rouge/themes/colorful.rb
|
40
41
|
- lib/rouge/text_analyzer.rb
|
41
42
|
- lib/rouge/regex_lexer.rb
|
@@ -60,6 +61,7 @@ files:
|
|
60
61
|
- lib/rouge/lexers/viml/keywords.rb
|
61
62
|
- lib/rouge/lexers/css.rb
|
62
63
|
- lib/rouge/lexers/toml.rb
|
64
|
+
- lib/rouge/lexers/moonscript.rb
|
63
65
|
- lib/rouge/lexers/puppet.rb
|
64
66
|
- lib/rouge/lexers/ruby.rb
|
65
67
|
- lib/rouge/lexers/http.rb
|
@@ -82,6 +84,7 @@ files:
|
|
82
84
|
- lib/rouge/lexers/viml.rb
|
83
85
|
- lib/rouge/lexers/java.rb
|
84
86
|
- lib/rouge/lexers/common_lisp.rb
|
87
|
+
- lib/rouge/lexers/sml.rb
|
85
88
|
- lib/rouge/lexers/scheme.rb
|
86
89
|
- lib/rouge/lexers/haml.rb
|
87
90
|
- lib/rouge/lexers/erb.rb
|
@@ -103,6 +106,7 @@ files:
|
|
103
106
|
- lib/rouge.rb
|
104
107
|
- bin/rougify
|
105
108
|
- lib/rouge/demos/erlang
|
109
|
+
- lib/rouge/demos/moonscript
|
106
110
|
- lib/rouge/demos/sass
|
107
111
|
- lib/rouge/demos/ruby
|
108
112
|
- lib/rouge/demos/factor
|
@@ -140,6 +144,7 @@ files:
|
|
140
144
|
- lib/rouge/demos/sed
|
141
145
|
- lib/rouge/demos/common_lisp
|
142
146
|
- lib/rouge/demos/groovy
|
147
|
+
- lib/rouge/demos/sml
|
143
148
|
- lib/rouge/demos/nginx
|
144
149
|
- lib/rouge/demos/toml
|
145
150
|
- lib/rouge/demos/gherkin
|