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,5 @@
1
+ @for $i from 1 through 3 {
2
+ .item-#{$i} {
3
+ width: 2em * $i;
4
+ }
5
+ }
@@ -0,0 +1,4 @@
1
+ /begin/,/end/ {
2
+ /begin/n # skip over the line that has "begin" on it
3
+ s/old/new/
4
+ }
@@ -0,0 +1,2 @@
1
+ # If not running interactively, don't do anything
2
+ [[ -z "$PS1" ]] && return
@@ -0,0 +1,10 @@
1
+ require "fileinto";
2
+ require "imap4flags";
3
+
4
+ if header :is "X-Spam" "Yes" {
5
+ fileinto "Junk";
6
+ setflag "\\seen";
7
+ stop;
8
+ }
9
+
10
+ /* Other messages get filed into Inbox or to user's scripts */
@@ -0,0 +1,10 @@
1
+ // Printer.ice
2
+ module Demo
3
+ {
4
+ interface Printer
5
+ {
6
+ // A client can invoke this operation on a server.
7
+ // In this example we print the string s
8
+ void printString(string s);
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ doctype html
2
+ html
3
+ body
4
+ h1 Markup examples
5
+ #content
6
+ p
7
+ | Slim can have #{ruby_code} interpolated!
8
+ /[if IE]
9
+ javascript:
10
+ alert('Slim supports embedded javascript!')
11
+
12
+ - unless items.empty?
13
+ table
14
+ - for item in items do
15
+ tr
16
+ td.name = item.name
17
+ td.price = item.price
@@ -0,0 +1,6 @@
1
+ quadMultiply: i1 and: i2
2
+ "This method multiplies the given numbers by each other
3
+ and the result by 4."
4
+ | mul |
5
+ mul := i1 * i2.
6
+ ^mul * 4
@@ -0,0 +1,12 @@
1
+ {foo bar='single quotes' baz="double quotes" test3=$test3}
2
+
3
+ <ul>
4
+ {foreach from=$myvariable item=data}
5
+ <li>{$data.field}</li>
6
+ {foreachelse}
7
+ <li>No Data</li>
8
+ {/foreach}
9
+ </ul>
10
+
11
+ <div class="{if $foo}class1{else}class2{/if}">{$foo.bar.baz}</div>
12
+
@@ -0,0 +1,4 @@
1
+ datatype shape
2
+ = Circle of loc * real (* center and radius *)
3
+ | Square of loc * real (* upper-left corner and side length; axis-aligned *)
4
+ | Triangle of loc * loc * loc (* corners *)
@@ -0,0 +1,6 @@
1
+ SELECT ?item ?itemLabel
2
+ WHERE
3
+ {
4
+ ?item wdt:P31 wd:Q146.
5
+ SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
6
+ }
@@ -0,0 +1,14 @@
1
+ // Creates a dot marker at the given position
2
+ #include "script_component.hpp"
3
+ params ["_pos", "_txt"];
4
+
5
+ if (isNil QGVAR(markerID)) then {
6
+ GVAR(markerID) = 0;
7
+ };
8
+
9
+ _markerstr = createMarker [QGVAR(marker) + str GVAR(markerID), _pos];
10
+ _markerstr setMarkerShape "ICON";
11
+ _markerstr setMarkerType "hd_dot";
12
+ _markerstr setMarkerText _txt;
13
+
14
+ GVAR(markerID) = GVAR(markerID) + 1;
@@ -0,0 +1 @@
1
+ SELECT * FROM `users` WHERE `user`.`id` = 1
@@ -0,0 +1,11 @@
1
+ // modulate a sine frequency and a noise amplitude with another sine
2
+ // whose frequency depends on the horizontal mouse pointer position
3
+ ~myFunction = {
4
+ var x = SinOsc.ar(MouseX.kr(1, 100));
5
+ SinOsc.ar(300 * x + 800, 0, 0.1)
6
+ +
7
+ PinkNoise.ar(0.1 * x + 0.1)
8
+ };
9
+
10
+ ~myFunction.play;
11
+ "that's all, folks!".postln;
@@ -0,0 +1,5 @@
1
+ // Say hello to poeple
2
+ func sayHello(personName: String) -> String {
3
+ let greeting = "Hello, " + personName + "!"
4
+ return greeting
5
+ }
@@ -0,0 +1,5 @@
1
+ ok 1 - Input file opened
2
+ not ok 2 - First line of the input valid
3
+ ok 3 - Read the rest of the file
4
+ not ok 4 - Summarized correctly # TODO Not written yet
5
+ 1..4
@@ -0,0 +1 @@
1
+ proc cross_sum {s} {expr [join [split $s ""] +]}
@@ -0,0 +1,16 @@
1
+ resource "aws_elb" "web" {
2
+ name = "terraform-example-elb"
3
+
4
+ # The same availability zone as our instances
5
+ availability_zones = ["${aws_instance.web.*.availability_zone}"]
6
+
7
+ listener {
8
+ instance_port = 80
9
+ instance_protocol = "http"
10
+ lb_port = 80
11
+ lb_protocol = "http"
12
+ }
13
+
14
+ # The instances are registered automatically
15
+ instances = ["${aws_instance.web.*.id}"]
16
+ }
@@ -0,0 +1 @@
1
+ To write \LaTeX\ you would type \verb:\LaTeX:.
@@ -0,0 +1,9 @@
1
+ # This is a TOML document. Boom.
2
+
3
+ title = "TOML Example"
4
+
5
+ [owner]
6
+ name = "Tom Preston-Werner"
7
+ organization = "GitHub"
8
+ bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
9
+ dob = 1979-05-27T07:32:00Z # First class dates? Why not?
@@ -0,0 +1,17 @@
1
+ class HelloWorld extends React.Component<{date: Date}, void> {
2
+ render() {
3
+ return (
4
+ <p>
5
+ Hello, <input type="text" placeholder="Your name here" />!
6
+ It is {this.props.date.toTimeString()}
7
+ </p>
8
+ );
9
+ }
10
+ }
11
+
12
+ setInterval(function() {
13
+ ReactDOM.render(
14
+ <HelloWorld date={new Date()} />,
15
+ document.getElementById('example')
16
+ );
17
+ }, 500);
@@ -0,0 +1,6 @@
1
+ module DNSTester {
2
+ type integer Identification( 0..65535 ); // 16-bit integer
3
+ type enumerated MessageKind {e_Question, e_Answer};
4
+ type charstring Question;
5
+ type charstring Answer;
6
+ }
@@ -0,0 +1,13 @@
1
+ @module ref
2
+
3
+ ref value = Ref (spawn [ ! => loop value ])
4
+
5
+ loop value = receive [
6
+ .set new-value => loop new-value
7
+ p, id, .get => { send p (id, value); loop value }
8
+ ]
9
+
10
+ @object Ref pid [
11
+ set val = .set val > send pid
12
+ get! = .get > send-wait pid
13
+ ]
@@ -0,0 +1,26 @@
1
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#>
2
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
3
+ @prefix dcterms: <http://purl.org/dc/terms/> .
4
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
5
+ @base <http://base.of.relative.iris> .
6
+
7
+ PREFIX test: <http://example.org>
8
+ PrEfIx insensitive: <http://insensitive.example.org>
9
+
10
+ GRAPH <https://trig.testing.graph> {
11
+ <https://example.org/resource/dataset> a dcat:Dataset ;
12
+
13
+ #-----Mandatory-----#
14
+
15
+ dcterms:title 'Test title'@cs, "Test title"@en ;
16
+ dcterms:description """Multiline
17
+ string"""@cs, '''Another
18
+ multiline string '''@en ;
19
+
20
+ #-----Recommended-----#
21
+ dcat:contactPoint [ a foaf:Person ] ;
22
+ test:list ( <http://ex.org> 1 1.1 +1 -1 1.2E+4 "Test" "\"Quote\"" ) ;
23
+ test:datatype "2016-07-20"^^xsd:date ;
24
+ test:text """next multiline""";
25
+ .
26
+ }
@@ -0,0 +1,9 @@
1
+ {% include 'header.html' %}
2
+
3
+ {% for user in users %}
4
+ * {{ user.name }}
5
+ {% else %}
6
+ No users have been found.
7
+ {% endfor %}
8
+
9
+ {% include 'footer.html' %}
@@ -0,0 +1 @@
1
+ $(document).ready(function() { alert('ready!'); });
@@ -0,0 +1,8 @@
1
+ class Demo.HelloWorld : GLib.Object
2
+ {
3
+ public static int main (String[] args)
4
+ {
5
+ stdout.printf("Hello World\n");
6
+ return 0;
7
+ }
8
+ }
@@ -0,0 +1,4 @@
1
+ Private Sub Form_Load()
2
+ ' Execute a simple message box that says "Hello, World!"
3
+ MsgBox "Hello, World!"
4
+ End Sub
@@ -0,0 +1,12 @@
1
+ vcl 4.0;
2
+
3
+ backend server1 {
4
+ .host = "server1.example.com";
5
+ .probe = {
6
+ .url = "/";
7
+ .timeout = 1s;
8
+ .interval = 5s;
9
+ .window = 5;
10
+ .threshold = 3;
11
+ }
12
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Verilog Lexer
3
+ */
4
+ module Foo(
5
+ input logic Clk_CI,
6
+ input logic Rst_RBI,
7
+ input logic A,
8
+ input logic B,
9
+ output logic C
10
+ );
11
+ logic C_DN, C_DP;
12
+
13
+ assign C = C_DP;
14
+
15
+ always_comb begin : proc_next_state
16
+ C_DN = A + B;
17
+ end
18
+
19
+ // Clocked process
20
+ always_ff @(posedge Clk_CI, negedge Rst_RBI) begin
21
+ if(~Rst_RBI) begin
22
+ C_DP <= 1'b0;
23
+ end else begin
24
+ C_DP <= C_DN;
25
+ end
26
+ end
27
+ endmodule
@@ -0,0 +1,23 @@
1
+ entity toggle_demo is
2
+ port (
3
+ clk_in : in std_logic; -- System Clock
4
+ data_q : out std_logic -- Toggling Port
5
+ );
6
+ end entity toggle_demo;
7
+
8
+ architecture RTL of toggle_demo is
9
+ signal data : std_logic := '0';
10
+ begin
11
+
12
+ data_q <= data;
13
+
14
+ data_proc : process (clk_in)
15
+ begin
16
+
17
+ if (rising_edge(clk_in)) then
18
+ data <= not data;
19
+ end if;
20
+
21
+ end process;
22
+
23
+ end architecture RTL;
@@ -0,0 +1,14 @@
1
+ function! s:Make(dir, make, format, name) abort
2
+ let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
3
+ let cwd = getcwd()
4
+ let [mp, efm, cc] = [&l:mp, &l:efm, get(b:, 'current_compiler', '')]
5
+ try
6
+ execute cd fnameescape(dir)
7
+ let [&l:mp, &l:efm, b:current_compiler] = [a:make, a:format, a:compiler]
8
+ execute (exists(':Make') == 2 ? 'Make' : 'make')
9
+ finally
10
+ let [&l:mp, &l:efm, b:current_compiler] = [mp, efm, cc]
11
+ if empty(cc) | unlet! b:current_compiler | endif
12
+ execute cd fnameescape(cwd)
13
+ endtry
14
+ endfunction
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <div id="app">
3
+ {{ message }}
4
+ </div>
5
+ </template>
6
+
7
+ <script lang=coffee>
8
+ app = new Vue
9
+ el: '#app'
10
+ data: { message: 'Hello Vue!' }
11
+ </script>
@@ -0,0 +1,11 @@
1
+ object pepita {
2
+ var energy = 100
3
+
4
+ method energy() = energy
5
+
6
+ method fly(kilometers) {
7
+ energy -= kilometers + 10
8
+ }
9
+
10
+ method sayHi() = "Coo!"
11
+ }
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <xsl:template match="/"></xsl:template>
@@ -0,0 +1,14 @@
1
+ Dim f As FolderItem
2
+ f = GetOpenFolderItem(FileTypes1.jpeg) // defined in the File Type Set editor
3
+ rem - we should check for nil!
4
+ If not f.Exists Then
5
+ Beep 'Just for fun
6
+ MsgBox("The file " + f.NativePath + "doesn't ""exist.""")
7
+ Else // document exists
8
+ ImageWell1.image=Picture.Open(f)
9
+ End If
10
+ if f isa folderitem then
11
+ msgbox(f.name)
12
+ end if
13
+ Exception err As NilObjectException
14
+ MsgBox("Invalid pathname!")
@@ -0,0 +1,2 @@
1
+ (: Authors named Bob Joe who didn't graduate from Harvard :)
2
+ //author[first-name = "Joe" and last-name = "Bob"][degree/@from != "Harvard"]
@@ -0,0 +1,22 @@
1
+ declare namespace html = "http://www.w3.org/1999/xhtml";
2
+
3
+ declare function local:test-function($catalog as document-node()) {
4
+ <html>
5
+ <head>
6
+ <title>XQuery example for the Rouge highlighter</title>
7
+ <link href="style.css"/>
8
+ </head>
9
+ <body>
10
+ <h1>List</h1>
11
+ <ul>
12
+ {for $product in $catalog/items/product[@sell-by > current-date()] return
13
+ <li>
14
+ <ul>
15
+ <li>{data($product/name)}</li>
16
+ <li>{$product/price * (1 + $product/tax)}$</li>
17
+ </ul>
18
+ </li>}
19
+ </ul>
20
+ </body>
21
+ </html>
22
+ };
@@ -0,0 +1,4 @@
1
+ ---
2
+ one: Mark McGwire
3
+ two: Sammy Sosa
4
+ three: Ken Griffey
@@ -0,0 +1,112 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ # A Formatter takes a token stream and formats it for human viewing.
6
+ class Formatter
7
+ # @private
8
+ REGISTRY = {}
9
+
10
+ # Specify or get the unique tag for this formatter. This is used
11
+ # for specifying a formatter in `rougify`.
12
+ def self.tag(tag=nil)
13
+ return @tag unless tag
14
+ REGISTRY[tag] = self
15
+
16
+ @tag = tag
17
+ end
18
+
19
+ # Find a formatter class given a unique tag.
20
+ def self.find(tag)
21
+ REGISTRY[tag]
22
+ end
23
+
24
+ def self.with_escape
25
+ Thread.current[:'rouge/with-escape'] = true
26
+ yield
27
+ ensure
28
+ Thread.current[:'rouge/with-escape'] = false
29
+ end
30
+
31
+ def self.escape_enabled?
32
+ !!(((defined? @escape_enabled) && @escape_enabled) || Thread.current[:'rouge/with-escape'])
33
+ end
34
+
35
+ def self.enable_escape!
36
+ @escape_enabled = true
37
+ end
38
+
39
+ def self.disable_escape!
40
+ @escape_enabled = false
41
+ Thread.current[:'rouge/with-escape'] = false
42
+ end
43
+
44
+ # Format a token stream. Delegates to {#format}.
45
+ def self.format(tokens, *a, &b)
46
+ new(*a).format(tokens, &b)
47
+ end
48
+
49
+ def initialize(opts={})
50
+ # pass
51
+ end
52
+
53
+ def escape?(tok)
54
+ tok == Token::Tokens::Escape
55
+ end
56
+
57
+ def filter_escapes(tokens)
58
+ tokens.each do |t, v|
59
+ if t == Token::Tokens::Escape
60
+ yield Token::Tokens::Error, v
61
+ else
62
+ yield t, v
63
+ end
64
+ end
65
+ end
66
+
67
+ # Format a token stream.
68
+ def format(tokens, &b)
69
+ tokens = enum_for(:filter_escapes, tokens) unless Formatter.escape_enabled?
70
+
71
+ return stream(tokens, &b) if block_given?
72
+
73
+ out = String.new('')
74
+ stream(tokens) { |piece| out << piece }
75
+
76
+ out
77
+ end
78
+
79
+ # @deprecated Use {#format} instead.
80
+ def render(tokens)
81
+ warn 'Formatter#render is deprecated, use #format instead.'
82
+ format(tokens)
83
+ end
84
+
85
+ # @abstract
86
+ # yield strings that, when concatenated, form the formatted output
87
+ def stream(tokens, &b)
88
+ raise 'abstract'
89
+ end
90
+
91
+ protected
92
+ def token_lines(tokens, &b)
93
+ return enum_for(:token_lines, tokens) unless block_given?
94
+
95
+ out = []
96
+ tokens.each do |tok, val|
97
+ val.scan %r/\n|[^\n]+/ do |s|
98
+ if s == "\n"
99
+ yield out
100
+ out = []
101
+ else
102
+ out << [tok, s]
103
+ end
104
+ end
105
+ end
106
+
107
+ # for inputs not ending in a newline
108
+ yield out if out.any?
109
+ end
110
+
111
+ end
112
+ end