rouge_ecl 0.0.1

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 (319) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +26 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +17 -0
  5. data/lib/rouge.rb +82 -0
  6. data/lib/rouge/cli.rb +429 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/apache +21 -0
  10. data/lib/rouge/demos/apiblueprint +33 -0
  11. data/lib/rouge/demos/applescript +2 -0
  12. data/lib/rouge/demos/awk +4 -0
  13. data/lib/rouge/demos/biml +38 -0
  14. data/lib/rouge/demos/bsl +7 -0
  15. data/lib/rouge/demos/c +8 -0
  16. data/lib/rouge/demos/ceylon +7 -0
  17. data/lib/rouge/demos/cfscript +18 -0
  18. data/lib/rouge/demos/clojure +5 -0
  19. data/lib/rouge/demos/cmake +7 -0
  20. data/lib/rouge/demos/coffeescript +5 -0
  21. data/lib/rouge/demos/common_lisp +1 -0
  22. data/lib/rouge/demos/conf +4 -0
  23. data/lib/rouge/demos/console +6 -0
  24. data/lib/rouge/demos/coq +13 -0
  25. data/lib/rouge/demos/cpp +8 -0
  26. data/lib/rouge/demos/csharp +5 -0
  27. data/lib/rouge/demos/css +4 -0
  28. data/lib/rouge/demos/d +16 -0
  29. data/lib/rouge/demos/dart +6 -0
  30. data/lib/rouge/demos/diff +7 -0
  31. data/lib/rouge/demos/digdag +19 -0
  32. data/lib/rouge/demos/docker +9 -0
  33. data/lib/rouge/demos/dot +5 -0
  34. data/lib/rouge/demos/ecl +1 -0
  35. data/lib/rouge/demos/eiffel +30 -0
  36. data/lib/rouge/demos/elixir +1 -0
  37. data/lib/rouge/demos/elm +4 -0
  38. data/lib/rouge/demos/erb +1 -0
  39. data/lib/rouge/demos/erlang +7 -0
  40. data/lib/rouge/demos/factor +5 -0
  41. data/lib/rouge/demos/fortran +22 -0
  42. data/lib/rouge/demos/fsharp +12 -0
  43. data/lib/rouge/demos/gherkin +17 -0
  44. data/lib/rouge/demos/glsl +14 -0
  45. data/lib/rouge/demos/go +7 -0
  46. data/lib/rouge/demos/gradle +10 -0
  47. data/lib/rouge/demos/graphql +17 -0
  48. data/lib/rouge/demos/groovy +9 -0
  49. data/lib/rouge/demos/hack +5 -0
  50. data/lib/rouge/demos/haml +5 -0
  51. data/lib/rouge/demos/handlebars +7 -0
  52. data/lib/rouge/demos/haskell +6 -0
  53. data/lib/rouge/demos/html +8 -0
  54. data/lib/rouge/demos/http +14 -0
  55. data/lib/rouge/demos/hylang +10 -0
  56. data/lib/rouge/demos/idlang +8 -0
  57. data/lib/rouge/demos/igorpro +9 -0
  58. data/lib/rouge/demos/ini +4 -0
  59. data/lib/rouge/demos/io +11 -0
  60. data/lib/rouge/demos/irb +4 -0
  61. data/lib/rouge/demos/irb_output +2 -0
  62. data/lib/rouge/demos/java +5 -0
  63. data/lib/rouge/demos/javascript +1 -0
  64. data/lib/rouge/demos/jinja +9 -0
  65. data/lib/rouge/demos/json +1 -0
  66. data/lib/rouge/demos/json-doc +1 -0
  67. data/lib/rouge/demos/jsonnet +28 -0
  68. data/lib/rouge/demos/jsx +17 -0
  69. data/lib/rouge/demos/julia +11 -0
  70. data/lib/rouge/demos/kotlin +3 -0
  71. data/lib/rouge/demos/lasso +12 -0
  72. data/lib/rouge/demos/liquid +11 -0
  73. data/lib/rouge/demos/literate_coffeescript +3 -0
  74. data/lib/rouge/demos/literate_haskell +7 -0
  75. data/lib/rouge/demos/llvm +20 -0
  76. data/lib/rouge/demos/lua +12 -0
  77. data/lib/rouge/demos/make +6 -0
  78. data/lib/rouge/demos/markdown +4 -0
  79. data/lib/rouge/demos/matlab +6 -0
  80. data/lib/rouge/demos/moonscript +16 -0
  81. data/lib/rouge/demos/mosel +10 -0
  82. data/lib/rouge/demos/mxml +22 -0
  83. data/lib/rouge/demos/nasm +26 -0
  84. data/lib/rouge/demos/nginx +5 -0
  85. data/lib/rouge/demos/nim +27 -0
  86. data/lib/rouge/demos/nix +19 -0
  87. data/lib/rouge/demos/objective_c +18 -0
  88. data/lib/rouge/demos/ocaml +12 -0
  89. data/lib/rouge/demos/pascal +14 -0
  90. data/lib/rouge/demos/perl +5 -0
  91. data/lib/rouge/demos/php +3 -0
  92. data/lib/rouge/demos/plaintext +1 -0
  93. data/lib/rouge/demos/plist +142 -0
  94. data/lib/rouge/demos/pony +17 -0
  95. data/lib/rouge/demos/powershell +49 -0
  96. data/lib/rouge/demos/praat +26 -0
  97. data/lib/rouge/demos/prolog +9 -0
  98. data/lib/rouge/demos/prometheus +9 -0
  99. data/lib/rouge/demos/properties +7 -0
  100. data/lib/rouge/demos/protobuf +5 -0
  101. data/lib/rouge/demos/puppet +6 -0
  102. data/lib/rouge/demos/python +6 -0
  103. data/lib/rouge/demos/q +2 -0
  104. data/lib/rouge/demos/qml +9 -0
  105. data/lib/rouge/demos/r +8 -0
  106. data/lib/rouge/demos/racket +24 -0
  107. data/lib/rouge/demos/ruby +9 -0
  108. data/lib/rouge/demos/rust +12 -0
  109. data/lib/rouge/demos/sass +3 -0
  110. data/lib/rouge/demos/scala +3 -0
  111. data/lib/rouge/demos/scheme +4 -0
  112. data/lib/rouge/demos/scss +5 -0
  113. data/lib/rouge/demos/sed +4 -0
  114. data/lib/rouge/demos/shell +2 -0
  115. data/lib/rouge/demos/sieve +10 -0
  116. data/lib/rouge/demos/slim +17 -0
  117. data/lib/rouge/demos/smalltalk +6 -0
  118. data/lib/rouge/demos/smarty +12 -0
  119. data/lib/rouge/demos/sml +4 -0
  120. data/lib/rouge/demos/sql +1 -0
  121. data/lib/rouge/demos/swift +5 -0
  122. data/lib/rouge/demos/tap +5 -0
  123. data/lib/rouge/demos/tcl +1 -0
  124. data/lib/rouge/demos/tex +1 -0
  125. data/lib/rouge/demos/toml +9 -0
  126. data/lib/rouge/demos/tsx +17 -0
  127. data/lib/rouge/demos/tulip +13 -0
  128. data/lib/rouge/demos/turtle +26 -0
  129. data/lib/rouge/demos/twig +9 -0
  130. data/lib/rouge/demos/typescript +1 -0
  131. data/lib/rouge/demos/vala +8 -0
  132. data/lib/rouge/demos/vb +4 -0
  133. data/lib/rouge/demos/verilog +27 -0
  134. data/lib/rouge/demos/vhdl +23 -0
  135. data/lib/rouge/demos/viml +14 -0
  136. data/lib/rouge/demos/vue +11 -0
  137. data/lib/rouge/demos/wollok +11 -0
  138. data/lib/rouge/demos/xml +2 -0
  139. data/lib/rouge/demos/yaml +4 -0
  140. data/lib/rouge/formatter.rb +75 -0
  141. data/lib/rouge/formatters/html.rb +37 -0
  142. data/lib/rouge/formatters/html_inline.rb +30 -0
  143. data/lib/rouge/formatters/html_legacy.rb +44 -0
  144. data/lib/rouge/formatters/html_linewise.rb +27 -0
  145. data/lib/rouge/formatters/html_pygments.rb +16 -0
  146. data/lib/rouge/formatters/html_table.rb +61 -0
  147. data/lib/rouge/formatters/null.rb +19 -0
  148. data/lib/rouge/formatters/terminal256.rb +180 -0
  149. data/lib/rouge/guesser.rb +55 -0
  150. data/lib/rouge/guessers/disambiguation.rb +101 -0
  151. data/lib/rouge/guessers/filename.rb +25 -0
  152. data/lib/rouge/guessers/glob_mapping.rb +43 -0
  153. data/lib/rouge/guessers/mimetype.rb +14 -0
  154. data/lib/rouge/guessers/modeline.rb +44 -0
  155. data/lib/rouge/guessers/source.rb +29 -0
  156. data/lib/rouge/guessers/util.rb +32 -0
  157. data/lib/rouge/lexer.rb +461 -0
  158. data/lib/rouge/lexers/abap.rb +238 -0
  159. data/lib/rouge/lexers/actionscript.rb +195 -0
  160. data/lib/rouge/lexers/apache.rb +71 -0
  161. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  162. data/lib/rouge/lexers/apiblueprint.rb +47 -0
  163. data/lib/rouge/lexers/apple_script.rb +367 -0
  164. data/lib/rouge/lexers/awk.rb +161 -0
  165. data/lib/rouge/lexers/biml.rb +41 -0
  166. data/lib/rouge/lexers/bsl.rb +81 -0
  167. data/lib/rouge/lexers/c.rb +212 -0
  168. data/lib/rouge/lexers/ceylon.rb +123 -0
  169. data/lib/rouge/lexers/cfscript.rb +153 -0
  170. data/lib/rouge/lexers/clojure.rb +112 -0
  171. data/lib/rouge/lexers/cmake.rb +206 -0
  172. data/lib/rouge/lexers/coffeescript.rb +174 -0
  173. data/lib/rouge/lexers/common_lisp.rb +345 -0
  174. data/lib/rouge/lexers/conf.rb +24 -0
  175. data/lib/rouge/lexers/console.rb +136 -0
  176. data/lib/rouge/lexers/coq.rb +187 -0
  177. data/lib/rouge/lexers/cpp.rb +78 -0
  178. data/lib/rouge/lexers/csharp.rb +114 -0
  179. data/lib/rouge/lexers/css.rb +273 -0
  180. data/lib/rouge/lexers/d.rb +176 -0
  181. data/lib/rouge/lexers/dart.rb +104 -0
  182. data/lib/rouge/lexers/diff.rb +31 -0
  183. data/lib/rouge/lexers/digdag.rb +68 -0
  184. data/lib/rouge/lexers/docker.rb +50 -0
  185. data/lib/rouge/lexers/dot.rb +68 -0
  186. data/lib/rouge/lexers/ecl.rb +138 -0
  187. data/lib/rouge/lexers/eiffel.rb +65 -0
  188. data/lib/rouge/lexers/elixir.rb +133 -0
  189. data/lib/rouge/lexers/elm.rb +89 -0
  190. data/lib/rouge/lexers/erb.rb +52 -0
  191. data/lib/rouge/lexers/erlang.rb +114 -0
  192. data/lib/rouge/lexers/factor.rb +302 -0
  193. data/lib/rouge/lexers/fortran.rb +176 -0
  194. data/lib/rouge/lexers/fsharp.rb +118 -0
  195. data/lib/rouge/lexers/gherkin.rb +137 -0
  196. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  197. data/lib/rouge/lexers/glsl.rb +135 -0
  198. data/lib/rouge/lexers/go.rb +174 -0
  199. data/lib/rouge/lexers/gradle.rb +37 -0
  200. data/lib/rouge/lexers/graphql.rb +243 -0
  201. data/lib/rouge/lexers/groovy.rb +112 -0
  202. data/lib/rouge/lexers/hack.rb +48 -0
  203. data/lib/rouge/lexers/haml.rb +229 -0
  204. data/lib/rouge/lexers/handlebars.rb +79 -0
  205. data/lib/rouge/lexers/haskell.rb +182 -0
  206. data/lib/rouge/lexers/html.rb +139 -0
  207. data/lib/rouge/lexers/http.rb +80 -0
  208. data/lib/rouge/lexers/hylang.rb +93 -0
  209. data/lib/rouge/lexers/idlang.rb +310 -0
  210. data/lib/rouge/lexers/igorpro.rb +408 -0
  211. data/lib/rouge/lexers/ini.rb +53 -0
  212. data/lib/rouge/lexers/io.rb +68 -0
  213. data/lib/rouge/lexers/irb.rb +66 -0
  214. data/lib/rouge/lexers/java.rb +87 -0
  215. data/lib/rouge/lexers/javascript.rb +281 -0
  216. data/lib/rouge/lexers/jinja.rb +137 -0
  217. data/lib/rouge/lexers/json.rb +29 -0
  218. data/lib/rouge/lexers/json_doc.rb +23 -0
  219. data/lib/rouge/lexers/jsonnet.rb +151 -0
  220. data/lib/rouge/lexers/jsx.rb +102 -0
  221. data/lib/rouge/lexers/julia.rb +172 -0
  222. data/lib/rouge/lexers/kotlin.rb +79 -0
  223. data/lib/rouge/lexers/lasso.rb +214 -0
  224. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  225. data/lib/rouge/lexers/liquid.rb +287 -0
  226. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  227. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  228. data/lib/rouge/lexers/llvm.rb +80 -0
  229. data/lib/rouge/lexers/lua.rb +125 -0
  230. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  231. data/lib/rouge/lexers/make.rb +112 -0
  232. data/lib/rouge/lexers/markdown.rb +154 -0
  233. data/lib/rouge/lexers/matlab.rb +71 -0
  234. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  235. data/lib/rouge/lexers/moonscript.rb +114 -0
  236. data/lib/rouge/lexers/mosel.rb +231 -0
  237. data/lib/rouge/lexers/mxml.rb +68 -0
  238. data/lib/rouge/lexers/nasm.rb +198 -0
  239. data/lib/rouge/lexers/nginx.rb +71 -0
  240. data/lib/rouge/lexers/nim.rb +152 -0
  241. data/lib/rouge/lexers/nix.rb +205 -0
  242. data/lib/rouge/lexers/objective_c.rb +194 -0
  243. data/lib/rouge/lexers/ocaml.rb +100 -0
  244. data/lib/rouge/lexers/pascal.rb +66 -0
  245. data/lib/rouge/lexers/perl.rb +196 -0
  246. data/lib/rouge/lexers/php.rb +193 -0
  247. data/lib/rouge/lexers/php/builtins.rb +194 -0
  248. data/lib/rouge/lexers/plain_text.rb +26 -0
  249. data/lib/rouge/lexers/plist.rb +45 -0
  250. data/lib/rouge/lexers/pony.rb +93 -0
  251. data/lib/rouge/lexers/powershell.rb +678 -0
  252. data/lib/rouge/lexers/praat.rb +350 -0
  253. data/lib/rouge/lexers/prolog.rb +59 -0
  254. data/lib/rouge/lexers/prometheus.rb +121 -0
  255. data/lib/rouge/lexers/properties.rb +51 -0
  256. data/lib/rouge/lexers/protobuf.rb +70 -0
  257. data/lib/rouge/lexers/puppet.rb +128 -0
  258. data/lib/rouge/lexers/python.rb +232 -0
  259. data/lib/rouge/lexers/q.rb +123 -0
  260. data/lib/rouge/lexers/qml.rb +73 -0
  261. data/lib/rouge/lexers/r.rb +89 -0
  262. data/lib/rouge/lexers/racket.rb +543 -0
  263. data/lib/rouge/lexers/ruby.rb +437 -0
  264. data/lib/rouge/lexers/rust.rb +192 -0
  265. data/lib/rouge/lexers/sass.rb +74 -0
  266. data/lib/rouge/lexers/sass/common.rb +180 -0
  267. data/lib/rouge/lexers/scala.rb +142 -0
  268. data/lib/rouge/lexers/scheme.rb +112 -0
  269. data/lib/rouge/lexers/scss.rb +34 -0
  270. data/lib/rouge/lexers/sed.rb +172 -0
  271. data/lib/rouge/lexers/shell.rb +189 -0
  272. data/lib/rouge/lexers/sieve.rb +96 -0
  273. data/lib/rouge/lexers/slim.rb +228 -0
  274. data/lib/rouge/lexers/smalltalk.rb +116 -0
  275. data/lib/rouge/lexers/smarty.rb +80 -0
  276. data/lib/rouge/lexers/sml.rb +344 -0
  277. data/lib/rouge/lexers/sql.rb +140 -0
  278. data/lib/rouge/lexers/swift.rb +181 -0
  279. data/lib/rouge/lexers/tap.rb +87 -0
  280. data/lib/rouge/lexers/tcl.rb +192 -0
  281. data/lib/rouge/lexers/tex.rb +69 -0
  282. data/lib/rouge/lexers/toml.rb +67 -0
  283. data/lib/rouge/lexers/tsx.rb +19 -0
  284. data/lib/rouge/lexers/tulip.rb +106 -0
  285. data/lib/rouge/lexers/turtle.rb +63 -0
  286. data/lib/rouge/lexers/twig.rb +39 -0
  287. data/lib/rouge/lexers/typescript.rb +22 -0
  288. data/lib/rouge/lexers/typescript/common.rb +33 -0
  289. data/lib/rouge/lexers/vala.rb +77 -0
  290. data/lib/rouge/lexers/vb.rb +164 -0
  291. data/lib/rouge/lexers/verilog.rb +164 -0
  292. data/lib/rouge/lexers/vhdl.rb +97 -0
  293. data/lib/rouge/lexers/viml.rb +101 -0
  294. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  295. data/lib/rouge/lexers/vue.rb +122 -0
  296. data/lib/rouge/lexers/wollok.rb +103 -0
  297. data/lib/rouge/lexers/xml.rb +57 -0
  298. data/lib/rouge/lexers/yaml.rb +373 -0
  299. data/lib/rouge/plugins/redcarpet.rb +30 -0
  300. data/lib/rouge/regex_lexer.rb +441 -0
  301. data/lib/rouge/template_lexer.rb +20 -0
  302. data/lib/rouge/text_analyzer.rb +49 -0
  303. data/lib/rouge/theme.rb +213 -0
  304. data/lib/rouge/themes/base16.rb +130 -0
  305. data/lib/rouge/themes/colorful.rb +67 -0
  306. data/lib/rouge/themes/github.rb +71 -0
  307. data/lib/rouge/themes/gruvbox.rb +167 -0
  308. data/lib/rouge/themes/igor_pro.rb +20 -0
  309. data/lib/rouge/themes/molokai.rb +82 -0
  310. data/lib/rouge/themes/monokai.rb +92 -0
  311. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  312. data/lib/rouge/themes/pastie.rb +69 -0
  313. data/lib/rouge/themes/thankful_eyes.rb +74 -0
  314. data/lib/rouge/themes/tulip.rb +69 -0
  315. data/lib/rouge/token.rb +182 -0
  316. data/lib/rouge/util.rb +101 -0
  317. data/lib/rouge/version.rb +7 -0
  318. data/rouge.gemspec +23 -0
  319. metadata +365 -0
