rouge 0.3.4 → 0.3.5

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.
@@ -48,3 +48,4 @@ load load_dir.join('rouge/theme.rb')
48
48
  load load_dir.join('rouge/themes/thankful_eyes.rb')
49
49
  load load_dir.join('rouge/themes/colorful.rb')
50
50
  load load_dir.join('rouge/themes/base16.rb')
51
+ load load_dir.join('rouge/themes/github.rb')
@@ -48,15 +48,39 @@ module Rouge
48
48
  ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
49
49
  id = /[a-zA-Z_][a-zA-Z0-9]*/
50
50
 
51
- state :whitespace do
52
- rule /^#if\s+0/, 'Comment.Preproc', :if_0
53
- rule /^#/, 'Comment.Preproc', :macro
54
- rule /^#{ws}#if\s+0\b/, 'Comment.Preproc', :if_0
55
- rule /^#{ws}#/, 'Comment.Preproc', :macro
56
- rule /\s+/m, 'Text'
51
+ start { push :bol }
52
+
53
+ state :bol do
54
+ mixin :inline_whitespace
55
+ rule /#if\s+0/ do
56
+ token 'Comment.Preproc'
57
+ pop!; push :if_0
58
+ end
59
+
60
+ rule /#/ do
61
+ token 'Comment.Preproc'
62
+ pop!; push :macro
63
+ end
64
+
65
+ rule(//) { pop! }
66
+ end
67
+
68
+ state :inline_whitespace do
69
+ rule /[ \t\r]+/, 'Text'
57
70
  rule /\\\n/, 'Text'
58
- rule %r(/(\\\n)?/(\n|(.|\n)*?[^\\]\n)), 'Comment.Single'
59
- rule %r(/(\\\n)?[*](.|\n)*?[*](\\\n)?/), 'Comment.Multiline'
71
+ rule %r(/(\\\n)?[*].*?[*](\\\n)?/)m, 'Comment.Multiline'
72
+ end
73
+
74
+ state :whitespace do
75
+ mixin :inline_whitespace
76
+ rule %r(/(\\\n)?/(\n|(.|\n)*?[^\\]\n)), 'Comment.Single', :bol
77
+ rule /\n/, 'Text', :bol
78
+ end
79
+
80
+ state :multiline_comment do
81
+ rule %r([*](\\\n)?/), 'Comment.Multiline', :pop!
82
+ rule %r([*]), 'Comment.Multiline'
83
+ rule %r([^*]+), 'Comment.Multiline'
60
84
  end
61
85
 
62
86
  state :root do
@@ -117,7 +141,10 @@ module Rouge
117
141
  rule %r(//.*$), 'Comment.Single'
118
142
  rule %r(/), 'Comment.Preproc'
119
143
  rule /(?<=\\)\n/, 'Comment.Preproc'
120
- rule /\n/, 'Comment.Preproc', :pop!
144
+ rule /\n/ do
145
+ token 'Comment.Preproc'
146
+ pop!; push :bol
147
+ end
121
148
  end
122
149
 
123
150
  state :if_0 do
@@ -55,10 +55,10 @@ module Rouge
55
55
  rule cap_id, 'Name.Class'
56
56
 
57
57
  rule /[+=|~-]>|<[|~-]/, 'Punctuation'
58
- rule /[:{();\[\]]/, 'Punctuation'
58
+ rule /[:}();\[\]]/, 'Punctuation'
59
59
 
60
60
  # HACK for case statements and selectors
61
- rule /}/, 'Punctuation', :regex_allowed
61
+ rule /{/, 'Punctuation', :regex_allowed
62
62
  rule /,/, 'Punctuation', :regex_allowed
63
63
 
64
64
  rule /(in|and|or)\b/, 'Operator.Word'
@@ -27,6 +27,7 @@ module Rouge
27
27
  'Literal.String.Symbol'
28
28
 
29
29
  rule /:'(\\\\|\\'|[^'])*'/, 'Literal.String.Symbol'
30
+ rule /\b[a-z_]\w*?:\s+/, 'Literal.String.Symbol'
30
31
  rule /'(\\\\|\\'|[^'])*'/, 'Literal.String.Single'
31
32
  rule /:"/, 'Literal.String.Symbol', :simple_sym
32
33
  rule /"/, 'Literal.String.Double', :simple_string
@@ -35,10 +36,10 @@ module Rouge
35
36
  # %-style delimiters
36
37
  # %(abc), %[abc], %<abc>, %.abc., %r.abc., etc
37
38
  delimiter_map = { '{' => '}', '[' => ']', '(' => ')', '<' => '>' }
38
- rule /%([rqswQWx])?([^\w\s])/ do |m|
39
+ rule /%([rqswQWxiI])?([^\w\s])/ do |m|
39
40
  open = Regexp.escape(m[2])
40
41
  close = Regexp.escape(delimiter_map[m[2]] || m[2])
41
- interp = /[rQWx]/ === m[1]
42
+ interp = /[rQWxI]/ === m[1]
42
43
  toktype = 'Literal.String.Other'
43
44
 
44
45
  debug { " open: #{open.inspect}" }
@@ -154,8 +155,8 @@ module Rouge
154
155
  group 'Name.Namespace'
155
156
  end
156
157
 
157
- rule /def\b/, 'Keyword', :funcname
158
- rule /class\b/, 'Keyword', :classname
158
+ rule /def\s+/, 'Keyword', :funcname
159
+ rule /class\s+/, 'Keyword', :classname
159
160
 
160
161
  rule /(?:#{builtins_q.join('|')})\?/, 'Name.Builtin', :expr_start
161
162
  rule /(?:#{builtins_b.join('|')})!/, 'Name.Builtin', :expr_start
@@ -331,7 +332,7 @@ module Rouge
331
332
 
332
333
  # special case for using a single space. Ruby demands that
333
334
  # these be in a single line, otherwise it would make no sense.
334
- rule /(\s*)(%[rqswQWx]? \S* )/ do
335
+ rule /(\s*)(%[rqswQWxiI]? \S* )/ do
335
336
  group 'Text'
336
337
  group 'Literal.String.Other'
337
338
  pop!
@@ -0,0 +1,69 @@
1
+ module Rouge
2
+ module Themes
3
+ class Github < CSSTheme
4
+ name 'github'
5
+
6
+ style 'Comment.Multiline', :fg => '#999988', :italic => true
7
+ style 'Comment.Preproc', :fg => '#999999', :bold => true
8
+ style 'Comment.Single', :fg => '#999988', :italic => true
9
+ style 'Comment.Special', :fg => '#999999', :italic => true, :bold => true
10
+ style 'Comment', :fg => '#999988', :italic => true
11
+ style 'Error', :fg => '#a61717', :bg => '#e3d2d2'
12
+ style 'Generic.Deleted', :fg => '#000000', :bg => '#ffdddd'
13
+ style 'Generic.Emph', :fg => '#000000', :italic => true
14
+ style 'Generic.Error', :fg => '#aa0000'
15
+ style 'Generic.Heading', :fg => '#999999'
16
+ style 'Generic.Inserted', :fg => '#000000', :bg => '#ddffdd'
17
+ style 'Generic.Output', :fg => '#888888'
18
+ style 'Generic.Prompt', :fg => '#555555'
19
+ style 'Generic.Strong', :bold => true
20
+ style 'Generic.Subheading', :fg => '#aaaaaa'
21
+ style 'Generic.Traceback', :fg => '#aa0000'
22
+ style 'Keyword.Constant', :fg => '#000000', :bold => true
23
+ style 'Keyword.Declaration', :fg => '#000000', :bold => true
24
+ style 'Keyword.Namespace', :fg => '#000000', :bold => true
25
+ style 'Keyword.Pseudo', :fg => '#000000', :bold => true
26
+ style 'Keyword.Reserved', :fg => '#000000', :bold => true
27
+ style 'Keyword.Type', :fg => '#445588', :bold => true
28
+ style 'Keyword', :fg => '#000000', :bold => true
29
+ style 'Literal.Number.Float', :fg => '#009999'
30
+ style 'Literal.Number.Hex', :fg => '#009999'
31
+ style 'Literal.Number.Integer.Long', :fg => '#009999'
32
+ style 'Literal.Number.Integer', :fg => '#009999'
33
+ style 'Literal.Number.Oct', :fg => '#009999'
34
+ style 'Literal.Number', :fg => '#009999'
35
+ style 'Literal.String.Backtick', :fg => '#d14'
36
+ style 'Literal.String.Char', :fg => '#d14'
37
+ style 'Literal.String.Doc', :fg => '#d14'
38
+ style 'Literal.String.Double', :fg => '#d14'
39
+ style 'Literal.String.Escape', :fg => '#d14'
40
+ style 'Literal.String.Heredoc', :fg => '#d14'
41
+ style 'Literal.String.Interpol', :fg => '#d14'
42
+ style 'Literal.String.Other', :fg => '#d14'
43
+ style 'Literal.String.Regex', :fg => '#009926'
44
+ style 'Literal.String.Single', :fg => '#d14'
45
+ style 'Literal.String.Symbol', :fg => '#990073'
46
+ style 'Literal.String', :fg => '#d14'
47
+ style 'Name.Attribute', :fg => '#008080'
48
+ style 'Name.Builtin.Pseudo', :fg => '#999999'
49
+ style 'Name.Builtin', :fg => '#0086B3'
50
+ style 'Name.Class', :fg => '#445588', :bold => true
51
+ style 'Name.Constant', :fg => '#008080'
52
+ style 'Name.Decorator', :fg => '#3c5d5d', :bold => true
53
+ style 'Name.Entity', :fg => '#800080'
54
+ style 'Name.Exception', :fg => '#990000', :bold => true
55
+ style 'Name.Function', :fg => '#990000', :bold => true
56
+ style 'Name.Label', :fg => '#990000', :bold => true
57
+ style 'Name.Namespace', :fg => '#555555'
58
+ style 'Name.Tag', :fg => '#000080'
59
+ style 'Name.Variable.Class', :fg => '#008080'
60
+ style 'Name.Variable.Global', :fg => '#008080'
61
+ style 'Name.Variable.Instance', :fg => '#008080'
62
+ style 'Name.Variable', :fg => '#008080'
63
+ style 'Operator.Word', :fg => '#000000', :bold => true
64
+ style 'Operator', :fg => '#000000', :bold => true
65
+ style 'Text.Whitespace', :fg => '#bbbbbb'
66
+ style 'Text', :bg => '#f8f8f8'
67
+ end
68
+ end
69
+ end
@@ -1,5 +1,5 @@
1
1
  module Rouge
2
2
  def self.version
3
- "0.3.4"
3
+ "0.3.5"
4
4
  end
5
5
  end
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: 0.3.4
4
+ version: 0.3.5
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-05-03 00:00:00.000000000 Z
12
+ date: 2013-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  type: :runtime
@@ -50,6 +50,7 @@ files:
50
50
  - lib/rouge/formatters/terminal256.rb
51
51
  - lib/rouge/themes/thankful_eyes.rb
52
52
  - lib/rouge/themes/base16.rb
53
+ - lib/rouge/themes/github.rb
53
54
  - lib/rouge/themes/colorful.rb
54
55
  - lib/rouge/text_analyzer.rb
55
56
  - lib/rouge/regex_lexer.rb