gitlab-rouge 1.9.2

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.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +23 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +16 -0
  5. data/gitlab-rouge.gemspec +17 -0
  6. data/lib/rouge.rb +57 -0
  7. data/lib/rouge/cli.rb +363 -0
  8. data/lib/rouge/demos/apache +21 -0
  9. data/lib/rouge/demos/applescript +2 -0
  10. data/lib/rouge/demos/c +8 -0
  11. data/lib/rouge/demos/clojure +5 -0
  12. data/lib/rouge/demos/coffeescript +5 -0
  13. data/lib/rouge/demos/common_lisp +1 -0
  14. data/lib/rouge/demos/conf +4 -0
  15. data/lib/rouge/demos/cpp +8 -0
  16. data/lib/rouge/demos/csharp +5 -0
  17. data/lib/rouge/demos/css +4 -0
  18. data/lib/rouge/demos/dart +6 -0
  19. data/lib/rouge/demos/diff +7 -0
  20. data/lib/rouge/demos/elixir +1 -0
  21. data/lib/rouge/demos/erb +1 -0
  22. data/lib/rouge/demos/erlang +7 -0
  23. data/lib/rouge/demos/factor +5 -0
  24. data/lib/rouge/demos/gherkin +17 -0
  25. data/lib/rouge/demos/glsl +14 -0
  26. data/lib/rouge/demos/go +7 -0
  27. data/lib/rouge/demos/groovy +9 -0
  28. data/lib/rouge/demos/haml +5 -0
  29. data/lib/rouge/demos/handlebars +7 -0
  30. data/lib/rouge/demos/haskell +6 -0
  31. data/lib/rouge/demos/html +8 -0
  32. data/lib/rouge/demos/http +14 -0
  33. data/lib/rouge/demos/ini +4 -0
  34. data/lib/rouge/demos/io +11 -0
  35. data/lib/rouge/demos/java +5 -0
  36. data/lib/rouge/demos/javascript +1 -0
  37. data/lib/rouge/demos/json +1 -0
  38. data/lib/rouge/demos/json-doc +1 -0
  39. data/lib/rouge/demos/liquid +11 -0
  40. data/lib/rouge/demos/literate_coffeescript +3 -0
  41. data/lib/rouge/demos/literate_haskell +7 -0
  42. data/lib/rouge/demos/llvm +20 -0
  43. data/lib/rouge/demos/lua +12 -0
  44. data/lib/rouge/demos/make +6 -0
  45. data/lib/rouge/demos/markdown +4 -0
  46. data/lib/rouge/demos/matlab +6 -0
  47. data/lib/rouge/demos/moonscript +16 -0
  48. data/lib/rouge/demos/nginx +5 -0
  49. data/lib/rouge/demos/nim +27 -0
  50. data/lib/rouge/demos/objective_c +14 -0
  51. data/lib/rouge/demos/ocaml +12 -0
  52. data/lib/rouge/demos/perl +5 -0
  53. data/lib/rouge/demos/php +3 -0
  54. data/lib/rouge/demos/plaintext +1 -0
  55. data/lib/rouge/demos/powershell +49 -0
  56. data/lib/rouge/demos/prolog +9 -0
  57. data/lib/rouge/demos/properties +7 -0
  58. data/lib/rouge/demos/puppet +6 -0
  59. data/lib/rouge/demos/python +6 -0
  60. data/lib/rouge/demos/qml +9 -0
  61. data/lib/rouge/demos/r +8 -0
  62. data/lib/rouge/demos/racket +24 -0
  63. data/lib/rouge/demos/ruby +9 -0
  64. data/lib/rouge/demos/rust +12 -0
  65. data/lib/rouge/demos/sass +3 -0
  66. data/lib/rouge/demos/scala +3 -0
  67. data/lib/rouge/demos/scheme +4 -0
  68. data/lib/rouge/demos/scss +5 -0
  69. data/lib/rouge/demos/sed +4 -0
  70. data/lib/rouge/demos/shell +2 -0
  71. data/lib/rouge/demos/slim +17 -0
  72. data/lib/rouge/demos/smalltalk +6 -0
  73. data/lib/rouge/demos/sml +4 -0
  74. data/lib/rouge/demos/sql +1 -0
  75. data/lib/rouge/demos/swift +5 -0
  76. data/lib/rouge/demos/tcl +1 -0
  77. data/lib/rouge/demos/tex +1 -0
  78. data/lib/rouge/demos/toml +9 -0
  79. data/lib/rouge/demos/tulip +14 -0
  80. data/lib/rouge/demos/vb +4 -0
  81. data/lib/rouge/demos/viml +5 -0
  82. data/lib/rouge/demos/xml +2 -0
  83. data/lib/rouge/demos/yaml +4 -0
  84. data/lib/rouge/formatter.rb +50 -0
  85. data/lib/rouge/formatters/html.rb +117 -0
  86. data/lib/rouge/formatters/null.rb +19 -0
  87. data/lib/rouge/formatters/terminal256.rb +176 -0
  88. data/lib/rouge/lexer.rb +443 -0
  89. data/lib/rouge/lexers/apache.rb +68 -0
  90. data/lib/rouge/lexers/apache/keywords.yml +453 -0
  91. data/lib/rouge/lexers/apple_script.rb +367 -0
  92. data/lib/rouge/lexers/c.rb +212 -0
  93. data/lib/rouge/lexers/clojure.rb +112 -0
  94. data/lib/rouge/lexers/coffeescript.rb +174 -0
  95. data/lib/rouge/lexers/common_lisp.rb +345 -0
  96. data/lib/rouge/lexers/conf.rb +24 -0
  97. data/lib/rouge/lexers/cpp.rb +66 -0
  98. data/lib/rouge/lexers/csharp.rb +88 -0
  99. data/lib/rouge/lexers/css.rb +271 -0
  100. data/lib/rouge/lexers/dart.rb +104 -0
  101. data/lib/rouge/lexers/diff.rb +31 -0
  102. data/lib/rouge/lexers/elixir.rb +108 -0
  103. data/lib/rouge/lexers/erb.rb +56 -0
  104. data/lib/rouge/lexers/erlang.rb +118 -0
  105. data/lib/rouge/lexers/factor.rb +302 -0
  106. data/lib/rouge/lexers/gherkin.rb +137 -0
  107. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  108. data/lib/rouge/lexers/glsl.rb +135 -0
  109. data/lib/rouge/lexers/go.rb +178 -0
  110. data/lib/rouge/lexers/groovy.rb +104 -0
  111. data/lib/rouge/lexers/haml.rb +228 -0
  112. data/lib/rouge/lexers/handlebars.rb +79 -0
  113. data/lib/rouge/lexers/haskell.rb +183 -0
  114. data/lib/rouge/lexers/html.rb +94 -0
  115. data/lib/rouge/lexers/http.rb +80 -0
  116. data/lib/rouge/lexers/ini.rb +57 -0
  117. data/lib/rouge/lexers/io.rb +68 -0
  118. data/lib/rouge/lexers/java.rb +76 -0
  119. data/lib/rouge/lexers/javascript.rb +297 -0
  120. data/lib/rouge/lexers/liquid.rb +287 -0
  121. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  122. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  123. data/lib/rouge/lexers/llvm.rb +84 -0
  124. data/lib/rouge/lexers/lua.rb +122 -0
  125. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  126. data/lib/rouge/lexers/make.rb +116 -0
  127. data/lib/rouge/lexers/markdown.rb +154 -0
  128. data/lib/rouge/lexers/matlab.rb +74 -0
  129. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  130. data/lib/rouge/lexers/moonscript.rb +110 -0
  131. data/lib/rouge/lexers/nginx.rb +71 -0
  132. data/lib/rouge/lexers/nim.rb +152 -0
  133. data/lib/rouge/lexers/objective_c.rb +197 -0
  134. data/lib/rouge/lexers/ocaml.rb +111 -0
  135. data/lib/rouge/lexers/perl.rb +197 -0
  136. data/lib/rouge/lexers/php.rb +173 -0
  137. data/lib/rouge/lexers/php/builtins.rb +204 -0
  138. data/lib/rouge/lexers/plain_text.rb +25 -0
  139. data/lib/rouge/lexers/powershell.rb +96 -0
  140. data/lib/rouge/lexers/prolog.rb +64 -0
  141. data/lib/rouge/lexers/properties.rb +55 -0
  142. data/lib/rouge/lexers/puppet.rb +128 -0
  143. data/lib/rouge/lexers/python.rb +228 -0
  144. data/lib/rouge/lexers/qml.rb +72 -0
  145. data/lib/rouge/lexers/r.rb +56 -0
  146. data/lib/rouge/lexers/racket.rb +542 -0
  147. data/lib/rouge/lexers/ruby.rb +415 -0
  148. data/lib/rouge/lexers/rust.rb +191 -0
  149. data/lib/rouge/lexers/sass.rb +74 -0
  150. data/lib/rouge/lexers/sass/common.rb +180 -0
  151. data/lib/rouge/lexers/scala.rb +142 -0
  152. data/lib/rouge/lexers/scheme.rb +112 -0
  153. data/lib/rouge/lexers/scss.rb +34 -0
  154. data/lib/rouge/lexers/sed.rb +170 -0
  155. data/lib/rouge/lexers/shell.rb +152 -0
  156. data/lib/rouge/lexers/slim.rb +228 -0
  157. data/lib/rouge/lexers/smalltalk.rb +116 -0
  158. data/lib/rouge/lexers/sml.rb +347 -0
  159. data/lib/rouge/lexers/sql.rb +140 -0
  160. data/lib/rouge/lexers/swift.rb +144 -0
  161. data/lib/rouge/lexers/tcl.rb +192 -0
  162. data/lib/rouge/lexers/tex.rb +72 -0
  163. data/lib/rouge/lexers/toml.rb +71 -0
  164. data/lib/rouge/lexers/tulip.rb +75 -0
  165. data/lib/rouge/lexers/vb.rb +164 -0
  166. data/lib/rouge/lexers/viml.rb +101 -0
  167. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  168. data/lib/rouge/lexers/xml.rb +59 -0
  169. data/lib/rouge/lexers/yaml.rb +364 -0
  170. data/lib/rouge/plugins/redcarpet.rb +30 -0
  171. data/lib/rouge/regex_lexer.rb +439 -0
  172. data/lib/rouge/template_lexer.rb +22 -0
  173. data/lib/rouge/text_analyzer.rb +48 -0
  174. data/lib/rouge/theme.rb +195 -0
  175. data/lib/rouge/themes/base16.rb +130 -0
  176. data/lib/rouge/themes/colorful.rb +67 -0
  177. data/lib/rouge/themes/github.rb +71 -0
  178. data/lib/rouge/themes/molokai.rb +82 -0
  179. data/lib/rouge/themes/monokai.rb +92 -0
  180. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  181. data/lib/rouge/themes/thankful_eyes.rb +71 -0
  182. data/lib/rouge/token.rb +182 -0
  183. data/lib/rouge/util.rb +101 -0
  184. data/lib/rouge/version.rb +7 -0
  185. metadata +231 -0