@@ -0,0 +1,69 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ # A port of the pastie style from Pygments.
6
+ # See https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/styles/pastie.py
7
+ class Pastie < CSSTheme
8
+ name 'pastie'
9
+
10
+ style Comment, :fg => '#888888'
11
+ style Comment::Preproc, :fg => '#cc0000', :bold => true
12
+ style Comment::Special, :fg => '#cc0000', :bg => '#fff0f0', :bold => true
13
+
14
+ style Error, :fg => '#a61717', :bg => '#e3d2d2'
15
+ style Generic::Error, :fg => '#aa0000'
16
+
17
+ style Generic::Heading, :fg => '#333333'
18
+ style Generic::Subheading, :fg => '#666666'
19
+
20
+ style Generic::Deleted, :fg => '#000000', :bg => '#ffdddd'
21
+ style Generic::Inserted, :fg => '#000000', :bg => '#ddffdd'
22
+
23
+ style Generic::Emph, :italic => true
24
+ style Generic::Strong, :bold => true
25
+
26
+ style Generic::Lineno, :fg => '#888888'
27
+ style Generic::Output, :fg => '#888888'
28
+ style Generic::Prompt, :fg => '#555555'
29
+ style Generic::Traceback, :fg => '#aa0000'
30
+
31
+ style Keyword, :fg => '#008800', :bold => true
32
+ style Keyword::Pseudo, :fg => '#008800'
33
+ style Keyword::Type, :fg => '#888888', :bold => true
34
+
35
+ style Num, :fg => '#0000dd', :bold => true
36
+
37
+ style Str, :fg => '#dd2200', :bg => '#fff0f0'
38
+ style Str::Escape, :fg => '#0044dd', :bg => '#fff0f0'
39
+ style Str::Interpol, :fg => '#3333bb', :bg => '#fff0f0'
40
+ style Str::Other, :fg => '#22bb22', :bg => '#f0fff0'
41
+ #style Str::Regex, :fg => '#008800', :bg => '#fff0ff'
42
+ # The background color on regex really doesn't look good, so let's drop it
43
+ style Str::Regex, :fg => '#008800'
44
+ style Str::Symbol, :fg => '#aa6600', :bg => '#fff0f0'
45
+
46
+ style Name::Attribute, :fg => '#336699'
47
+ style Name::Builtin, :fg => '#003388'
48
+ style Name::Class, :fg => '#bb0066', :bold => true
49
+ style Name::Constant, :fg => '#003366', :bold => true
50
+ style Name::Decorator, :fg => '#555555'
51
+ style Name::Exception, :fg => '#bb0066', :bold => true
52
+ style Name::Function, :fg => '#0066bb', :bold => true
53
+ #style Name::Label, :fg => '#336699', :italic => true
54
+ # Name::Label is used for built-in CSS properties in Rouge, so let's drop italics
55
+ style Name::Label, :fg => '#336699'
56
+ style Name::Namespace, :fg => '#bb0066', :bold => true
57
+ style Name::Property, :fg => '#336699', :bold => true
58
+ style Name::Tag, :fg => '#bb0066', :bold => true
59
+ style Name::Variable, :fg => '#336699'
60
+ style Name::Variable::Global, :fg => '#dd7700'
61
+ style Name::Variable::Instance, :fg => '#3333bb'
62
+
63
+ style Operator::Word, :fg => '#008800'
64
+
65
+ style Text, {}
66
+ style Text::Whitespace, :fg => '#bbbbbb'
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,74 @@
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 Generic::Prompt, :fg => :chilly, :bold => true
29
+
30
+ style Comment, :fg => :cool_as_ice, :italic => true
31
+ style Comment::Preproc, :fg => :go_get_it, :bold => true, :italic => true
32
+ style Error, :fg => :aluminum1, :bg => :scarletred2
33
+ style Generic::Error, :fg => :scarletred2, :italic => true, :bold => true
34
+ style Keyword, :fg => :sandy, :bold => true
35
+ style Operator, :fg => :backlit, :bold => true
36
+ style Punctuation, :fg => :backlit
37
+ style Generic::Deleted, :fg => :scarletred2
38
+ style Generic::Inserted, :fg => :go_get_it
39
+ style Generic::Emph, :italic => true
40
+ style Generic::Strong, :bold => true
41
+ style Generic::Traceback, :fg => :eggshell_cloud, :bg => :slate_blue
42
+ style Keyword::Constant, :fg => :pink_merengue, :bold => true
43
+ style Keyword::Namespace,
44
+ Keyword::Pseudo,
45
+ Keyword::Reserved,
46
+ Generic::Heading,
47
+ Generic::Subheading, :fg => :schrill, :bold => true
48
+ style Keyword::Type,
49
+ Name::Constant,
50
+ Name::Class,
51
+ Name::Decorator,
52
+ Name::Namespace,
53
+ Name::Builtin::Pseudo,
54
+ Name::Exception, :fg => :go_get_it, :bold => true
55
+ style Name::Label,
56
+ Name::Tag, :fg => :schrill, :bold => true
57
+ style Literal::Number,
58
+ Literal::Date,
59
+ Literal::String::Symbol, :fg => :pink_merengue, :bold => true
60
+ style Literal::String, :fg => :dune, :bold => true
61
+ style Literal::String::Escape,
62
+ Literal::String::Char,
63
+ Literal::String::Interpol, :fg => :backlit, :bold => true
64
+ style Name::Builtin, :bold => true
65
+ style Name::Entity, :fg => '#999999', :bold => true
66
+ style Text::Whitespace,
67
+ Generic::Output, :fg => '#BBBBBB'
68
+ style Name::Function,
69
+ Name::Property,
70
+ Name::Attribute, :fg => :chilly
71
+ style Name::Variable, :fg => :chilly, :bold => true
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,69 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ class Tulip < CSSTheme
6
+ name 'tulip'
7
+
8
+ palette :purple => '#766DAF'
9
+ palette :lpurple => '#9f93e6'
10
+ palette :orange => '#FAAF4C'
11
+ palette :green => '#3FB34F'
12
+ palette :lgreen => '#41ff5b'
13
+ palette :yellow => '#FFF02A'
14
+ palette :black => '#000000'
15
+ palette :gray => '#6D6E70'
16
+ palette :red => '#CC0000'
17
+ palette :dark_purple => '#231529'
18
+ palette :lunicorn => '#faf8ed'
19
+ palette :white => '#FFFFFF'
20
+ palette :earth => '#181a27'
21
+ palette :dune => '#fff0a6'
22
+
23
+ style Text, :fg => :white, :bg => :dark_purple
24
+
25
+ style Comment, :fg => :gray, :italic => true
26
+ style Comment::Preproc, :fg => :lgreen, :bold => true, :italic => true
27
+ style Error,
28
+ Generic::Error, :fg => :white, :bg => :red
29
+ style Keyword, :fg => :yellow, :bold => true
30
+ style Operator,
31
+ Punctuation, :fg => :lgreen
32
+ style Generic::Deleted, :fg => :red
33
+ style Generic::Inserted, :fg => :green
34
+ style Generic::Emph, :italic => true
35
+ style Generic::Strong, :bold => true
36
+ style Generic::Traceback,
37
+ Generic::Lineno, :fg => :white, :bg => :purple
38
+ style Keyword::Constant, :fg => :lpurple, :bold => true
39
+ style Keyword::Namespace,
40
+ Keyword::Pseudo,
41
+ Keyword::Reserved,
42
+ Generic::Heading,
43
+ Generic::Subheading, :fg => :white, :bold => true
44
+ style Keyword::Type,
45
+ Name::Constant,
46
+ Name::Class,
47
+ Name::Decorator,
48
+ Name::Namespace,
49
+ Name::Builtin::Pseudo,
50
+ Name::Exception, :fg => :orange, :bold => true
51
+ style Name::Label,
52
+ Name::Tag, :fg => :lpurple, :bold => true
53
+ style Literal::Number,
54
+ Literal::Date,
55
+ Literal::String::Symbol, :fg => :lpurple, :bold => true
56
+ style Literal::String, :fg => :dune, :bold => true
57
+ style Literal::String::Escape,
58
+ Literal::String::Char,
59
+ Literal::String::Interpol, :fg => :orange, :bold => true
60
+ style Name::Builtin, :bold => true
61
+ style Name::Entity, :fg => '#999999', :bold => true
62
+ style Text::Whitespace, :fg => '#BBBBBB'
63
+ style Name::Function,
64
+ Name::Property,
65
+ Name::Attribute, :fg => :lgreen
66
+ style Name::Variable, :fg => :lgreen, :bold => true
67
+ end
68
+ end
69
+ 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
data/lib/rouge/util.rb ADDED
@@ -0,0 +1,101 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ class InheritableHash < Hash
5
+ def initialize(parent=nil)
6
+ @parent = parent
7
+ end
8
+
9
+ def [](k)
10
+ value = super
11
+ return value if own_keys.include?(k)
12
+
13
+ value || parent[k]
14
+ end
15
+
16
+ def parent
17
+ @parent ||= {}
18
+ end
19
+
20
+ def include?(k)
21
+ super or parent.include?(k)
22
+ end
23
+
24
+ def each(&b)
25
+ keys.each do |k|
26
+ b.call(k, self[k])
27
+ end
28
+ end
29
+
30
+ alias own_keys keys
31
+ def keys
32
+ keys = own_keys.concat(parent.keys)
33
+ keys.uniq!
34
+ keys
35
+ end
36
+ end
37
+
38
+ class InheritableList
39
+ include Enumerable
40
+
41
+ def initialize(parent=nil)
42
+ @parent = parent
43
+ end
44
+
45
+ def parent
46
+ @parent ||= []
47
+ end
48
+
49
+ def each(&b)
50
+ return enum_for(:each) unless block_given?
51
+
52
+ parent.each(&b)
53
+ own_entries.each(&b)
54
+ end
55
+
56
+ def own_entries
57
+ @own_entries ||= []
58
+ end
59
+
60
+ def push(o)
61
+ own_entries << o
62
+ end
63
+ alias << push
64
+ end
65
+
66
+ # shared methods for some indentation-sensitive lexers
67
+ module Indentation
68
+ def reset!
69
+ super
70
+ @block_state = @block_indentation = nil
71
+ end
72
+
73
+ # push a state for the next indented block
74
+ def starts_block(block_state)
75
+ @block_state = block_state
76
+ @block_indentation = @last_indentation || ''
77
+ puts " starts_block #{block_state.inspect}" if @debug
78
+ puts " block_indentation: #{@block_indentation.inspect}" if @debug
79
+ end
80
+
81
+ # handle a single indented line
82
+ def indentation(indent_str)
83
+ puts " indentation #{indent_str.inspect}" if @debug
84
+ puts " block_indentation: #{@block_indentation.inspect}" if @debug
85
+ @last_indentation = indent_str
86
+
87
+ # if it's an indent and we know where to go next,
88
+ # push that state. otherwise, push content and
89
+ # clear the block state.
90
+ if (@block_state &&
91
+ indent_str.start_with?(@block_indentation) &&
92
+ indent_str != @block_indentation
93
+ )
94
+ push @block_state
95
+ else
96
+ @block_state = @block_indentation = nil
97
+ push :content
98
+ end
99
+ end
100
+ end
101
+ end