rouge 3.17.0

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 (429) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +40 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +18 -0
  5. data/lib/rouge.rb +93 -0
  6. data/lib/rouge/cli.rb +498 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/ada +26 -0
  10. data/lib/rouge/demos/apache +21 -0
  11. data/lib/rouge/demos/apex +9 -0
  12. data/lib/rouge/demos/apiblueprint +33 -0
  13. data/lib/rouge/demos/applescript +2 -0
  14. data/lib/rouge/demos/armasm +12 -0
  15. data/lib/rouge/demos/awk +4 -0
  16. data/lib/rouge/demos/batchfile +3 -0
  17. data/lib/rouge/demos/bbcbasic +6 -0
  18. data/lib/rouge/demos/biml +38 -0
  19. data/lib/rouge/demos/bpf +7 -0
  20. data/lib/rouge/demos/brainfuck +5 -0
  21. data/lib/rouge/demos/bsl +7 -0
  22. data/lib/rouge/demos/c +8 -0
  23. data/lib/rouge/demos/ceylon +7 -0
  24. data/lib/rouge/demos/cfscript +18 -0
  25. data/lib/rouge/demos/clean +6 -0
  26. data/lib/rouge/demos/clojure +5 -0
  27. data/lib/rouge/demos/cmake +7 -0
  28. data/lib/rouge/demos/cmhg +8 -0
  29. data/lib/rouge/demos/coffeescript +5 -0
  30. data/lib/rouge/demos/common_lisp +1 -0
  31. data/lib/rouge/demos/conf +4 -0
  32. data/lib/rouge/demos/console +6 -0
  33. data/lib/rouge/demos/coq +13 -0
  34. data/lib/rouge/demos/cpp +8 -0
  35. data/lib/rouge/demos/crystal +45 -0
  36. data/lib/rouge/demos/csharp +5 -0
  37. data/lib/rouge/demos/css +4 -0
  38. data/lib/rouge/demos/csvs +8 -0
  39. data/lib/rouge/demos/cuda +11 -0
  40. data/lib/rouge/demos/cython +6 -0
  41. data/lib/rouge/demos/d +16 -0
  42. data/lib/rouge/demos/dart +6 -0
  43. data/lib/rouge/demos/diff +7 -0
  44. data/lib/rouge/demos/digdag +19 -0
  45. data/lib/rouge/demos/docker +9 -0
  46. data/lib/rouge/demos/dot +5 -0
  47. data/lib/rouge/demos/ecl +18 -0
  48. data/lib/rouge/demos/eex +1 -0
  49. data/lib/rouge/demos/eiffel +30 -0
  50. data/lib/rouge/demos/elixir +1 -0
  51. data/lib/rouge/demos/elm +4 -0
  52. data/lib/rouge/demos/epp +4 -0
  53. data/lib/rouge/demos/erb +1 -0
  54. data/lib/rouge/demos/erlang +7 -0
  55. data/lib/rouge/demos/escape +3 -0
  56. data/lib/rouge/demos/factor +5 -0
  57. data/lib/rouge/demos/fortran +22 -0
  58. data/lib/rouge/demos/freefem +16 -0
  59. data/lib/rouge/demos/fsharp +12 -0
  60. data/lib/rouge/demos/gdscript +18 -0
  61. data/lib/rouge/demos/ghc-core +26 -0
  62. data/lib/rouge/demos/gherkin +17 -0
  63. data/lib/rouge/demos/glsl +14 -0
  64. data/lib/rouge/demos/go +7 -0
  65. data/lib/rouge/demos/gradle +10 -0
  66. data/lib/rouge/demos/graphql +17 -0
  67. data/lib/rouge/demos/groovy +9 -0
  68. data/lib/rouge/demos/hack +5 -0
  69. data/lib/rouge/demos/haml +5 -0
  70. data/lib/rouge/demos/handlebars +7 -0
  71. data/lib/rouge/demos/haskell +6 -0
  72. data/lib/rouge/demos/haxe +5 -0
  73. data/lib/rouge/demos/hcl +7 -0
  74. data/lib/rouge/demos/hocon +8 -0
  75. data/lib/rouge/demos/hql +5 -0
  76. data/lib/rouge/demos/html +8 -0
  77. data/lib/rouge/demos/http +14 -0
  78. data/lib/rouge/demos/hylang +10 -0
  79. data/lib/rouge/demos/idlang +8 -0
  80. data/lib/rouge/demos/igorpro +9 -0
  81. data/lib/rouge/demos/ini +4 -0
  82. data/lib/rouge/demos/io +11 -0
  83. data/lib/rouge/demos/irb +4 -0
  84. data/lib/rouge/demos/irb_output +2 -0
  85. data/lib/rouge/demos/java +5 -0
  86. data/lib/rouge/demos/javascript +1 -0
  87. data/lib/rouge/demos/jinja +9 -0
  88. data/lib/rouge/demos/jsl +3 -0
  89. data/lib/rouge/demos/json +1 -0
  90. data/lib/rouge/demos/json-doc +1 -0
  91. data/lib/rouge/demos/jsonnet +28 -0
  92. data/lib/rouge/demos/jsp +29 -0
  93. data/lib/rouge/demos/jsx +17 -0
  94. data/lib/rouge/demos/julia +11 -0
  95. data/lib/rouge/demos/kotlin +3 -0
  96. data/lib/rouge/demos/lasso +12 -0
  97. data/lib/rouge/demos/liquid +10 -0
  98. data/lib/rouge/demos/literate_coffeescript +3 -0
  99. data/lib/rouge/demos/literate_haskell +7 -0
  100. data/lib/rouge/demos/llvm +20 -0
  101. data/lib/rouge/demos/lua +12 -0
  102. data/lib/rouge/demos/lustre +6 -0
  103. data/lib/rouge/demos/lutin +18 -0
  104. data/lib/rouge/demos/m68k +16 -0
  105. data/lib/rouge/demos/magik +6 -0
  106. data/lib/rouge/demos/make +6 -0
  107. data/lib/rouge/demos/markdown +4 -0
  108. data/lib/rouge/demos/mason +22 -0
  109. data/lib/rouge/demos/mathematica +8 -0
  110. data/lib/rouge/demos/matlab +6 -0
  111. data/lib/rouge/demos/minizinc +23 -0
  112. data/lib/rouge/demos/moonscript +16 -0
  113. data/lib/rouge/demos/mosel +10 -0
  114. data/lib/rouge/demos/msgtrans +4 -0
  115. data/lib/rouge/demos/mxml +22 -0
  116. data/lib/rouge/demos/nasm +26 -0
  117. data/lib/rouge/demos/nesasm +11 -0
  118. data/lib/rouge/demos/nginx +5 -0
  119. data/lib/rouge/demos/nim +27 -0
  120. data/lib/rouge/demos/nix +19 -0
  121. data/lib/rouge/demos/objective_c +18 -0
  122. data/lib/rouge/demos/objective_cpp +17 -0
  123. data/lib/rouge/demos/ocaml +12 -0
  124. data/lib/rouge/demos/openedge +4 -0
  125. data/lib/rouge/demos/opentype_feature_file +6 -0
  126. data/lib/rouge/demos/pascal +14 -0
  127. data/lib/rouge/demos/perl +5 -0
  128. data/lib/rouge/demos/php +3 -0
  129. data/lib/rouge/demos/plaintext +1 -0
  130. data/lib/rouge/demos/plist +11 -0
  131. data/lib/rouge/demos/pony +17 -0
  132. data/lib/rouge/demos/powershell +13 -0
  133. data/lib/rouge/demos/praat +26 -0
  134. data/lib/rouge/demos/prolog +9 -0
  135. data/lib/rouge/demos/prometheus +9 -0
  136. data/lib/rouge/demos/properties +7 -0
  137. data/lib/rouge/demos/protobuf +5 -0
  138. data/lib/rouge/demos/puppet +6 -0
  139. data/lib/rouge/demos/python +6 -0
  140. data/lib/rouge/demos/q +8 -0
  141. data/lib/rouge/demos/qml +9 -0
  142. data/lib/rouge/demos/r +8 -0
  143. data/lib/rouge/demos/racket +24 -0
  144. data/lib/rouge/demos/reasonml +12 -0
  145. data/lib/rouge/demos/robot_framework +27 -0
  146. data/lib/rouge/demos/ruby +9 -0
  147. data/lib/rouge/demos/rust +12 -0
  148. data/lib/rouge/demos/sas +13 -0
  149. data/lib/rouge/demos/sass +3 -0
  150. data/lib/rouge/demos/scala +3 -0
  151. data/lib/rouge/demos/scheme +4 -0
  152. data/lib/rouge/demos/scss +5 -0
  153. data/lib/rouge/demos/sed +4 -0
  154. data/lib/rouge/demos/shell +2 -0
  155. data/lib/rouge/demos/sieve +10 -0
  156. data/lib/rouge/demos/slice +10 -0
  157. data/lib/rouge/demos/slim +17 -0
  158. data/lib/rouge/demos/smalltalk +6 -0
  159. data/lib/rouge/demos/smarty +12 -0
  160. data/lib/rouge/demos/sml +4 -0
  161. data/lib/rouge/demos/sparql +6 -0
  162. data/lib/rouge/demos/sqf +14 -0
  163. data/lib/rouge/demos/sql +1 -0
  164. data/lib/rouge/demos/supercollider +11 -0
  165. data/lib/rouge/demos/swift +5 -0
  166. data/lib/rouge/demos/tap +5 -0
  167. data/lib/rouge/demos/tcl +1 -0
  168. data/lib/rouge/demos/terraform +16 -0
  169. data/lib/rouge/demos/tex +1 -0
  170. data/lib/rouge/demos/toml +9 -0
  171. data/lib/rouge/demos/tsx +17 -0
  172. data/lib/rouge/demos/ttcn3 +6 -0
  173. data/lib/rouge/demos/tulip +13 -0
  174. data/lib/rouge/demos/turtle +26 -0
  175. data/lib/rouge/demos/twig +9 -0
  176. data/lib/rouge/demos/typescript +1 -0
  177. data/lib/rouge/demos/vala +8 -0
  178. data/lib/rouge/demos/vb +4 -0
  179. data/lib/rouge/demos/vcl +12 -0
  180. data/lib/rouge/demos/verilog +27 -0
  181. data/lib/rouge/demos/vhdl +23 -0
  182. data/lib/rouge/demos/viml +14 -0
  183. data/lib/rouge/demos/vue +11 -0
  184. data/lib/rouge/demos/wollok +11 -0
  185. data/lib/rouge/demos/xml +2 -0
  186. data/lib/rouge/demos/xojo +14 -0
  187. data/lib/rouge/demos/xpath +2 -0
  188. data/lib/rouge/demos/xquery +22 -0
  189. data/lib/rouge/demos/yaml +4 -0
  190. data/lib/rouge/formatter.rb +112 -0
  191. data/lib/rouge/formatters/html.rb +56 -0
  192. data/lib/rouge/formatters/html_inline.rb +31 -0
  193. data/lib/rouge/formatters/html_legacy.rb +45 -0
  194. data/lib/rouge/formatters/html_line_table.rb +53 -0
  195. data/lib/rouge/formatters/html_linewise.rb +23 -0
  196. data/lib/rouge/formatters/html_pygments.rb +18 -0
  197. data/lib/rouge/formatters/html_table.rb +51 -0
  198. data/lib/rouge/formatters/null.rb +20 -0
  199. data/lib/rouge/formatters/terminal256.rb +198 -0
  200. data/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  201. data/lib/rouge/formatters/tex.rb +92 -0
  202. data/lib/rouge/guesser.rb +57 -0
  203. data/lib/rouge/guessers/disambiguation.rb +136 -0
  204. data/lib/rouge/guessers/filename.rb +27 -0
  205. data/lib/rouge/guessers/glob_mapping.rb +45 -0
  206. data/lib/rouge/guessers/mimetype.rb +16 -0
  207. data/lib/rouge/guessers/modeline.rb +46 -0
  208. data/lib/rouge/guessers/source.rb +31 -0
  209. data/lib/rouge/guessers/util.rb +34 -0
  210. data/lib/rouge/lexer.rb +516 -0
  211. data/lib/rouge/lexers/abap.rb +240 -0
  212. data/lib/rouge/lexers/actionscript.rb +196 -0
  213. data/lib/rouge/lexers/ada.rb +162 -0
  214. data/lib/rouge/lexers/apache.rb +73 -0
  215. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  216. data/lib/rouge/lexers/apex.rb +126 -0
  217. data/lib/rouge/lexers/apiblueprint.rb +49 -0
  218. data/lib/rouge/lexers/apple_script.rb +370 -0
  219. data/lib/rouge/lexers/armasm.rb +145 -0
  220. data/lib/rouge/lexers/awk.rb +162 -0
  221. data/lib/rouge/lexers/batchfile.rb +164 -0
  222. data/lib/rouge/lexers/bbcbasic.rb +112 -0
  223. data/lib/rouge/lexers/biml.rb +43 -0
  224. data/lib/rouge/lexers/bpf.rb +118 -0
  225. data/lib/rouge/lexers/brainfuck.rb +53 -0
  226. data/lib/rouge/lexers/bsl.rb +82 -0
  227. data/lib/rouge/lexers/c.rb +190 -0
  228. data/lib/rouge/lexers/ceylon.rb +96 -0
  229. data/lib/rouge/lexers/cfscript.rb +154 -0
  230. data/lib/rouge/lexers/clean.rb +156 -0
  231. data/lib/rouge/lexers/clojure.rb +113 -0
  232. data/lib/rouge/lexers/cmake.rb +207 -0
  233. data/lib/rouge/lexers/cmhg.rb +34 -0
  234. data/lib/rouge/lexers/coffeescript.rb +215 -0
  235. data/lib/rouge/lexers/common_lisp.rb +346 -0
  236. data/lib/rouge/lexers/conf.rb +25 -0
  237. data/lib/rouge/lexers/console.rb +174 -0
  238. data/lib/rouge/lexers/coq.rb +191 -0
  239. data/lib/rouge/lexers/cpp.rb +82 -0
  240. data/lib/rouge/lexers/crystal.rb +430 -0
  241. data/lib/rouge/lexers/csharp.rb +114 -0
  242. data/lib/rouge/lexers/css.rb +274 -0
  243. data/lib/rouge/lexers/csvs.rb +44 -0
  244. data/lib/rouge/lexers/cuda.rb +35 -0
  245. data/lib/rouge/lexers/cython.rb +151 -0
  246. data/lib/rouge/lexers/d.rb +177 -0
  247. data/lib/rouge/lexers/dart.rb +105 -0
  248. data/lib/rouge/lexers/diff.rb +37 -0
  249. data/lib/rouge/lexers/digdag.rb +70 -0
  250. data/lib/rouge/lexers/docker.rb +51 -0
  251. data/lib/rouge/lexers/dot.rb +69 -0
  252. data/lib/rouge/lexers/ecl.rb +175 -0
  253. data/lib/rouge/lexers/eex.rb +52 -0
  254. data/lib/rouge/lexers/eiffel.rb +66 -0
  255. data/lib/rouge/lexers/elixir.rb +149 -0
  256. data/lib/rouge/lexers/elm.rb +90 -0
  257. data/lib/rouge/lexers/epp.rb +51 -0
  258. data/lib/rouge/lexers/erb.rb +53 -0
  259. data/lib/rouge/lexers/erlang.rb +115 -0
  260. data/lib/rouge/lexers/escape.rb +58 -0
  261. data/lib/rouge/lexers/factor.rb +303 -0
  262. data/lib/rouge/lexers/fortran.rb +178 -0
  263. data/lib/rouge/lexers/freefem.rb +240 -0
  264. data/lib/rouge/lexers/fsharp.rb +119 -0
  265. data/lib/rouge/lexers/gdscript.rb +171 -0
  266. data/lib/rouge/lexers/ghc_core.rb +151 -0
  267. data/lib/rouge/lexers/gherkin.rb +140 -0
  268. data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
  269. data/lib/rouge/lexers/glsl.rb +132 -0
  270. data/lib/rouge/lexers/go.rb +175 -0
  271. data/lib/rouge/lexers/gradle.rb +38 -0
  272. data/lib/rouge/lexers/graphql.rb +261 -0
  273. data/lib/rouge/lexers/groovy.rb +111 -0
  274. data/lib/rouge/lexers/hack.rb +49 -0
  275. data/lib/rouge/lexers/haml.rb +226 -0
  276. data/lib/rouge/lexers/handlebars.rb +91 -0
  277. data/lib/rouge/lexers/haskell.rb +199 -0
  278. data/lib/rouge/lexers/haxe.rb +246 -0
  279. data/lib/rouge/lexers/hcl.rb +163 -0
  280. data/lib/rouge/lexers/hocon.rb +86 -0
  281. data/lib/rouge/lexers/hql.rb +139 -0
  282. data/lib/rouge/lexers/html.rb +141 -0
  283. data/lib/rouge/lexers/http.rb +81 -0
  284. data/lib/rouge/lexers/hylang.rb +94 -0
  285. data/lib/rouge/lexers/idlang.rb +312 -0
  286. data/lib/rouge/lexers/igorpro.rb +664 -0
  287. data/lib/rouge/lexers/ini.rb +54 -0
  288. data/lib/rouge/lexers/io.rb +69 -0
  289. data/lib/rouge/lexers/irb.rb +67 -0
  290. data/lib/rouge/lexers/java.rb +91 -0
  291. data/lib/rouge/lexers/javascript.rb +279 -0
  292. data/lib/rouge/lexers/jinja.rb +154 -0
  293. data/lib/rouge/lexers/jsl.rb +55 -0
  294. data/lib/rouge/lexers/json.rb +69 -0
  295. data/lib/rouge/lexers/json_doc.rb +25 -0
  296. data/lib/rouge/lexers/jsonnet.rb +152 -0
  297. data/lib/rouge/lexers/jsp.rb +120 -0
  298. data/lib/rouge/lexers/jsx.rb +104 -0
  299. data/lib/rouge/lexers/julia.rb +290 -0
  300. data/lib/rouge/lexers/kotlin.rb +127 -0
  301. data/lib/rouge/lexers/lasso.rb +215 -0
  302. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  303. data/lib/rouge/lexers/liquid.rb +285 -0
  304. data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  305. data/lib/rouge/lexers/literate_haskell.rb +37 -0
  306. data/lib/rouge/lexers/llvm.rb +97 -0
  307. data/lib/rouge/lexers/lua.rb +164 -0
  308. data/lib/rouge/lexers/lua/builtins.rb +24 -0
  309. data/lib/rouge/lexers/lustre.rb +79 -0
  310. data/lib/rouge/lexers/lutin.rb +33 -0
  311. data/lib/rouge/lexers/m68k.rb +143 -0
  312. data/lib/rouge/lexers/magik.rb +127 -0
  313. data/lib/rouge/lexers/make.rb +135 -0
  314. data/lib/rouge/lexers/markdown.rb +182 -0
  315. data/lib/rouge/lexers/mason.rb +110 -0
  316. data/lib/rouge/lexers/mathematica.rb +96 -0
  317. data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
  318. data/lib/rouge/lexers/matlab.rb +81 -0
  319. data/lib/rouge/lexers/matlab/builtins.yml +3515 -0
  320. data/lib/rouge/lexers/minizinc.rb +87 -0
  321. data/lib/rouge/lexers/moonscript.rb +115 -0
  322. data/lib/rouge/lexers/mosel.rb +232 -0
  323. data/lib/rouge/lexers/msgtrans.rb +26 -0
  324. data/lib/rouge/lexers/mxml.rb +69 -0
  325. data/lib/rouge/lexers/nasm.rb +72 -0
  326. data/lib/rouge/lexers/nesasm.rb +78 -0
  327. data/lib/rouge/lexers/nginx.rb +72 -0
  328. data/lib/rouge/lexers/nim.rb +154 -0
  329. data/lib/rouge/lexers/nix.rb +211 -0
  330. data/lib/rouge/lexers/objective_c.rb +21 -0
  331. data/lib/rouge/lexers/objective_c/common.rb +184 -0
  332. data/lib/rouge/lexers/objective_cpp.rb +31 -0
  333. data/lib/rouge/lexers/ocaml.rb +65 -0
  334. data/lib/rouge/lexers/ocaml/common.rb +53 -0
  335. data/lib/rouge/lexers/openedge.rb +429 -0
  336. data/lib/rouge/lexers/opentype_feature_file.rb +113 -0
  337. data/lib/rouge/lexers/pascal.rb +67 -0
  338. data/lib/rouge/lexers/perl.rb +231 -0
  339. data/lib/rouge/lexers/php.rb +216 -0
  340. data/lib/rouge/lexers/php/builtins.rb +203 -0
  341. data/lib/rouge/lexers/plain_text.rb +27 -0
  342. data/lib/rouge/lexers/plist.rb +47 -0
  343. data/lib/rouge/lexers/pony.rb +94 -0
  344. data/lib/rouge/lexers/powershell.rb +230 -0
  345. data/lib/rouge/lexers/praat.rb +351 -0
  346. data/lib/rouge/lexers/prolog.rb +67 -0
  347. data/lib/rouge/lexers/prometheus.rb +123 -0
  348. data/lib/rouge/lexers/properties.rb +52 -0
  349. data/lib/rouge/lexers/protobuf.rb +71 -0
  350. data/lib/rouge/lexers/puppet.rb +129 -0
  351. data/lib/rouge/lexers/python.rb +248 -0
  352. data/lib/rouge/lexers/q.rb +126 -0
  353. data/lib/rouge/lexers/qml.rb +74 -0
  354. data/lib/rouge/lexers/r.rb +89 -0
  355. data/lib/rouge/lexers/racket.rb +545 -0
  356. data/lib/rouge/lexers/reasonml.rb +65 -0
  357. data/lib/rouge/lexers/robot_framework.rb +249 -0
  358. data/lib/rouge/lexers/ruby.rb +444 -0
  359. data/lib/rouge/lexers/rust.rb +193 -0
  360. data/lib/rouge/lexers/sas.rb +563 -0
  361. data/lib/rouge/lexers/sass.rb +75 -0
  362. data/lib/rouge/lexers/sass/common.rb +181 -0
  363. data/lib/rouge/lexers/scala.rb +169 -0
  364. data/lib/rouge/lexers/scheme.rb +113 -0
  365. data/lib/rouge/lexers/scss.rb +35 -0
  366. data/lib/rouge/lexers/sed.rb +173 -0
  367. data/lib/rouge/lexers/shell.rb +201 -0
  368. data/lib/rouge/lexers/sieve.rb +97 -0
  369. data/lib/rouge/lexers/slice.rb +32 -0
  370. data/lib/rouge/lexers/slim.rb +229 -0
  371. data/lib/rouge/lexers/smalltalk.rb +117 -0
  372. data/lib/rouge/lexers/smarty.rb +81 -0
  373. data/lib/rouge/lexers/sml.rb +345 -0
  374. data/lib/rouge/lexers/sparql.rb +129 -0
  375. data/lib/rouge/lexers/sqf.rb +109 -0
  376. data/lib/rouge/lexers/sqf/commands.rb +15 -0
  377. data/lib/rouge/lexers/sql.rb +161 -0
  378. data/lib/rouge/lexers/supercollider.rb +116 -0
  379. data/lib/rouge/lexers/swift.rb +186 -0
  380. data/lib/rouge/lexers/tap.rb +89 -0
  381. data/lib/rouge/lexers/tcl.rb +193 -0
  382. data/lib/rouge/lexers/terraform.rb +113 -0
  383. data/lib/rouge/lexers/tex.rb +70 -0
  384. data/lib/rouge/lexers/toml.rb +106 -0
  385. data/lib/rouge/lexers/tsx.rb +20 -0
  386. data/lib/rouge/lexers/ttcn3.rb +119 -0
  387. data/lib/rouge/lexers/tulip.rb +108 -0
  388. data/lib/rouge/lexers/turtle.rb +61 -0
  389. data/lib/rouge/lexers/twig.rb +40 -0
  390. data/lib/rouge/lexers/typescript.rb +30 -0
  391. data/lib/rouge/lexers/typescript/common.rb +34 -0
  392. data/lib/rouge/lexers/vala.rb +78 -0
  393. data/lib/rouge/lexers/varnish.rb +168 -0
  394. data/lib/rouge/lexers/vb.rb +165 -0
  395. data/lib/rouge/lexers/verilog.rb +163 -0
  396. data/lib/rouge/lexers/vhdl.rb +98 -0
  397. data/lib/rouge/lexers/viml.rb +102 -0
  398. data/lib/rouge/lexers/viml/keywords.rb +14 -0
  399. data/lib/rouge/lexers/vue.rb +124 -0
  400. data/lib/rouge/lexers/wollok.rb +104 -0
  401. data/lib/rouge/lexers/xml.rb +54 -0
  402. data/lib/rouge/lexers/xojo.rb +61 -0
  403. data/lib/rouge/lexers/xpath.rb +332 -0
  404. data/lib/rouge/lexers/xquery.rb +145 -0
  405. data/lib/rouge/lexers/yaml.rb +376 -0
  406. data/lib/rouge/plugins/redcarpet.rb +37 -0
  407. data/lib/rouge/regex_lexer.rb +443 -0
  408. data/lib/rouge/template_lexer.rb +21 -0
  409. data/lib/rouge/tex_theme_renderer.rb +132 -0
  410. data/lib/rouge/text_analyzer.rb +50 -0
  411. data/lib/rouge/theme.rb +218 -0
  412. data/lib/rouge/themes/base16.rb +131 -0
  413. data/lib/rouge/themes/bw.rb +41 -0
  414. data/lib/rouge/themes/colorful.rb +68 -0
  415. data/lib/rouge/themes/github.rb +72 -0
  416. data/lib/rouge/themes/gruvbox.rb +168 -0
  417. data/lib/rouge/themes/igor_pro.rb +21 -0
  418. data/lib/rouge/themes/magritte.rb +78 -0
  419. data/lib/rouge/themes/molokai.rb +83 -0
  420. data/lib/rouge/themes/monokai.rb +93 -0
  421. data/lib/rouge/themes/monokai_sublime.rb +93 -0
  422. data/lib/rouge/themes/pastie.rb +70 -0
  423. data/lib/rouge/themes/thankful_eyes.rb +75 -0
  424. data/lib/rouge/themes/tulip.rb +70 -0
  425. data/lib/rouge/token.rb +191 -0
  426. data/lib/rouge/util.rb +102 -0
  427. data/lib/rouge/version.rb +8 -0
  428. data/rouge.gemspec +26 -0
  429. metadata +476 -0
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ # A port of the bw style from Pygments.
7
+ # See https://bitbucket.org/birkenfeld/pygments-main/src/default/pygments/styles/bw.py
8
+ class BlackWhiteTheme < CSSTheme
9
+ name 'bw'
10
+
11
+ style Text, :fg => '#000000', :bg => '#ffffff'
12
+
13
+ style Comment, :italic => true
14
+ style Comment::Preproc, :italic => false
15
+
16
+ style Keyword, :bold => true
17
+ style Keyword::Pseudo, :bold => false
18
+ style Keyword::Type, :bold => false
19
+
20
+ style Operator, :bold => true
21
+
22
+ style Name::Class, :bold => true
23
+ style Name::Namespace, :bold => true
24
+ style Name::Exception, :bold => true
25
+ style Name::Entity, :bold => true
26
+ style Name::Tag, :bold => true
27
+
28
+ style Literal::String, :italic => true
29
+ style Literal::String::Interpol, :bold => true
30
+ style Literal::String::Escape, :bold => true
31
+
32
+ style Generic::Heading, :bold => true
33
+ style Generic::Subheading, :bold => true
34
+ style Generic::Emph, :italic => true
35
+ style Generic::Strong, :bold => true
36
+ style Generic::Prompt, :bold => true
37
+
38
+ style Error, :fg => '#FF0000'
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,68 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ # stolen from pygments
7
+ class Colorful < CSSTheme
8
+ name 'colorful'
9
+
10
+ style Text, :fg => "#bbbbbb", :bg => '#000'
11
+
12
+ style Comment, :fg => "#888"
13
+ style Comment::Preproc, :fg => "#579"
14
+ style Comment::Special, :fg => "#cc0000", :bold => true
15
+
16
+ style Keyword, :fg => "#080", :bold => true
17
+ style Keyword::Pseudo, :fg => "#038"
18
+ style Keyword::Type, :fg => "#339"
19
+
20
+ style Operator, :fg => "#333"
21
+ style Operator::Word, :fg => "#000", :bold => true
22
+
23
+ style Name::Builtin, :fg => "#007020"
24
+ style Name::Function, :fg => "#06B", :bold => true
25
+ style Name::Class, :fg => "#B06", :bold => true
26
+ style Name::Namespace, :fg => "#0e84b5", :bold => true
27
+ style Name::Exception, :fg => "#F00", :bold => true
28
+ style Name::Variable, :fg => "#963"
29
+ style Name::Variable::Instance, :fg => "#33B"
30
+ style Name::Variable::Class, :fg => "#369"
31
+ style Name::Variable::Global, :fg => "#d70", :bold => true
32
+ style Name::Constant, :fg => "#036", :bold => true
33
+ style Name::Label, :fg => "#970", :bold => true
34
+ style Name::Entity, :fg => "#800", :bold => true
35
+ style Name::Attribute, :fg => "#00C"
36
+ style Name::Tag, :fg => "#070"
37
+ style Name::Decorator, :fg => "#555", :bold => true
38
+
39
+ style Literal::String, :bg => "#fff0f0"
40
+ style Literal::String::Char, :fg => "#04D"
41
+ style Literal::String::Doc, :fg => "#D42"
42
+ style Literal::String::Interpol, :bg => "#eee"
43
+ style Literal::String::Escape, :fg => "#666", :bold => true
44
+ style Literal::String::Regex, :fg => "#000", :bg => "#fff0ff"
45
+ style Literal::String::Symbol, :fg => "#A60"
46
+ style Literal::String::Other, :fg => "#D20"
47
+
48
+ style Literal::Number, :fg => "#60E", :bold => true
49
+ style Literal::Number::Integer, :fg => "#00D", :bold => true
50
+ style Literal::Number::Float, :fg => "#60E", :bold => true
51
+ style Literal::Number::Hex, :fg => "#058", :bold => true
52
+ style Literal::Number::Oct, :fg => "#40E", :bold => true
53
+
54
+ style Generic::Heading, :fg => "#000080", :bold => true
55
+ style Generic::Subheading, :fg => "#800080", :bold => true
56
+ style Generic::Deleted, :fg => "#A00000"
57
+ style Generic::Inserted, :fg => "#00A000"
58
+ style Generic::Error, :fg => "#FF0000"
59
+ style Generic::Emph, :italic => true
60
+ style Generic::Strong, :bold => true
61
+ style Generic::Prompt, :fg => "#c65d09", :bold => true
62
+ style Generic::Output, :fg => "#888"
63
+ style Generic::Traceback, :fg => "#04D"
64
+
65
+ style Error, :fg => "#F00", :bg => "#FAA"
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ class Github < CSSTheme
7
+ name 'github'
8
+
9
+ style Comment::Multiline, :fg => '#999988', :italic => true
10
+ style Comment::Preproc, :fg => '#999999', :bold => true
11
+ style Comment::Single, :fg => '#999988', :italic => true
12
+ style Comment::Special, :fg => '#999999', :italic => true, :bold => true
13
+ style Comment, :fg => '#999988', :italic => true
14
+ style Error, :fg => '#a61717', :bg => '#e3d2d2'
15
+ style Generic::Deleted, :fg => '#000000', :bg => '#ffdddd'
16
+ style Generic::Emph, :fg => '#000000', :italic => true
17
+ style Generic::Error, :fg => '#aa0000'
18
+ style Generic::Heading, :fg => '#999999'
19
+ style Generic::Inserted, :fg => '#000000', :bg => '#ddffdd'
20
+ style Generic::Output, :fg => '#888888'
21
+ style Generic::Prompt, :fg => '#555555'
22
+ style Generic::Strong, :bold => true
23
+ style Generic::Subheading, :fg => '#aaaaaa'
24
+ style Generic::Traceback, :fg => '#aa0000'
25
+ style Keyword::Constant, :fg => '#000000', :bold => true
26
+ style Keyword::Declaration, :fg => '#000000', :bold => true
27
+ style Keyword::Namespace, :fg => '#000000', :bold => true
28
+ style Keyword::Pseudo, :fg => '#000000', :bold => true
29
+ style Keyword::Reserved, :fg => '#000000', :bold => true
30
+ style Keyword::Type, :fg => '#445588', :bold => true
31
+ style Keyword, :fg => '#000000', :bold => true
32
+ style Literal::Number::Float, :fg => '#009999'
33
+ style Literal::Number::Hex, :fg => '#009999'
34
+ style Literal::Number::Integer::Long, :fg => '#009999'
35
+ style Literal::Number::Integer, :fg => '#009999'
36
+ style Literal::Number::Oct, :fg => '#009999'
37
+ style Literal::Number, :fg => '#009999'
38
+ style Literal::String::Backtick, :fg => '#d14'
39
+ style Literal::String::Char, :fg => '#d14'
40
+ style Literal::String::Doc, :fg => '#d14'
41
+ style Literal::String::Double, :fg => '#d14'
42
+ style Literal::String::Escape, :fg => '#d14'
43
+ style Literal::String::Heredoc, :fg => '#d14'
44
+ style Literal::String::Interpol, :fg => '#d14'
45
+ style Literal::String::Other, :fg => '#d14'
46
+ style Literal::String::Regex, :fg => '#009926'
47
+ style Literal::String::Single, :fg => '#d14'
48
+ style Literal::String::Symbol, :fg => '#990073'
49
+ style Literal::String, :fg => '#d14'
50
+ style Name::Attribute, :fg => '#008080'
51
+ style Name::Builtin::Pseudo, :fg => '#999999'
52
+ style Name::Builtin, :fg => '#0086B3'
53
+ style Name::Class, :fg => '#445588', :bold => true
54
+ style Name::Constant, :fg => '#008080'
55
+ style Name::Decorator, :fg => '#3c5d5d', :bold => true
56
+ style Name::Entity, :fg => '#800080'
57
+ style Name::Exception, :fg => '#990000', :bold => true
58
+ style Name::Function, :fg => '#990000', :bold => true
59
+ style Name::Label, :fg => '#990000', :bold => true
60
+ style Name::Namespace, :fg => '#555555'
61
+ style Name::Tag, :fg => '#000080'
62
+ style Name::Variable::Class, :fg => '#008080'
63
+ style Name::Variable::Global, :fg => '#008080'
64
+ style Name::Variable::Instance, :fg => '#008080'
65
+ style Name::Variable, :fg => '#008080'
66
+ style Operator::Word, :fg => '#000000', :bold => true
67
+ style Operator, :fg => '#000000', :bold => true
68
+ style Text::Whitespace, :fg => '#bbbbbb'
69
+ style Text, :bg => '#f8f8f8'
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,168 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # TODO how are we going to handle soft/hard contrast?
5
+
6
+ module Rouge
7
+ module Themes
8
+ # Based on https://github.com/morhetz/gruvbox, with help from
9
+ # https://github.com/daveyarwood/gruvbox-pygments
10
+ class Gruvbox < CSSTheme
11
+ name 'gruvbox'
12
+
13
+ # global Gruvbox colours {{{
14
+ C_dark0_hard = '#1d2021'
15
+ C_dark0 ='#282828'
16
+ C_dark0_soft = '#32302f'
17
+ C_dark1 = '#3c3836'
18
+ C_dark2 = '#504945'
19
+ C_dark3 = '#665c54'
20
+ C_dark4 = '#7c6f64'
21
+ C_dark4_256 = '#7c6f64'
22
+
23
+ C_gray_245 = '#928374'
24
+ C_gray_244 = '#928374'
25
+
26
+ C_light0_hard = '#f9f5d7'
27
+ C_light0 = '#fbf1c7'
28
+ C_light0_soft = '#f2e5bc'
29
+ C_light1 = '#ebdbb2'
30
+ C_light2 = '#d5c4a1'
31
+ C_light3 = '#bdae93'
32
+ C_light4 = '#a89984'
33
+ C_light4_256 = '#a89984'
34
+
35
+ C_bright_red = '#fb4934'
36
+ C_bright_green = '#b8bb26'
37
+ C_bright_yellow = '#fabd2f'
38
+ C_bright_blue = '#83a598'
39
+ C_bright_purple = '#d3869b'
40
+ C_bright_aqua = '#8ec07c'
41
+ C_bright_orange = '#fe8019'
42
+
43
+ C_neutral_red = '#cc241d'
44
+ C_neutral_green = '#98971a'
45
+ C_neutral_yellow = '#d79921'
46
+ C_neutral_blue = '#458588'
47
+ C_neutral_purple = '#b16286'
48
+ C_neutral_aqua = '#689d6a'
49
+ C_neutral_orange = '#d65d0e'
50
+
51
+ C_faded_red = '#9d0006'
52
+ C_faded_green = '#79740e'
53
+ C_faded_yellow = '#b57614'
54
+ C_faded_blue = '#076678'
55
+ C_faded_purple = '#8f3f71'
56
+ C_faded_aqua = '#427b58'
57
+ C_faded_orange = '#af3a03'
58
+ # }}}
59
+
60
+ extend HasModes
61
+
62
+ def self.light!
63
+ mode :dark # indicate that there is a dark variant
64
+ mode! :light
65
+ end
66
+
67
+ def self.dark!
68
+ mode :light # indicate that there is a light variant
69
+ mode! :dark
70
+ end
71
+
72
+ def self.make_dark!
73
+ palette bg0: C_dark0
74
+ palette bg1: C_dark1
75
+ palette bg2: C_dark2
76
+ palette bg3: C_dark3
77
+ palette bg4: C_dark4
78
+
79
+ palette gray: C_gray_245
80
+
81
+ palette fg0: C_light0
82
+ palette fg1: C_light1
83
+ palette fg2: C_light2
84
+ palette fg3: C_light3
85
+ palette fg4: C_light4
86
+
87
+ palette fg4_256: C_light4_256
88
+
89
+ palette red: C_bright_red
90
+ palette green: C_bright_green
91
+ palette yellow: C_bright_yellow
92
+ palette blue: C_bright_blue
93
+ palette purple: C_bright_purple
94
+ palette aqua: C_bright_aqua
95
+ palette orange: C_bright_orange
96
+
97
+ end
98
+
99
+ def self.make_light!
100
+ palette bg0: C_light0
101
+ palette bg1: C_light1
102
+ palette bg2: C_light2
103
+ palette bg3: C_light3
104
+ palette bg4: C_light4
105
+
106
+ palette gray: C_gray_244
107
+
108
+ palette fg0: C_dark0
109
+ palette fg1: C_dark1
110
+ palette fg2: C_dark2
111
+ palette fg3: C_dark3
112
+ palette fg4: C_dark4
113
+
114
+ palette fg4_256: C_dark4_256
115
+
116
+ palette red: C_faded_red
117
+ palette green: C_faded_green
118
+ palette yellow: C_faded_yellow
119
+ palette blue: C_faded_blue
120
+ palette purple: C_faded_purple
121
+ palette aqua: C_faded_aqua
122
+ palette orange: C_faded_orange
123
+ end
124
+
125
+ dark!
126
+ mode :light
127
+
128
+ style Text, :fg => :fg0, :bg => :bg0
129
+ style Error, :fg => :red, :bg => :bg0, :bold => true
130
+ style Comment, :fg => :gray, :italic => true
131
+
132
+ style Comment::Preproc, :fg => :aqua
133
+
134
+ style Name::Tag, :fg => :red
135
+
136
+ style Operator,
137
+ Punctuation, :fg => :fg0
138
+
139
+ style Generic::Inserted, :fg => :green, :bg => :bg0
140
+ style Generic::Deleted, :fg => :red, :bg => :bg0
141
+ style Generic::Heading, :fg => :green, :bold => true
142
+
143
+ style Keyword, :fg => :red
144
+ style Keyword::Constant, :fg => :purple
145
+ style Keyword::Type, :fg => :yellow
146
+
147
+ style Keyword::Declaration, :fg => :orange
148
+
149
+ style Literal::String,
150
+ Literal::String::Interpol,
151
+ Literal::String::Regex, :fg => :green, :italic => true
152
+
153
+ style Literal::String::Escape, :fg => :orange
154
+
155
+ style Name::Namespace,
156
+ Name::Class, :fg => :aqua
157
+
158
+ style Name::Constant, :fg => :purple
159
+
160
+ style Name::Attribute, :fg => :green
161
+
162
+ style Literal::Number, :fg => :purple
163
+
164
+ style Literal::String::Symbol, :fg => :blue
165
+
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,21 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ class IgorPro < CSSTheme
7
+ name 'igorpro'
8
+
9
+ style Text, :fg => '#444444'
10
+ style Comment::Preproc, :fg => '#CC00A3'
11
+ style Comment::Special, :fg => '#CC00A3'
12
+ style Comment, :fg => '#FF0000'
13
+ style Keyword::Constant, :fg => '#C34E00'
14
+ style Keyword::Declaration, :fg => '#0000FF'
15
+ style Keyword::Reserved, :fg => '#007575'
16
+ style Keyword, :fg => '#0000FF'
17
+ style Literal::String, :fg => '#009C00'
18
+ style Name::Builtin, :fg => '#C34E00'
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,78 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Themes
6
+ class Magritte < CSSTheme
7
+ name 'magritte'
8
+
9
+ palette :dragon => '#006c6c'
10
+ palette :black => '#000000'
11
+ palette :forest => '#007500'
12
+ palette :candy => '#ff0089'
13
+ palette :wine => '#7c0000'
14
+ palette :grape => '#4c48fe'
15
+ palette :dark => '#000707'
16
+ palette :cherry => '#f22700'
17
+ palette :white => '#ffffff'
18
+ palette :royal => '#19003a'
19
+
20
+ palette :purple => '#840084'
21
+ palette :chocolate => '#920241'
22
+ palette :lavender => '#d8d9ff'
23
+ palette :eggshell => '#f3ffff'
24
+ palette :yellow => '#ffff3f'
25
+
26
+ palette :lightgray => '#BBBBBB'
27
+ palette :darkgray => '#999999'
28
+
29
+ style Text, :fg => :dark, :bg => :eggshell
30
+ style Generic::Lineno, :fg => :eggshell, :bg => :dark
31
+
32
+ # style Generic::Prompt, :fg => :chilly, :bold => true
33
+
34
+ style Comment, :fg => :dragon, :italic => true
35
+ style Comment::Preproc, :fg => :chocolate, :bold => true
36
+ style Error, :fg => :eggshell, :bg => :cherry
37
+ style Generic::Error, :fg => :cherry, :italic => true, :bold => true
38
+ style Keyword, :fg => :royal, :bold => true
39
+ style Operator, :fg => :grape, :bold => true
40
+ style Punctuation, :fg => :grape
41
+ style Generic::Deleted, :fg => :cherry
42
+ style Generic::Inserted, :fg => :forest
43
+ style Generic::Emph, :italic => true
44
+ style Generic::Strong, :bold => true
45
+ style Generic::Traceback, :fg => :black, :bg => :lavender
46
+ style Keyword::Constant, :fg => :forest, :bold => true
47
+ style Keyword::Namespace,
48
+ Keyword::Pseudo,
49
+ Keyword::Reserved,
50
+ Generic::Heading,
51
+ Generic::Subheading, :fg => :forest, :bold => true
52
+ style Keyword::Type,
53
+ Name::Constant,
54
+ Name::Class,
55
+ Name::Decorator,
56
+ Name::Namespace,
57
+ Name::Builtin::Pseudo,
58
+ Name::Exception, :fg => :chocolate, :bold => true
59
+ style Name::Label,
60
+ Name::Tag, :fg => :purple, :bold => true
61
+ style Literal::Number,
62
+ Literal::Date, :fg => :forest, :bold => true
63
+ style Literal::String::Symbol, :fg => :forest
64
+ style Literal::String, :fg => :wine, :bold => true
65
+ style Literal::String::Escape,
66
+ Literal::String::Char,
67
+ Literal::String::Interpol, :fg => :purple, :bold => true
68
+ style Name::Builtin, :bold => true
69
+ style Name::Entity, :fg => :darkgray, :bold => true
70
+ style Text::Whitespace, :fg => :lightgray
71
+ style Generic::Output, :fg => :royal
72
+ style Name::Function,
73
+ Name::Property,
74
+ Name::Attribute, :fg => :candy
75
+ style Name::Variable, :fg => :candy, :bold => true
76
+ end
77
+ end
78
+ end