@@ -0,0 +1,82 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ class Molokai < CSSTheme
6
+ name 'molokai'
7
+
8
+ palette :black => '#1b1d1e'
9
+ palette :white => '#f8f8f2'
10
+ palette :blue => '#66d9ef'
11
+ palette :green => '#a6e22e'
12
+ palette :grey => '#403d3d'
13
+ palette :red => '#f92672'
14
+ palette :light_grey => '#465457'
15
+ palette :dark_blue => '#5e5d83'
16
+ palette :violet => '#af87ff'
17
+ palette :yellow => '#d7d787'
18
+
19
+ style Comment,
20
+ Comment::Multiline,
21
+ Comment::Single, :fg => :dark_blue, :italic => true
22
+ style Comment::Preproc, :fg => :light_grey, :bold => true
23
+ style Comment::Special, :fg => :light_grey, :italic => true, :bold => true
24
+ style Error, :fg => :white, :bg => :grey
25
+ style Generic::Inserted, :fg => :green
26
+ style Generic::Deleted, :fg => :red
27
+ style Generic::Emph, :fg => :black, :italic => true
28
+ style Generic::Error,
29
+ Generic::Traceback, :fg => :red
30
+ style Generic::Heading, :fg => :grey
31
+ style Generic::Output, :fg => :grey
32
+ style Generic::Prompt, :fg => :blue
33
+ style Generic::Strong, :bold => true
34
+ style Generic::Subheading, :fg => :light_grey
35
+ style Keyword,
36
+ Keyword::Constant,
37
+ Keyword::Declaration,
38
+ Keyword::Pseudo,
39
+ Keyword::Reserved,
40
+ Keyword::Type, :fg => :blue, :bold => true
41
+ style Keyword::Namespace,
42
+ Operator::Word,
43
+ Operator, :fg => :red, :bold => true
44
+ style Literal::Number::Float,
45
+ Literal::Number::Hex,
46
+ Literal::Number::Integer::Long,
47
+ Literal::Number::Integer,
48
+ Literal::Number::Oct,
49
+ Literal::Number,
50
+ Literal::String::Escape, :fg => :violet
51
+ style Literal::String::Backtick,
52
+ Literal::String::Char,
53
+ Literal::String::Doc,
54
+ Literal::String::Double,
55
+ Literal::String::Heredoc,
56
+ Literal::String::Interpol,
57
+ Literal::String::Other,
58
+ Literal::String::Regex,
59
+ Literal::String::Single,
60
+ Literal::String::Symbol,
61
+ Literal::String, :fg => :yellow
62
+ style Name::Attribute, :fg => :green
63
+ style Name::Class,
64
+ Name::Decorator,
65
+ Name::Exception,
66
+ Name::Function, :fg => :green, :bold => true
67
+ style Name::Constant, :fg => :blue
68
+ style Name::Builtin::Pseudo,
69
+ Name::Builtin,
70
+ Name::Entity,
71
+ Name::Namespace,
72
+ Name::Variable::Class,
73
+ Name::Variable::Global,
74
+ Name::Variable::Instance,
75
+ Name::Variable,
76
+ Text::Whitespace, :fg => :white
77
+ style Name::Label, :fg => :white, :bold => true
78
+ style Name::Tag, :fg => :red
79
+ style Text, :fg => :white, :bg => :black
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,92 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ class Monokai < CSSTheme
6
+ name 'monokai'
7
+
8
+ palette :black => '#000000'
9
+ palette :bright_green => '#a6e22e'
10
+ palette :bright_pink => '#f92672'
11
+ palette :carmine => '#960050'
12
+ palette :dark => '#49483e'
13
+ palette :dark_grey => '#888888'
14
+ palette :dark_red => '#aa0000'
15
+ palette :dimgrey => '#75715e'
16
+ palette :dimgreen => '#324932'
17
+ palette :dimred => '#493131'
18
+ palette :emperor => '#555555'
19
+ palette :grey => '#999999'
20
+ palette :light_grey => '#aaaaaa'
21
+ palette :light_violet => '#ae81ff'
22
+ palette :soft_cyan => '#66d9ef'
23
+ palette :soft_yellow => '#e6db74'
24
+ palette :very_dark => '#1e0010'
25
+ palette :whitish => '#f8f8f2'
26
+ palette :orange => '#f6aa11'
27
+ palette :white => '#ffffff'
28
+
29
+ style Comment,
30
+ Comment::Multiline,
31
+ Comment::Single, :fg => :dimgrey, :italic => true
32
+ style Comment::Preproc, :fg => :dimgrey, :bold => true
33
+ style Comment::Special, :fg => :dimgrey, :italic => true, :bold => true
34
+ style Error, :fg => :carmine, :bg => :very_dark
35
+ style Generic::Inserted, :fg => :white, :bg => :dimgreen
36
+ style Generic::Deleted, :fg => :white, :bg => :dimred
37
+ style Generic::Emph, :fg => :black, :italic => true
38
+ style Generic::Error,
39
+ Generic::Traceback, :fg => :dark_red
40
+ style Generic::Heading, :fg => :grey
41
+ style Generic::Output, :fg => :dark_grey
42
+ style Generic::Prompt, :fg => :emperor
43
+ style Generic::Strong, :bold => true
44
+ style Generic::Subheading, :fg => :light_grey
45
+ style Keyword,
46
+ Keyword::Constant,
47
+ Keyword::Declaration,
48
+ Keyword::Pseudo,
49
+ Keyword::Reserved,
50
+ Keyword::Type, :fg => :soft_cyan, :bold => true
51
+ style Keyword::Namespace,
52
+ Operator::Word,
53
+ Operator, :fg => :bright_pink, :bold => true
54
+ style Literal::Number::Float,
55
+ Literal::Number::Hex,
56
+ Literal::Number::Integer::Long,
57
+ Literal::Number::Integer,
58
+ Literal::Number::Oct,
59
+ Literal::Number,
60
+ Literal::String::Escape, :fg => :light_violet
61
+ style Literal::String::Backtick,
62
+ Literal::String::Char,
63
+ Literal::String::Doc,
64
+ Literal::String::Double,
65
+ Literal::String::Heredoc,
66
+ Literal::String::Interpol,
67
+ Literal::String::Other,
68
+ Literal::String::Regex,
69
+ Literal::String::Single,
70
+ Literal::String::Symbol,
71
+ Literal::String, :fg => :soft_yellow
72
+ style Name::Attribute, :fg => :bright_green
73
+ style Name::Class,
74
+ Name::Decorator,
75
+ Name::Exception,
76
+ Name::Function, :fg => :bright_green, :bold => true
77
+ style Name::Constant, :fg => :soft_cyan
78
+ style Name::Builtin::Pseudo,
79
+ Name::Builtin,
80
+ Name::Entity,
81
+ Name::Namespace,
82
+ Name::Variable::Class,
83
+ Name::Variable::Global,
84
+ Name::Variable::Instance,
85
+ Name::Variable,
86
+ Text::Whitespace, :fg => :whitish
87
+ style Name::Label, :fg => :whitish, :bold => true
88
+ style Name::Tag, :fg => :bright_pink
89
+ style Text, :fg => :whitish, :bg => :dark
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*- #
2
+ module Rouge
3
+ module Themes
4
+ class MonokaiSublime < CSSTheme
5
+ name 'monokai.sublime'
6
+
7
+ palette :black => '#000000'
8
+ palette :bright_green => '#a6e22e'
9
+ palette :bright_pink => '#f92672'
10
+ palette :carmine => '#960050'
11
+ palette :dark => '#49483e'
12
+ palette :dark_grey => '#888888'
13
+ palette :dark_red => '#aa0000'
14
+ palette :dimgrey => '#75715e'
15
+ palette :emperor => '#555555'
16
+ palette :grey => '#999999'
17
+ palette :light_grey => '#aaaaaa'
18
+ palette :light_violet => '#ae81ff'
19
+ palette :soft_cyan => '#66d9ef'
20
+ palette :soft_yellow => '#e6db74'
21
+ palette :very_dark => '#1e0010'
22
+ palette :whitish => '#f8f8f2'
23
+ palette :orange => '#f6aa11'
24
+ palette :white => '#ffffff'
25
+
26
+ style Generic::Heading, :fg => :grey
27
+ style Literal::String::Regex, :fg => :orange
28
+ style Generic::Output, :fg => :dark_grey
29
+ style Generic::Prompt, :fg => :emperor
30
+ style Generic::Strong, :bold => false
31
+ style Generic::Subheading, :fg => :light_grey
32
+ style Name::Builtin, :fg => :orange
33
+ style Comment::Multiline,
34
+ Comment::Preproc,
35
+ Comment::Single,
36
+ Comment::Special,
37
+ Comment, :fg => :dimgrey
38
+ style Error,
39
+ Generic::Error,
40
+ Generic::Traceback, :fg => :carmine
41
+ style Generic::Deleted,
42
+ Generic::Inserted,
43
+ Generic::Emph, :fg => :dark
44
+ style Keyword::Constant,
45
+ Keyword::Declaration,
46
+ Keyword::Reserved,
47
+ Name::Constant,
48
+ Keyword::Type, :fg => :soft_cyan
49
+ style Literal::Number::Float,
50
+ Literal::Number::Hex,
51
+ Literal::Number::Integer::Long,
52
+ Literal::Number::Integer,
53
+ Literal::Number::Oct,
54
+ Literal::Number,
55
+ Literal::String::Char,
56
+ Literal::String::Escape,
57
+ Literal::String::Symbol, :fg => :light_violet
58
+ style Literal::String::Doc,
59
+ Literal::String::Double,
60
+ Literal::String::Backtick,
61
+ Literal::String::Heredoc,
62
+ Literal::String::Interpol,
63
+ Literal::String::Other,
64
+ Literal::String::Single,
65
+ Literal::String, :fg => :soft_yellow
66
+ style Name::Attribute,
67
+ Name::Class,
68
+ Name::Decorator,
69
+ Name::Exception,
70
+ Name::Function, :fg => :bright_green
71
+ style Name::Variable::Class,
72
+ Name::Namespace,
73
+ Name::Label,
74
+ Name::Entity,
75
+ Name::Builtin::Pseudo,
76
+ Name::Variable::Global,
77
+ Name::Variable::Instance,
78
+ Name::Variable,
79
+ Text::Whitespace,
80
+ Text,
81
+ Name, :fg => :white
82
+ style Operator::Word,
83
+ Name::Tag,
84
+ Keyword,
85
+ Keyword::Namespace,
86
+ Keyword::Pseudo,
87
+ Operator, :fg => :bright_pink
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ class ThankfulEyes < CSSTheme
6
+ name 'thankful_eyes'
7
+
8
+ # pallette, from GTKSourceView's ThankfulEyes
9
+ palette :cool_as_ice => '#6c8b9f'
10
+ palette :slate_blue => '#4e5d62'
11
+ palette :eggshell_cloud => '#dee5e7'
12
+ palette :krasna => '#122b3b'
13
+ palette :aluminum1 => '#fefeec'
14
+ palette :scarletred2 => '#cc0000'
15
+ palette :butter3 => '#c4a000'
16
+ palette :go_get_it => '#b2fd6d'
17
+ palette :chilly => '#a8e1fe'
18
+ palette :unicorn => '#faf6e4'
19
+ palette :sandy => '#f6dd62'
20
+ palette :pink_merengue => '#f696db'
21
+ palette :dune => '#fff0a6'
22
+ palette :backlit => '#4df4ff'
23
+ palette :schrill => '#ffb000'
24
+
25
+ style Text, :fg => :unicorn, :bg => :krasna
26
+ style Generic::Lineno, :fg => :eggshell_cloud, :bg => :slate_blue
27
+
28
+ style Comment, :fg => :cool_as_ice, :italic => true
29
+ style Comment::Preproc, :fg => :go_get_it, :bold => true, :italic => true
30
+ style Error,
31
+ Generic::Error, :fg => :aluminum1, :bg => :scarletred2
32
+ style Keyword, :fg => :sandy, :bold => true
33
+ style Operator,
34
+ Punctuation, :fg => :backlit
35
+ style Generic::Deleted, :fg => :scarletred2
36
+ style Generic::Inserted, :fg => :go_get_it
37
+ style Generic::Emph, :italic => true
38
+ style Generic::Strong, :bold => true
39
+ style Generic::Traceback, :fg => :eggshell_cloud, :bg => :slate_blue
40
+ style Keyword::Constant, :fg => :pink_merengue, :bold => true
41
+ style Keyword::Namespace,
42
+ Keyword::Pseudo,
43
+ Keyword::Reserved,
44
+ Generic::Heading,
45
+ Generic::Subheading, :fg => :schrill, :bold => true
46
+ style Keyword::Type,
47
+ Name::Constant,
48
+ Name::Class,
49
+ Name::Decorator,
50
+ Name::Namespace,
51
+ Name::Builtin::Pseudo,
52
+ Name::Exception, :fg => :go_get_it, :bold => true
53
+ style Name::Label,
54
+ Name::Tag, :fg => :schrill, :bold => true
55
+ style Literal::Number,
56
+ Literal::Date,
57
+ Literal::String::Symbol, :fg => :pink_merengue, :bold => true
58
+ style Literal::String, :fg => :dune, :bold => true
59
+ style Literal::String::Escape,
60
+ Literal::String::Char,
61
+ Literal::String::Interpol, :fg => :backlit, :bold => true
62
+ style Name::Builtin, :bold => true
63
+ style Name::Entity, :fg => '#999999', :bold => true
64
+ style Text::Whitespace, :fg => '#BBBBBB'
65
+ style Name::Function,
66
+ Name::Property,
67
+ Name::Attribute, :fg => :chilly
68
+ style Name::Variable, :fg => :chilly, :bold => true
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,182 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ class Token
5
+ class << self
6
+ attr_reader :name
7
+ attr_reader :parent
8
+ attr_reader :shortname
9
+
10
+ def cache
11
+ @cache ||= {}
12
+ end
13
+
14
+ def sub_tokens
15
+ @sub_tokens ||= {}
16
+ end
17
+
18
+ def [](qualname)
19
+ return qualname unless qualname.is_a? ::String
20
+
21
+ Token.cache[qualname]
22
+ end
23
+
24
+ def inspect
25
+ "<Token #{qualname}>"
26
+ end
27
+
28
+ def matches?(other)
29
+ other.token_chain.include? self
30
+ end
31
+
32
+ def token_chain
33
+ @token_chain ||= ancestors.take_while { |x| x != Token }.reverse
34
+ end
35
+
36
+ def qualname
37
+ @qualname ||= token_chain.map(&:name).join('.')
38
+ end
39
+
40
+ def register!
41
+ Token.cache[self.qualname] = self
42
+ parent.sub_tokens[self.name] = self
43
+ end
44
+
45
+ def make_token(name, shortname, &b)
46
+ parent = self
47
+ Class.new(parent) do
48
+ @parent = parent
49
+ @name = name
50
+ @shortname = shortname
51
+ register!
52
+ class_eval(&b) if b
53
+ end
54
+ end
55
+
56
+ def token(name, shortname, &b)
57
+ tok = make_token(name, shortname, &b)
58
+ const_set(name, tok)
59
+ end
60
+
61
+ def each_token(&b)
62
+ Token.cache.each do |(_, t)|
63
+ b.call(t)
64
+ end
65
+ end
66
+ end
67
+
68
+ module Tokens
69
+ def self.token(name, shortname, &b)
70
+ tok = Token.make_token(name, shortname, &b)
71
+ const_set(name, tok)
72
+ end
73
+
74
+ # XXX IMPORTANT XXX
75
+ # For compatibility, this list must be kept in sync with
76
+ # pygments.token.STANDARD_TYPES
77
+ # please see https://github.com/jneen/rouge/wiki/List-of-tokens
78
+ token :Text, '' do
79
+ token :Whitespace, 'w'
80
+ end
81
+
82
+ token :Error, 'err'
83
+ token :Other, 'x'
84
+
85
+ token :Keyword, 'k' do
86
+ token :Constant, 'kc'
87
+ token :Declaration, 'kd'
88
+ token :Namespace, 'kn'
89
+ token :Pseudo, 'kp'
90
+ token :Reserved, 'kr'
91
+ token :Type, 'kt'
92
+ token :Variable, 'kv'
93
+ end
94
+
95
+ token :Name, 'n' do
96
+ token :Attribute, 'na'
97
+ token :Builtin, 'nb' do
98
+ token :Pseudo, 'bp'
99
+ end
100
+ token :Class, 'nc'
101
+ token :Constant, 'no'
102
+ token :Decorator, 'nd'
103
+ token :Entity, 'ni'
104
+ token :Exception, 'ne'
105
+ token :Function, 'nf'
106
+ token :Property, 'py'
107
+ token :Label, 'nl'
108
+ token :Namespace, 'nn'
109
+ token :Other, 'nx'
110
+ token :Tag, 'nt'
111
+ token :Variable, 'nv' do
112
+ token :Class, 'vc'
113
+ token :Global, 'vg'
114
+ token :Instance, 'vi'
115
+ end
116
+ end
117
+
118
+ token :Literal, 'l' do
119
+ token :Date, 'ld'
120
+
121
+ token :String, 's' do
122
+ token :Backtick, 'sb'
123
+ token :Char, 'sc'
124
+ token :Doc, 'sd'
125
+ token :Double, 's2'
126
+ token :Escape, 'se'
127
+ token :Heredoc, 'sh'
128
+ token :Interpol, 'si'
129
+ token :Other, 'sx'
130
+ token :Regex, 'sr'
131
+ token :Single, 's1'
132
+ token :Symbol, 'ss'
133
+ end
134
+
135
+ token :Number, 'm' do
136
+ token :Float, 'mf'
137
+ token :Hex, 'mh'
138
+ token :Integer, 'mi' do
139
+ token :Long, 'il'
140
+ end
141
+ token :Oct, 'mo'
142
+ token :Bin, 'mb'
143
+ token :Other, 'mx'
144
+ end
145
+ end
146
+
147
+ token :Operator, 'o' do
148
+ token :Word, 'ow'
149
+ end
150
+
151
+ token :Punctuation, 'p' do
152
+ token :Indicator, 'pi'
153
+ end
154
+
155
+ token :Comment, 'c' do
156
+ token :Doc, 'cd'
157
+ token :Multiline, 'cm'
158
+ token :Preproc, 'cp'
159
+ token :Single, 'c1'
160
+ token :Special, 'cs'
161
+ end
162
+
163
+ token :Generic, 'g' do
164
+ token :Deleted, 'gd'
165
+ token :Emph, 'ge'
166
+ token :Error, 'gr'
167
+ token :Heading, 'gh'
168
+ token :Inserted, 'gi'
169
+ token :Output, 'go'
170
+ token :Prompt, 'gp'
171
+ token :Strong, 'gs'
172
+ token :Subheading, 'gu'
173
+ token :Traceback, 'gt'
174
+ token :Lineno, 'gl'
175
+ end
176
+
177
+ # convenience
178
+ Num = Literal::Number
179
+ Str = Literal::String
180
+ end
181
+ end
182
+ end