nano-clean-pkg 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 (540) hide show
  1. checksums.yaml +7 -0
  2. data/nano-clean-pkg.gemspec +11 -0
  3. data/rouge-5.0.0/Gemfile +48 -0
  4. data/rouge-5.0.0/LICENSE +187 -0
  5. data/rouge-5.0.0/bin/rougify +17 -0
  6. data/rouge-5.0.0/lib/rouge/cli.rb +527 -0
  7. data/rouge-5.0.0/lib/rouge/demos/abap +32 -0
  8. data/rouge-5.0.0/lib/rouge/demos/actionscript +4 -0
  9. data/rouge-5.0.0/lib/rouge/demos/ada +26 -0
  10. data/rouge-5.0.0/lib/rouge/demos/apache +21 -0
  11. data/rouge-5.0.0/lib/rouge/demos/apex +9 -0
  12. data/rouge-5.0.0/lib/rouge/demos/apiblueprint +33 -0
  13. data/rouge-5.0.0/lib/rouge/demos/applescript +2 -0
  14. data/rouge-5.0.0/lib/rouge/demos/armasm +12 -0
  15. data/rouge-5.0.0/lib/rouge/demos/augeas +16 -0
  16. data/rouge-5.0.0/lib/rouge/demos/awk +4 -0
  17. data/rouge-5.0.0/lib/rouge/demos/batchfile +3 -0
  18. data/rouge-5.0.0/lib/rouge/demos/bbcbasic +6 -0
  19. data/rouge-5.0.0/lib/rouge/demos/bibtex +12 -0
  20. data/rouge-5.0.0/lib/rouge/demos/bicep +10 -0
  21. data/rouge-5.0.0/lib/rouge/demos/biml +38 -0
  22. data/rouge-5.0.0/lib/rouge/demos/bpf +7 -0
  23. data/rouge-5.0.0/lib/rouge/demos/brainfuck +5 -0
  24. data/rouge-5.0.0/lib/rouge/demos/brightscript +6 -0
  25. data/rouge-5.0.0/lib/rouge/demos/bsl +7 -0
  26. data/rouge-5.0.0/lib/rouge/demos/c +8 -0
  27. data/rouge-5.0.0/lib/rouge/demos/ceylon +7 -0
  28. data/rouge-5.0.0/lib/rouge/demos/cfscript +18 -0
  29. data/rouge-5.0.0/lib/rouge/demos/cisco_ios +19 -0
  30. data/rouge-5.0.0/lib/rouge/demos/clean +6 -0
  31. data/rouge-5.0.0/lib/rouge/demos/clojure +5 -0
  32. data/rouge-5.0.0/lib/rouge/demos/cmake +7 -0
  33. data/rouge-5.0.0/lib/rouge/demos/cmhg +8 -0
  34. data/rouge-5.0.0/lib/rouge/demos/cobol +103 -0
  35. data/rouge-5.0.0/lib/rouge/demos/codeowners +6 -0
  36. data/rouge-5.0.0/lib/rouge/demos/coffeescript +5 -0
  37. data/rouge-5.0.0/lib/rouge/demos/common_lisp +1 -0
  38. data/rouge-5.0.0/lib/rouge/demos/conf +4 -0
  39. data/rouge-5.0.0/lib/rouge/demos/console +6 -0
  40. data/rouge-5.0.0/lib/rouge/demos/cpp +8 -0
  41. data/rouge-5.0.0/lib/rouge/demos/crystal +45 -0
  42. data/rouge-5.0.0/lib/rouge/demos/csharp +5 -0
  43. data/rouge-5.0.0/lib/rouge/demos/css +4 -0
  44. data/rouge-5.0.0/lib/rouge/demos/csvs +8 -0
  45. data/rouge-5.0.0/lib/rouge/demos/cuda +11 -0
  46. data/rouge-5.0.0/lib/rouge/demos/cypher +5 -0
  47. data/rouge-5.0.0/lib/rouge/demos/cython +6 -0
  48. data/rouge-5.0.0/lib/rouge/demos/d +16 -0
  49. data/rouge-5.0.0/lib/rouge/demos/dafny +16 -0
  50. data/rouge-5.0.0/lib/rouge/demos/dart +6 -0
  51. data/rouge-5.0.0/lib/rouge/demos/datastudio +20 -0
  52. data/rouge-5.0.0/lib/rouge/demos/diff +7 -0
  53. data/rouge-5.0.0/lib/rouge/demos/digdag +19 -0
  54. data/rouge-5.0.0/lib/rouge/demos/docker +9 -0
  55. data/rouge-5.0.0/lib/rouge/demos/dot +5 -0
  56. data/rouge-5.0.0/lib/rouge/demos/dylan +8 -0
  57. data/rouge-5.0.0/lib/rouge/demos/ecl +17 -0
  58. data/rouge-5.0.0/lib/rouge/demos/eex +1 -0
  59. data/rouge-5.0.0/lib/rouge/demos/eiffel +30 -0
  60. data/rouge-5.0.0/lib/rouge/demos/elixir +1 -0
  61. data/rouge-5.0.0/lib/rouge/demos/elm +4 -0
  62. data/rouge-5.0.0/lib/rouge/demos/email +11 -0
  63. data/rouge-5.0.0/lib/rouge/demos/epp +4 -0
  64. data/rouge-5.0.0/lib/rouge/demos/erb +1 -0
  65. data/rouge-5.0.0/lib/rouge/demos/erlang +7 -0
  66. data/rouge-5.0.0/lib/rouge/demos/escape +3 -0
  67. data/rouge-5.0.0/lib/rouge/demos/factor +5 -0
  68. data/rouge-5.0.0/lib/rouge/demos/fluent +13 -0
  69. data/rouge-5.0.0/lib/rouge/demos/fortran +22 -0
  70. data/rouge-5.0.0/lib/rouge/demos/freefem +16 -0
  71. data/rouge-5.0.0/lib/rouge/demos/fsharp +12 -0
  72. data/rouge-5.0.0/lib/rouge/demos/gdscript +18 -0
  73. data/rouge-5.0.0/lib/rouge/demos/ghc-cmm +23 -0
  74. data/rouge-5.0.0/lib/rouge/demos/ghc-core +26 -0
  75. data/rouge-5.0.0/lib/rouge/demos/gherkin +17 -0
  76. data/rouge-5.0.0/lib/rouge/demos/gjs +23 -0
  77. data/rouge-5.0.0/lib/rouge/demos/glsl +14 -0
  78. data/rouge-5.0.0/lib/rouge/demos/go +7 -0
  79. data/rouge-5.0.0/lib/rouge/demos/gradle +10 -0
  80. data/rouge-5.0.0/lib/rouge/demos/graphql +17 -0
  81. data/rouge-5.0.0/lib/rouge/demos/groovy +9 -0
  82. data/rouge-5.0.0/lib/rouge/demos/gts +36 -0
  83. data/rouge-5.0.0/lib/rouge/demos/hack +5 -0
  84. data/rouge-5.0.0/lib/rouge/demos/haml +5 -0
  85. data/rouge-5.0.0/lib/rouge/demos/handlebars +7 -0
  86. data/rouge-5.0.0/lib/rouge/demos/haskell +6 -0
  87. data/rouge-5.0.0/lib/rouge/demos/haxe +4 -0
  88. data/rouge-5.0.0/lib/rouge/demos/hcl +7 -0
  89. data/rouge-5.0.0/lib/rouge/demos/hlsl +20 -0
  90. data/rouge-5.0.0/lib/rouge/demos/hocon +8 -0
  91. data/rouge-5.0.0/lib/rouge/demos/hql +5 -0
  92. data/rouge-5.0.0/lib/rouge/demos/html +8 -0
  93. data/rouge-5.0.0/lib/rouge/demos/http +14 -0
  94. data/rouge-5.0.0/lib/rouge/demos/hylang +10 -0
  95. data/rouge-5.0.0/lib/rouge/demos/idlang +8 -0
  96. data/rouge-5.0.0/lib/rouge/demos/idris +13 -0
  97. data/rouge-5.0.0/lib/rouge/demos/iecst +21 -0
  98. data/rouge-5.0.0/lib/rouge/demos/igorpro +9 -0
  99. data/rouge-5.0.0/lib/rouge/demos/ini +4 -0
  100. data/rouge-5.0.0/lib/rouge/demos/io +11 -0
  101. data/rouge-5.0.0/lib/rouge/demos/irb +4 -0
  102. data/rouge-5.0.0/lib/rouge/demos/irb_output +2 -0
  103. data/rouge-5.0.0/lib/rouge/demos/isabelle +16 -0
  104. data/rouge-5.0.0/lib/rouge/demos/isbl +4 -0
  105. data/rouge-5.0.0/lib/rouge/demos/j +12 -0
  106. data/rouge-5.0.0/lib/rouge/demos/janet +3 -0
  107. data/rouge-5.0.0/lib/rouge/demos/java +5 -0
  108. data/rouge-5.0.0/lib/rouge/demos/javascript +1 -0
  109. data/rouge-5.0.0/lib/rouge/demos/jinja +9 -0
  110. data/rouge-5.0.0/lib/rouge/demos/jsl +3 -0
  111. data/rouge-5.0.0/lib/rouge/demos/json +1 -0
  112. data/rouge-5.0.0/lib/rouge/demos/json-doc +1 -0
  113. data/rouge-5.0.0/lib/rouge/demos/json5 +12 -0
  114. data/rouge-5.0.0/lib/rouge/demos/jsonnet +28 -0
  115. data/rouge-5.0.0/lib/rouge/demos/jsp +29 -0
  116. data/rouge-5.0.0/lib/rouge/demos/jsx +17 -0
  117. data/rouge-5.0.0/lib/rouge/demos/julia +11 -0
  118. data/rouge-5.0.0/lib/rouge/demos/kick_assembler +14 -0
  119. data/rouge-5.0.0/lib/rouge/demos/kotlin +3 -0
  120. data/rouge-5.0.0/lib/rouge/demos/lasso +12 -0
  121. data/rouge-5.0.0/lib/rouge/demos/lean +8 -0
  122. data/rouge-5.0.0/lib/rouge/demos/liquid +10 -0
  123. data/rouge-5.0.0/lib/rouge/demos/literate_coffeescript +3 -0
  124. data/rouge-5.0.0/lib/rouge/demos/literate_haskell +7 -0
  125. data/rouge-5.0.0/lib/rouge/demos/livescript +15 -0
  126. data/rouge-5.0.0/lib/rouge/demos/llvm +20 -0
  127. data/rouge-5.0.0/lib/rouge/demos/lua +12 -0
  128. data/rouge-5.0.0/lib/rouge/demos/lustre +6 -0
  129. data/rouge-5.0.0/lib/rouge/demos/lutin +18 -0
  130. data/rouge-5.0.0/lib/rouge/demos/m68k +16 -0
  131. data/rouge-5.0.0/lib/rouge/demos/magik +6 -0
  132. data/rouge-5.0.0/lib/rouge/demos/make +6 -0
  133. data/rouge-5.0.0/lib/rouge/demos/markdown +4 -0
  134. data/rouge-5.0.0/lib/rouge/demos/mason +22 -0
  135. data/rouge-5.0.0/lib/rouge/demos/mathematica +8 -0
  136. data/rouge-5.0.0/lib/rouge/demos/matlab +6 -0
  137. data/rouge-5.0.0/lib/rouge/demos/meson +10 -0
  138. data/rouge-5.0.0/lib/rouge/demos/minizinc +23 -0
  139. data/rouge-5.0.0/lib/rouge/demos/mojo +10 -0
  140. data/rouge-5.0.0/lib/rouge/demos/moonscript +16 -0
  141. data/rouge-5.0.0/lib/rouge/demos/mosel +10 -0
  142. data/rouge-5.0.0/lib/rouge/demos/msgtrans +4 -0
  143. data/rouge-5.0.0/lib/rouge/demos/mxml +22 -0
  144. data/rouge-5.0.0/lib/rouge/demos/nasm +26 -0
  145. data/rouge-5.0.0/lib/rouge/demos/nesasm +11 -0
  146. data/rouge-5.0.0/lib/rouge/demos/nginx +5 -0
  147. data/rouge-5.0.0/lib/rouge/demos/nial +35 -0
  148. data/rouge-5.0.0/lib/rouge/demos/nim +27 -0
  149. data/rouge-5.0.0/lib/rouge/demos/nix +19 -0
  150. data/rouge-5.0.0/lib/rouge/demos/objective_c +18 -0
  151. data/rouge-5.0.0/lib/rouge/demos/objective_cpp +17 -0
  152. data/rouge-5.0.0/lib/rouge/demos/ocaml +12 -0
  153. data/rouge-5.0.0/lib/rouge/demos/ocl +4 -0
  154. data/rouge-5.0.0/lib/rouge/demos/openedge +4 -0
  155. data/rouge-5.0.0/lib/rouge/demos/opentype_feature_file +5 -0
  156. data/rouge-5.0.0/lib/rouge/demos/p4 +99 -0
  157. data/rouge-5.0.0/lib/rouge/demos/pascal +14 -0
  158. data/rouge-5.0.0/lib/rouge/demos/pdf +29 -0
  159. data/rouge-5.0.0/lib/rouge/demos/perl +5 -0
  160. data/rouge-5.0.0/lib/rouge/demos/php +3 -0
  161. data/rouge-5.0.0/lib/rouge/demos/plaintext +1 -0
  162. data/rouge-5.0.0/lib/rouge/demos/plist +11 -0
  163. data/rouge-5.0.0/lib/rouge/demos/plsql +2 -0
  164. data/rouge-5.0.0/lib/rouge/demos/pony +17 -0
  165. data/rouge-5.0.0/lib/rouge/demos/postscript +9 -0
  166. data/rouge-5.0.0/lib/rouge/demos/powershell +13 -0
  167. data/rouge-5.0.0/lib/rouge/demos/praat +26 -0
  168. data/rouge-5.0.0/lib/rouge/demos/prolog +9 -0
  169. data/rouge-5.0.0/lib/rouge/demos/prometheus +9 -0
  170. data/rouge-5.0.0/lib/rouge/demos/properties +7 -0
  171. data/rouge-5.0.0/lib/rouge/demos/protobuf +5 -0
  172. data/rouge-5.0.0/lib/rouge/demos/puppet +6 -0
  173. data/rouge-5.0.0/lib/rouge/demos/python +6 -0
  174. data/rouge-5.0.0/lib/rouge/demos/q +8 -0
  175. data/rouge-5.0.0/lib/rouge/demos/qml +9 -0
  176. data/rouge-5.0.0/lib/rouge/demos/r +8 -0
  177. data/rouge-5.0.0/lib/rouge/demos/racket +24 -0
  178. data/rouge-5.0.0/lib/rouge/demos/reasonml +12 -0
  179. data/rouge-5.0.0/lib/rouge/demos/rego +8 -0
  180. data/rouge-5.0.0/lib/rouge/demos/rescript +26 -0
  181. data/rouge-5.0.0/lib/rouge/demos/rml +33 -0
  182. data/rouge-5.0.0/lib/rouge/demos/robot_framework +27 -0
  183. data/rouge-5.0.0/lib/rouge/demos/rocq +16 -0
  184. data/rouge-5.0.0/lib/rouge/demos/ruby +9 -0
  185. data/rouge-5.0.0/lib/rouge/demos/rust +12 -0
  186. data/rouge-5.0.0/lib/rouge/demos/sas +13 -0
  187. data/rouge-5.0.0/lib/rouge/demos/sass +3 -0
  188. data/rouge-5.0.0/lib/rouge/demos/scala +3 -0
  189. data/rouge-5.0.0/lib/rouge/demos/scheme +4 -0
  190. data/rouge-5.0.0/lib/rouge/demos/scss +5 -0
  191. data/rouge-5.0.0/lib/rouge/demos/sed +4 -0
  192. data/rouge-5.0.0/lib/rouge/demos/shell +2 -0
  193. data/rouge-5.0.0/lib/rouge/demos/sieve +10 -0
  194. data/rouge-5.0.0/lib/rouge/demos/slice +10 -0
  195. data/rouge-5.0.0/lib/rouge/demos/slim +17 -0
  196. data/rouge-5.0.0/lib/rouge/demos/smalltalk +6 -0
  197. data/rouge-5.0.0/lib/rouge/demos/smarty +11 -0
  198. data/rouge-5.0.0/lib/rouge/demos/sml +4 -0
  199. data/rouge-5.0.0/lib/rouge/demos/sparql +6 -0
  200. data/rouge-5.0.0/lib/rouge/demos/sqf +14 -0
  201. data/rouge-5.0.0/lib/rouge/demos/sql +1 -0
  202. data/rouge-5.0.0/lib/rouge/demos/ssh +4 -0
  203. data/rouge-5.0.0/lib/rouge/demos/stan +13 -0
  204. data/rouge-5.0.0/lib/rouge/demos/stata +14 -0
  205. data/rouge-5.0.0/lib/rouge/demos/supercollider +11 -0
  206. data/rouge-5.0.0/lib/rouge/demos/svelte +29 -0
  207. data/rouge-5.0.0/lib/rouge/demos/swift +5 -0
  208. data/rouge-5.0.0/lib/rouge/demos/systemd +4 -0
  209. data/rouge-5.0.0/lib/rouge/demos/syzlang +15 -0
  210. data/rouge-5.0.0/lib/rouge/demos/syzprog +8 -0
  211. data/rouge-5.0.0/lib/rouge/demos/tap +5 -0
  212. data/rouge-5.0.0/lib/rouge/demos/tcl +1 -0
  213. data/rouge-5.0.0/lib/rouge/demos/terraform +16 -0
  214. data/rouge-5.0.0/lib/rouge/demos/tex +1 -0
  215. data/rouge-5.0.0/lib/rouge/demos/thrift +15 -0
  216. data/rouge-5.0.0/lib/rouge/demos/toml +9 -0
  217. data/rouge-5.0.0/lib/rouge/demos/tsx +17 -0
  218. data/rouge-5.0.0/lib/rouge/demos/ttcn3 +6 -0
  219. data/rouge-5.0.0/lib/rouge/demos/tulip +13 -0
  220. data/rouge-5.0.0/lib/rouge/demos/turtle +26 -0
  221. data/rouge-5.0.0/lib/rouge/demos/twig +9 -0
  222. data/rouge-5.0.0/lib/rouge/demos/typescript +1 -0
  223. data/rouge-5.0.0/lib/rouge/demos/vala +8 -0
  224. data/rouge-5.0.0/lib/rouge/demos/vb +4 -0
  225. data/rouge-5.0.0/lib/rouge/demos/vcl +12 -0
  226. data/rouge-5.0.0/lib/rouge/demos/velocity +9 -0
  227. data/rouge-5.0.0/lib/rouge/demos/verilog +27 -0
  228. data/rouge-5.0.0/lib/rouge/demos/veryl +24 -0
  229. data/rouge-5.0.0/lib/rouge/demos/vhdl +23 -0
  230. data/rouge-5.0.0/lib/rouge/demos/viml +14 -0
  231. data/rouge-5.0.0/lib/rouge/demos/vue +11 -0
  232. data/rouge-5.0.0/lib/rouge/demos/wollok +11 -0
  233. data/rouge-5.0.0/lib/rouge/demos/xml +2 -0
  234. data/rouge-5.0.0/lib/rouge/demos/xojo +14 -0
  235. data/rouge-5.0.0/lib/rouge/demos/xpath +2 -0
  236. data/rouge-5.0.0/lib/rouge/demos/xquery +22 -0
  237. data/rouge-5.0.0/lib/rouge/demos/yaml +4 -0
  238. data/rouge-5.0.0/lib/rouge/demos/yang +17 -0
  239. data/rouge-5.0.0/lib/rouge/demos/zig +6 -0
  240. data/rouge-5.0.0/lib/rouge/eager.rb +3 -0
  241. data/rouge-5.0.0/lib/rouge/formatter.rb +112 -0
  242. data/rouge-5.0.0/lib/rouge/formatters/html.rb +64 -0
  243. data/rouge-5.0.0/lib/rouge/formatters/html_debug.rb +16 -0
  244. data/rouge-5.0.0/lib/rouge/formatters/html_inline.rb +30 -0
  245. data/rouge-5.0.0/lib/rouge/formatters/html_legacy.rb +56 -0
  246. data/rouge-5.0.0/lib/rouge/formatters/html_legacy_table.rb +57 -0
  247. data/rouge-5.0.0/lib/rouge/formatters/html_line_highlighter.rb +31 -0
  248. data/rouge-5.0.0/lib/rouge/formatters/html_line_table.rb +56 -0
  249. data/rouge-5.0.0/lib/rouge/formatters/html_linewise.rb +31 -0
  250. data/rouge-5.0.0/lib/rouge/formatters/html_pygments.rb +23 -0
  251. data/rouge-5.0.0/lib/rouge/formatters/html_table.rb +77 -0
  252. data/rouge-5.0.0/lib/rouge/formatters/null.rb +20 -0
  253. data/rouge-5.0.0/lib/rouge/formatters/terminal256.rb +198 -0
  254. data/rouge-5.0.0/lib/rouge/formatters/terminal_truecolor.rb +37 -0
  255. data/rouge-5.0.0/lib/rouge/formatters/tex.rb +92 -0
  256. data/rouge-5.0.0/lib/rouge/guesser.rb +57 -0
  257. data/rouge-5.0.0/lib/rouge/guessers/disambiguation.rb +172 -0
  258. data/rouge-5.0.0/lib/rouge/guessers/filename.rb +27 -0
  259. data/rouge-5.0.0/lib/rouge/guessers/glob_mapping.rb +45 -0
  260. data/rouge-5.0.0/lib/rouge/guessers/mimetype.rb +16 -0
  261. data/rouge-5.0.0/lib/rouge/guessers/modeline.rb +46 -0
  262. data/rouge-5.0.0/lib/rouge/guessers/source.rb +31 -0
  263. data/rouge-5.0.0/lib/rouge/guessers/util.rb +34 -0
  264. data/rouge-5.0.0/lib/rouge/lexer.rb +556 -0
  265. data/rouge-5.0.0/lib/rouge/lexers/abap/builtins.rb +187 -0
  266. data/rouge-5.0.0/lib/rouge/lexers/abap.rb +132 -0
  267. data/rouge-5.0.0/lib/rouge/lexers/actionscript.rb +196 -0
  268. data/rouge-5.0.0/lib/rouge/lexers/ada.rb +162 -0
  269. data/rouge-5.0.0/lib/rouge/lexers/apache/keywords.rb +16 -0
  270. data/rouge-5.0.0/lib/rouge/lexers/apache.rb +84 -0
  271. data/rouge-5.0.0/lib/rouge/lexers/apex.rb +128 -0
  272. data/rouge-5.0.0/lib/rouge/lexers/apiblueprint.rb +49 -0
  273. data/rouge-5.0.0/lib/rouge/lexers/apple_script.rb +370 -0
  274. data/rouge-5.0.0/lib/rouge/lexers/armasm.rb +145 -0
  275. data/rouge-5.0.0/lib/rouge/lexers/augeas.rb +93 -0
  276. data/rouge-5.0.0/lib/rouge/lexers/awk.rb +162 -0
  277. data/rouge-5.0.0/lib/rouge/lexers/batchfile.rb +165 -0
  278. data/rouge-5.0.0/lib/rouge/lexers/bbcbasic.rb +112 -0
  279. data/rouge-5.0.0/lib/rouge/lexers/bibtex.rb +115 -0
  280. data/rouge-5.0.0/lib/rouge/lexers/bicep.rb +111 -0
  281. data/rouge-5.0.0/lib/rouge/lexers/biml.rb +70 -0
  282. data/rouge-5.0.0/lib/rouge/lexers/bpf.rb +118 -0
  283. data/rouge-5.0.0/lib/rouge/lexers/brainfuck.rb +54 -0
  284. data/rouge-5.0.0/lib/rouge/lexers/brightscript.rb +146 -0
  285. data/rouge-5.0.0/lib/rouge/lexers/bsl.rb +82 -0
  286. data/rouge-5.0.0/lib/rouge/lexers/c.rb +204 -0
  287. data/rouge-5.0.0/lib/rouge/lexers/ceylon.rb +96 -0
  288. data/rouge-5.0.0/lib/rouge/lexers/cfscript.rb +154 -0
  289. data/rouge-5.0.0/lib/rouge/lexers/cisco_ios.rb +83 -0
  290. data/rouge-5.0.0/lib/rouge/lexers/clean.rb +156 -0
  291. data/rouge-5.0.0/lib/rouge/lexers/clojure.rb +113 -0
  292. data/rouge-5.0.0/lib/rouge/lexers/cmake.rb +218 -0
  293. data/rouge-5.0.0/lib/rouge/lexers/cmhg.rb +34 -0
  294. data/rouge-5.0.0/lib/rouge/lexers/cobol.rb +137 -0
  295. data/rouge-5.0.0/lib/rouge/lexers/codeowners.rb +30 -0
  296. data/rouge-5.0.0/lib/rouge/lexers/coffeescript.rb +215 -0
  297. data/rouge-5.0.0/lib/rouge/lexers/common_lisp.rb +346 -0
  298. data/rouge-5.0.0/lib/rouge/lexers/conf.rb +25 -0
  299. data/rouge-5.0.0/lib/rouge/lexers/console.rb +196 -0
  300. data/rouge-5.0.0/lib/rouge/lexers/cpp.rb +102 -0
  301. data/rouge-5.0.0/lib/rouge/lexers/crystal.rb +435 -0
  302. data/rouge-5.0.0/lib/rouge/lexers/csharp.rb +118 -0
  303. data/rouge-5.0.0/lib/rouge/lexers/css.rb +337 -0
  304. data/rouge-5.0.0/lib/rouge/lexers/csvs.rb +44 -0
  305. data/rouge-5.0.0/lib/rouge/lexers/cuda.rb +35 -0
  306. data/rouge-5.0.0/lib/rouge/lexers/cypher.rb +116 -0
  307. data/rouge-5.0.0/lib/rouge/lexers/cython.rb +127 -0
  308. data/rouge-5.0.0/lib/rouge/lexers/d.rb +177 -0
  309. data/rouge-5.0.0/lib/rouge/lexers/dafny.rb +128 -0
  310. data/rouge-5.0.0/lib/rouge/lexers/dart.rb +108 -0
  311. data/rouge-5.0.0/lib/rouge/lexers/datastudio.rb +138 -0
  312. data/rouge-5.0.0/lib/rouge/lexers/diff.rb +47 -0
  313. data/rouge-5.0.0/lib/rouge/lexers/digdag.rb +69 -0
  314. data/rouge-5.0.0/lib/rouge/lexers/docker.rb +55 -0
  315. data/rouge-5.0.0/lib/rouge/lexers/dot.rb +70 -0
  316. data/rouge-5.0.0/lib/rouge/lexers/dylan.rb +109 -0
  317. data/rouge-5.0.0/lib/rouge/lexers/ecl.rb +175 -0
  318. data/rouge-5.0.0/lib/rouge/lexers/eex.rb +52 -0
  319. data/rouge-5.0.0/lib/rouge/lexers/eiffel.rb +65 -0
  320. data/rouge-5.0.0/lib/rouge/lexers/elixir.rb +158 -0
  321. data/rouge-5.0.0/lib/rouge/lexers/elm.rb +90 -0
  322. data/rouge-5.0.0/lib/rouge/lexers/email.rb +39 -0
  323. data/rouge-5.0.0/lib/rouge/lexers/epp.rb +51 -0
  324. data/rouge-5.0.0/lib/rouge/lexers/erb.rb +53 -0
  325. data/rouge-5.0.0/lib/rouge/lexers/erlang.rb +115 -0
  326. data/rouge-5.0.0/lib/rouge/lexers/escape.rb +58 -0
  327. data/rouge-5.0.0/lib/rouge/lexers/factor.rb +303 -0
  328. data/rouge-5.0.0/lib/rouge/lexers/fluent.rb +74 -0
  329. data/rouge-5.0.0/lib/rouge/lexers/fortran.rb +178 -0
  330. data/rouge-5.0.0/lib/rouge/lexers/freefem.rb +240 -0
  331. data/rouge-5.0.0/lib/rouge/lexers/fsharp.rb +120 -0
  332. data/rouge-5.0.0/lib/rouge/lexers/gdscript.rb +171 -0
  333. data/rouge-5.0.0/lib/rouge/lexers/ghc_cmm.rb +340 -0
  334. data/rouge-5.0.0/lib/rouge/lexers/ghc_core.rb +152 -0
  335. data/rouge-5.0.0/lib/rouge/lexers/gherkin/keywords.rb +23 -0
  336. data/rouge-5.0.0/lib/rouge/lexers/gherkin.rb +142 -0
  337. data/rouge-5.0.0/lib/rouge/lexers/gjs.rb +39 -0
  338. data/rouge-5.0.0/lib/rouge/lexers/glsl/builtins.rb +17 -0
  339. data/rouge-5.0.0/lib/rouge/lexers/glsl.rb +69 -0
  340. data/rouge-5.0.0/lib/rouge/lexers/go.rb +177 -0
  341. data/rouge-5.0.0/lib/rouge/lexers/gradle.rb +38 -0
  342. data/rouge-5.0.0/lib/rouge/lexers/graphql.rb +261 -0
  343. data/rouge-5.0.0/lib/rouge/lexers/groovy.rb +119 -0
  344. data/rouge-5.0.0/lib/rouge/lexers/gts.rb +39 -0
  345. data/rouge-5.0.0/lib/rouge/lexers/hack.rb +47 -0
  346. data/rouge-5.0.0/lib/rouge/lexers/haml.rb +226 -0
  347. data/rouge-5.0.0/lib/rouge/lexers/handlebars.rb +91 -0
  348. data/rouge-5.0.0/lib/rouge/lexers/haskell.rb +207 -0
  349. data/rouge-5.0.0/lib/rouge/lexers/haxe.rb +265 -0
  350. data/rouge-5.0.0/lib/rouge/lexers/hcl.rb +166 -0
  351. data/rouge-5.0.0/lib/rouge/lexers/hlsl.rb +166 -0
  352. data/rouge-5.0.0/lib/rouge/lexers/hocon.rb +86 -0
  353. data/rouge-5.0.0/lib/rouge/lexers/hql.rb +135 -0
  354. data/rouge-5.0.0/lib/rouge/lexers/html.rb +141 -0
  355. data/rouge-5.0.0/lib/rouge/lexers/http.rb +87 -0
  356. data/rouge-5.0.0/lib/rouge/lexers/hylang.rb +93 -0
  357. data/rouge-5.0.0/lib/rouge/lexers/idlang.rb +312 -0
  358. data/rouge-5.0.0/lib/rouge/lexers/idris.rb +210 -0
  359. data/rouge-5.0.0/lib/rouge/lexers/iecst.rb +92 -0
  360. data/rouge-5.0.0/lib/rouge/lexers/igorpro/builtins.rb +1530 -0
  361. data/rouge-5.0.0/lib/rouge/lexers/igorpro.rb +193 -0
  362. data/rouge-5.0.0/lib/rouge/lexers/ini.rb +56 -0
  363. data/rouge-5.0.0/lib/rouge/lexers/io.rb +69 -0
  364. data/rouge-5.0.0/lib/rouge/lexers/irb.rb +73 -0
  365. data/rouge-5.0.0/lib/rouge/lexers/isabelle.rb +251 -0
  366. data/rouge-5.0.0/lib/rouge/lexers/isbl.rb +61 -0
  367. data/rouge-5.0.0/lib/rouge/lexers/j.rb +244 -0
  368. data/rouge-5.0.0/lib/rouge/lexers/janet.rb +218 -0
  369. data/rouge-5.0.0/lib/rouge/lexers/java.rb +92 -0
  370. data/rouge-5.0.0/lib/rouge/lexers/javascript.rb +315 -0
  371. data/rouge-5.0.0/lib/rouge/lexers/jinja.rb +169 -0
  372. data/rouge-5.0.0/lib/rouge/lexers/jsl.rb +66 -0
  373. data/rouge-5.0.0/lib/rouge/lexers/json.rb +72 -0
  374. data/rouge-5.0.0/lib/rouge/lexers/json5.rb +74 -0
  375. data/rouge-5.0.0/lib/rouge/lexers/json_doc.rb +26 -0
  376. data/rouge-5.0.0/lib/rouge/lexers/jsonnet.rb +153 -0
  377. data/rouge-5.0.0/lib/rouge/lexers/jsp.rb +119 -0
  378. data/rouge-5.0.0/lib/rouge/lexers/jsx.rb +91 -0
  379. data/rouge-5.0.0/lib/rouge/lexers/julia.rb +293 -0
  380. data/rouge-5.0.0/lib/rouge/lexers/kick_assembler.rb +100 -0
  381. data/rouge-5.0.0/lib/rouge/lexers/kotlin.rb +150 -0
  382. data/rouge-5.0.0/lib/rouge/lexers/lasso/keywords.rb +20 -0
  383. data/rouge-5.0.0/lib/rouge/lexers/lasso.rb +212 -0
  384. data/rouge-5.0.0/lib/rouge/lexers/lean.rb +164 -0
  385. data/rouge-5.0.0/lib/rouge/lexers/liquid.rb +284 -0
  386. data/rouge-5.0.0/lib/rouge/lexers/literate_coffeescript.rb +34 -0
  387. data/rouge-5.0.0/lib/rouge/lexers/literate_haskell.rb +37 -0
  388. data/rouge-5.0.0/lib/rouge/lexers/livescript.rb +310 -0
  389. data/rouge-5.0.0/lib/rouge/lexers/llvm/keywords.rb +16 -0
  390. data/rouge-5.0.0/lib/rouge/lexers/llvm.rb +59 -0
  391. data/rouge-5.0.0/lib/rouge/lexers/lua/keywords.rb +26 -0
  392. data/rouge-5.0.0/lib/rouge/lexers/lua.rb +186 -0
  393. data/rouge-5.0.0/lib/rouge/lexers/lustre.rb +79 -0
  394. data/rouge-5.0.0/lib/rouge/lexers/lutin.rb +34 -0
  395. data/rouge-5.0.0/lib/rouge/lexers/m68k.rb +143 -0
  396. data/rouge-5.0.0/lib/rouge/lexers/magik.rb +127 -0
  397. data/rouge-5.0.0/lib/rouge/lexers/make.rb +148 -0
  398. data/rouge-5.0.0/lib/rouge/lexers/markdown.rb +183 -0
  399. data/rouge-5.0.0/lib/rouge/lexers/mason.rb +110 -0
  400. data/rouge-5.0.0/lib/rouge/lexers/mathematica/keywords.rb +15 -0
  401. data/rouge-5.0.0/lib/rouge/lexers/mathematica.rb +95 -0
  402. data/rouge-5.0.0/lib/rouge/lexers/matlab/keywords.rb +15 -0
  403. data/rouge-5.0.0/lib/rouge/lexers/matlab.rb +81 -0
  404. data/rouge-5.0.0/lib/rouge/lexers/meson.rb +158 -0
  405. data/rouge-5.0.0/lib/rouge/lexers/minizinc.rb +87 -0
  406. data/rouge-5.0.0/lib/rouge/lexers/mojo.rb +39 -0
  407. data/rouge-5.0.0/lib/rouge/lexers/moonscript.rb +117 -0
  408. data/rouge-5.0.0/lib/rouge/lexers/mosel.rb +228 -0
  409. data/rouge-5.0.0/lib/rouge/lexers/msgtrans.rb +26 -0
  410. data/rouge-5.0.0/lib/rouge/lexers/mxml.rb +69 -0
  411. data/rouge-5.0.0/lib/rouge/lexers/nasm.rb +73 -0
  412. data/rouge-5.0.0/lib/rouge/lexers/nesasm.rb +78 -0
  413. data/rouge-5.0.0/lib/rouge/lexers/nginx.rb +73 -0
  414. data/rouge-5.0.0/lib/rouge/lexers/nial.rb +165 -0
  415. data/rouge-5.0.0/lib/rouge/lexers/nim.rb +154 -0
  416. data/rouge-5.0.0/lib/rouge/lexers/nix.rb +213 -0
  417. data/rouge-5.0.0/lib/rouge/lexers/objective_c/common.rb +182 -0
  418. data/rouge-5.0.0/lib/rouge/lexers/objective_c.rb +21 -0
  419. data/rouge-5.0.0/lib/rouge/lexers/objective_cpp.rb +32 -0
  420. data/rouge-5.0.0/lib/rouge/lexers/ocaml/common.rb +53 -0
  421. data/rouge-5.0.0/lib/rouge/lexers/ocaml.rb +65 -0
  422. data/rouge-5.0.0/lib/rouge/lexers/ocl.rb +84 -0
  423. data/rouge-5.0.0/lib/rouge/lexers/openedge.rb +632 -0
  424. data/rouge-5.0.0/lib/rouge/lexers/opentype_feature_file.rb +97 -0
  425. data/rouge-5.0.0/lib/rouge/lexers/p4.rb +81 -0
  426. data/rouge-5.0.0/lib/rouge/lexers/pascal.rb +68 -0
  427. data/rouge-5.0.0/lib/rouge/lexers/pdf.rb +109 -0
  428. data/rouge-5.0.0/lib/rouge/lexers/perl.rb +251 -0
  429. data/rouge-5.0.0/lib/rouge/lexers/php/keywords.rb +150 -0
  430. data/rouge-5.0.0/lib/rouge/lexers/php.rb +470 -0
  431. data/rouge-5.0.0/lib/rouge/lexers/plain_text.rb +27 -0
  432. data/rouge-5.0.0/lib/rouge/lexers/plist.rb +47 -0
  433. data/rouge-5.0.0/lib/rouge/lexers/plsql.rb +577 -0
  434. data/rouge-5.0.0/lib/rouge/lexers/pony.rb +94 -0
  435. data/rouge-5.0.0/lib/rouge/lexers/postscript.rb +93 -0
  436. data/rouge-5.0.0/lib/rouge/lexers/powershell.rb +248 -0
  437. data/rouge-5.0.0/lib/rouge/lexers/praat.rb +438 -0
  438. data/rouge-5.0.0/lib/rouge/lexers/prolog.rb +67 -0
  439. data/rouge-5.0.0/lib/rouge/lexers/prometheus.rb +122 -0
  440. data/rouge-5.0.0/lib/rouge/lexers/properties.rb +52 -0
  441. data/rouge-5.0.0/lib/rouge/lexers/protobuf.rb +71 -0
  442. data/rouge-5.0.0/lib/rouge/lexers/puppet.rb +129 -0
  443. data/rouge-5.0.0/lib/rouge/lexers/python.rb +340 -0
  444. data/rouge-5.0.0/lib/rouge/lexers/q.rb +125 -0
  445. data/rouge-5.0.0/lib/rouge/lexers/qml.rb +74 -0
  446. data/rouge-5.0.0/lib/rouge/lexers/r.rb +89 -0
  447. data/rouge-5.0.0/lib/rouge/lexers/racket.rb +568 -0
  448. data/rouge-5.0.0/lib/rouge/lexers/reasonml.rb +66 -0
  449. data/rouge-5.0.0/lib/rouge/lexers/rego.rb +60 -0
  450. data/rouge-5.0.0/lib/rouge/lexers/rescript.rb +119 -0
  451. data/rouge-5.0.0/lib/rouge/lexers/rml.rb +142 -0
  452. data/rouge-5.0.0/lib/rouge/lexers/robot_framework.rb +249 -0
  453. data/rouge-5.0.0/lib/rouge/lexers/rocq.rb +264 -0
  454. data/rouge-5.0.0/lib/rouge/lexers/ruby.rb +481 -0
  455. data/rouge-5.0.0/lib/rouge/lexers/rust.rb +261 -0
  456. data/rouge-5.0.0/lib/rouge/lexers/sas.rb +562 -0
  457. data/rouge-5.0.0/lib/rouge/lexers/sass/common.rb +182 -0
  458. data/rouge-5.0.0/lib/rouge/lexers/sass.rb +75 -0
  459. data/rouge-5.0.0/lib/rouge/lexers/scala.rb +172 -0
  460. data/rouge-5.0.0/lib/rouge/lexers/scheme.rb +113 -0
  461. data/rouge-5.0.0/lib/rouge/lexers/scss.rb +35 -0
  462. data/rouge-5.0.0/lib/rouge/lexers/sed.rb +173 -0
  463. data/rouge-5.0.0/lib/rouge/lexers/shell.rb +205 -0
  464. data/rouge-5.0.0/lib/rouge/lexers/sieve.rb +97 -0
  465. data/rouge-5.0.0/lib/rouge/lexers/slice.rb +32 -0
  466. data/rouge-5.0.0/lib/rouge/lexers/slim.rb +229 -0
  467. data/rouge-5.0.0/lib/rouge/lexers/smalltalk.rb +117 -0
  468. data/rouge-5.0.0/lib/rouge/lexers/smarty.rb +81 -0
  469. data/rouge-5.0.0/lib/rouge/lexers/sml.rb +345 -0
  470. data/rouge-5.0.0/lib/rouge/lexers/sparql.rb +131 -0
  471. data/rouge-5.0.0/lib/rouge/lexers/sqf/keywords.rb +14 -0
  472. data/rouge-5.0.0/lib/rouge/lexers/sqf.rb +108 -0
  473. data/rouge-5.0.0/lib/rouge/lexers/sql.rb +161 -0
  474. data/rouge-5.0.0/lib/rouge/lexers/ssh.rb +33 -0
  475. data/rouge-5.0.0/lib/rouge/lexers/stan.rb +445 -0
  476. data/rouge-5.0.0/lib/rouge/lexers/stata.rb +165 -0
  477. data/rouge-5.0.0/lib/rouge/lexers/supercollider.rb +115 -0
  478. data/rouge-5.0.0/lib/rouge/lexers/svelte.rb +91 -0
  479. data/rouge-5.0.0/lib/rouge/lexers/swift.rb +202 -0
  480. data/rouge-5.0.0/lib/rouge/lexers/systemd.rb +34 -0
  481. data/rouge-5.0.0/lib/rouge/lexers/syzlang.rb +316 -0
  482. data/rouge-5.0.0/lib/rouge/lexers/syzprog.rb +122 -0
  483. data/rouge-5.0.0/lib/rouge/lexers/tap.rb +88 -0
  484. data/rouge-5.0.0/lib/rouge/lexers/tcl.rb +198 -0
  485. data/rouge-5.0.0/lib/rouge/lexers/terraform.rb +121 -0
  486. data/rouge-5.0.0/lib/rouge/lexers/tex.rb +70 -0
  487. data/rouge-5.0.0/lib/rouge/lexers/thrift.rb +120 -0
  488. data/rouge-5.0.0/lib/rouge/lexers/toml.rb +124 -0
  489. data/rouge-5.0.0/lib/rouge/lexers/tsx.rb +33 -0
  490. data/rouge-5.0.0/lib/rouge/lexers/ttcn3.rb +117 -0
  491. data/rouge-5.0.0/lib/rouge/lexers/tulip.rb +107 -0
  492. data/rouge-5.0.0/lib/rouge/lexers/turtle.rb +61 -0
  493. data/rouge-5.0.0/lib/rouge/lexers/twig.rb +40 -0
  494. data/rouge-5.0.0/lib/rouge/lexers/typescript/common.rb +60 -0
  495. data/rouge-5.0.0/lib/rouge/lexers/typescript.rb +23 -0
  496. data/rouge-5.0.0/lib/rouge/lexers/vala.rb +78 -0
  497. data/rouge-5.0.0/lib/rouge/lexers/varnish.rb +168 -0
  498. data/rouge-5.0.0/lib/rouge/lexers/vb.rb +165 -0
  499. data/rouge-5.0.0/lib/rouge/lexers/velocity.rb +71 -0
  500. data/rouge-5.0.0/lib/rouge/lexers/verilog.rb +163 -0
  501. data/rouge-5.0.0/lib/rouge/lexers/veryl.rb +109 -0
  502. data/rouge-5.0.0/lib/rouge/lexers/vhdl.rb +98 -0
  503. data/rouge-5.0.0/lib/rouge/lexers/viml/keywords.rb +19 -0
  504. data/rouge-5.0.0/lib/rouge/lexers/viml.rb +68 -0
  505. data/rouge-5.0.0/lib/rouge/lexers/vue.rb +127 -0
  506. data/rouge-5.0.0/lib/rouge/lexers/wollok.rb +107 -0
  507. data/rouge-5.0.0/lib/rouge/lexers/xml.rb +56 -0
  508. data/rouge-5.0.0/lib/rouge/lexers/xojo.rb +61 -0
  509. data/rouge-5.0.0/lib/rouge/lexers/xpath.rb +332 -0
  510. data/rouge-5.0.0/lib/rouge/lexers/xquery.rb +146 -0
  511. data/rouge-5.0.0/lib/rouge/lexers/yaml.rb +388 -0
  512. data/rouge-5.0.0/lib/rouge/lexers/yang.rb +115 -0
  513. data/rouge-5.0.0/lib/rouge/lexers/zig.rb +139 -0
  514. data/rouge-5.0.0/lib/rouge/plugins/redcarpet.rb +38 -0
  515. data/rouge-5.0.0/lib/rouge/regex_lexer.rb +522 -0
  516. data/rouge-5.0.0/lib/rouge/template_lexer.rb +21 -0
  517. data/rouge-5.0.0/lib/rouge/tex_theme_renderer.rb +132 -0
  518. data/rouge-5.0.0/lib/rouge/text_analyzer.rb +50 -0
  519. data/rouge-5.0.0/lib/rouge/theme.rb +218 -0
  520. data/rouge-5.0.0/lib/rouge/themes/base16.rb +137 -0
  521. data/rouge-5.0.0/lib/rouge/themes/bw.rb +43 -0
  522. data/rouge-5.0.0/lib/rouge/themes/colorful.rb +70 -0
  523. data/rouge-5.0.0/lib/rouge/themes/github.rb +149 -0
  524. data/rouge-5.0.0/lib/rouge/themes/gruvbox.rb +176 -0
  525. data/rouge-5.0.0/lib/rouge/themes/igor_pro.rb +25 -0
  526. data/rouge-5.0.0/lib/rouge/themes/magritte.rb +80 -0
  527. data/rouge-5.0.0/lib/rouge/themes/molokai.rb +84 -0
  528. data/rouge-5.0.0/lib/rouge/themes/monokai.rb +95 -0
  529. data/rouge-5.0.0/lib/rouge/themes/monokai_sublime.rb +94 -0
  530. data/rouge-5.0.0/lib/rouge/themes/pastie.rb +72 -0
  531. data/rouge-5.0.0/lib/rouge/themes/thankful_eyes.rb +77 -0
  532. data/rouge-5.0.0/lib/rouge/themes/tulip.rb +72 -0
  533. data/rouge-5.0.0/lib/rouge/token.rb +192 -0
  534. data/rouge-5.0.0/lib/rouge/util.rb +102 -0
  535. data/rouge-5.0.0/lib/rouge/version.rb +8 -0
  536. data/rouge-5.0.0/lib/rouge.rb +117 -0
  537. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_building_alternation_pattern_in_regexp.rb +71 -0
  538. data/rouge-5.0.0/lib/rubocop/cop/rouge/no_huge_collections.rb +37 -0
  539. data/rouge-5.0.0/rouge.gemspec +29 -0
  540. metadata +578 -0
@@ -0,0 +1,215 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Coffeescript < RegexLexer
7
+ tag 'coffeescript'
8
+ aliases 'coffee', 'coffee-script'
9
+ filenames '*.coffee', 'Cakefile'
10
+ mimetypes 'text/coffeescript'
11
+
12
+ title "CoffeeScript"
13
+ desc 'The Coffeescript programming language (coffeescript.org)'
14
+
15
+ def self.detect?(text)
16
+ return true if text.shebang? 'coffee'
17
+ end
18
+
19
+ def self.keywords
20
+ @keywords ||= Set.new %w(
21
+ for by while until loop break continue return
22
+ switch when then if else do yield throw try catch finally await
23
+ new delete typeof instanceof super extends this class
24
+ import export debugger
25
+ )
26
+ end
27
+
28
+ def self.reserved
29
+ @reserved ||= Set.new %w(
30
+ case function var void with const let enum
31
+ native implements interface package private protected public static
32
+ )
33
+ end
34
+
35
+ def self.constants
36
+ @constants ||= Set.new %w(
37
+ true false yes no on off null NaN Infinity undefined
38
+ )
39
+ end
40
+
41
+ def self.builtins
42
+ @builtins ||= Set.new %w(
43
+ Array Boolean Date Error Function Math netscape Number Object
44
+ Packages RegExp String sun decodeURI decodeURIComponent
45
+ encodeURI encodeURIComponent eval isFinite isNaN parseFloat
46
+ parseInt document window
47
+ )
48
+ end
49
+
50
+ id = /[$a-zA-Z_][a-zA-Z0-9_]*/
51
+
52
+ state :comments do
53
+ rule %r/###[^#].*?###/m, Comment::Multiline
54
+ rule %r/#.*$/, Comment::Single
55
+ end
56
+
57
+ state :whitespace do
58
+ rule %r/\s+/m, Text
59
+ end
60
+
61
+ state :regex_comment do
62
+ rule %r/^#(?!\{).*$/, Comment::Single
63
+ rule %r/(\s+)(#(?!\{).*)$/ do
64
+ groups Text, Comment::Single
65
+ end
66
+ end
67
+
68
+ state :multiline_regex_begin do
69
+ rule %r(///) do
70
+ token Str::Regex
71
+ goto :multiline_regex
72
+ end
73
+ end
74
+
75
+ state :multiline_regex_end do
76
+ rule %r(///([gimy]+\b|\B)), Str::Regex, :pop!
77
+ end
78
+
79
+ state :multiline_regex do
80
+ mixin :multiline_regex_end
81
+ mixin :regex_comment
82
+ mixin :has_interpolation
83
+ mixin :comments
84
+ mixin :whitespace
85
+ mixin :code_escape
86
+
87
+ rule %r/\\\D/, Str::Escape
88
+ rule %r/\\\d+/, Name::Variable
89
+ rule %r/./m, Str::Regex
90
+ end
91
+
92
+ state :slash_starts_regex do
93
+ mixin :comments
94
+ mixin :whitespace
95
+ mixin :multiline_regex_begin
96
+
97
+ rule %r(
98
+ /(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/ # a regex
99
+ ([gimy]+\b|\B)
100
+ )x, Str::Regex, :pop!
101
+
102
+ rule(//) { pop! }
103
+ end
104
+
105
+ state :root do
106
+ rule(%r(^(?=\s|/|<!--))) { push :slash_starts_regex }
107
+ mixin :comments
108
+ mixin :whitespace
109
+
110
+ rule %r(
111
+ [+][+]|--|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\bin\b|\bof\b|
112
+ [?]|:|=|[|][|]|\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*`%&|^/])=?
113
+ )x, Operator, :slash_starts_regex
114
+
115
+ rule %r/[-=]>/, Name::Function
116
+
117
+ rule %r/(@)([ \t]*)(#{id})/ do
118
+ groups Name::Variable::Instance, Text, Name::Attribute
119
+ push :slash_starts_regex
120
+ end
121
+
122
+ rule %r/([.])([ \t]*)(#{id})/ do
123
+ groups Punctuation, Text, Name::Attribute
124
+ push :slash_starts_regex
125
+ end
126
+
127
+ rule %r/#{id}(?=\s*:)/, Name::Attribute, :slash_starts_regex
128
+
129
+ rule %r/#{id}/ do |m|
130
+ if self.class.keywords.include? m[0]
131
+ token Keyword
132
+ elsif self.class.constants.include? m[0]
133
+ token Name::Constant
134
+ elsif self.class.builtins.include? m[0]
135
+ token Name::Builtin
136
+ else
137
+ token Name::Other
138
+ end
139
+
140
+ push :slash_starts_regex
141
+ end
142
+
143
+ rule %r/[{(\[;,]/, Punctuation, :slash_starts_regex
144
+ rule %r/[})\].]/, Punctuation
145
+
146
+ rule %r/\d+[.]\d+([eE]\d+)?[fd]?/, Num::Float
147
+ rule %r/0x[0-9a-fA-F]+/, Num::Hex
148
+ rule %r/\d+/, Num::Integer
149
+ rule %r/"""/, Str, :tdqs
150
+ rule %r/'''/, Str, :tsqs
151
+ rule %r/"/, Str, :dqs
152
+ rule %r/'/, Str, :sqs
153
+ end
154
+
155
+ state :code_escape do
156
+ rule %r(\\(
157
+ c[A-Z]|
158
+ x[0-9a-fA-F]{2}|
159
+ u[0-9a-fA-F]{4}|
160
+ u\{[0-9a-fA-F]{4}\}
161
+ ))x, Str::Escape
162
+ end
163
+
164
+ state :strings do
165
+ # all coffeescript strings are multi-line
166
+ rule %r/[^#\\'"]+/m, Str
167
+ mixin :code_escape
168
+ rule %r/\\./, Str::Escape
169
+ rule %r/#/, Str
170
+ end
171
+
172
+ state :double_strings do
173
+ rule %r/'/, Str
174
+ mixin :has_interpolation
175
+ mixin :strings
176
+ end
177
+
178
+ state :single_strings do
179
+ rule %r/"/, Str
180
+ mixin :strings
181
+ end
182
+
183
+ state :interpolation do
184
+ rule %r/}/, Str::Interpol, :pop!
185
+ mixin :root
186
+ end
187
+
188
+ state :has_interpolation do
189
+ rule %r/[#][{]/, Str::Interpol, :interpolation
190
+ end
191
+
192
+ state :dqs do
193
+ rule %r/"/, Str, :pop!
194
+ mixin :double_strings
195
+ end
196
+
197
+ state :tdqs do
198
+ rule %r/"""/, Str, :pop!
199
+ rule %r/"/, Str
200
+ mixin :double_strings
201
+ end
202
+
203
+ state :sqs do
204
+ rule %r/'/, Str, :pop!
205
+ mixin :single_strings
206
+ end
207
+
208
+ state :tsqs do
209
+ rule %r/'''/, Str, :pop!
210
+ rule %r/'/, Str
211
+ mixin :single_strings
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,346 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class CommonLisp < RegexLexer
7
+ title "Common Lisp"
8
+ desc "The Common Lisp variant of Lisp (common-lisp.net)"
9
+ tag 'common_lisp'
10
+ aliases 'cl', 'common-lisp', 'elisp', 'emacs-lisp', 'lisp'
11
+
12
+ filenames '*.cl', '*.lisp', '*.asd', '*.el' # used for Elisp too
13
+ mimetypes 'text/x-common-lisp'
14
+
15
+ # 638 functions
16
+ BUILTIN_FUNCTIONS = Set.new %w(
17
+ < <= = > >= - / /= * + 1- 1+ abort abs acons acos acosh add-method
18
+ adjoin adjustable-array-p adjust-array allocate-instance
19
+ alpha-char-p alphanumericp append apply apropos apropos-list
20
+ aref arithmetic-error-operands arithmetic-error-operation
21
+ array-dimension array-dimensions array-displacement
22
+ array-element-type array-has-fill-pointer-p array-in-bounds-p
23
+ arrayp array-rank array-row-major-index array-total-size
24
+ ash asin asinh assoc assoc-if assoc-if-not atan atanh atom
25
+ bit bit-and bit-andc1 bit-andc2 bit-eqv bit-ior bit-nand
26
+ bit-nor bit-not bit-orc1 bit-orc2 bit-vector-p bit-xor boole
27
+ both-case-p boundp break broadcast-stream-streams butlast
28
+ byte byte-position byte-size caaaar caaadr caaar caadar
29
+ caaddr caadr caar cadaar cadadr cadar caddar cadddr caddr
30
+ cadr call-next-method car cdaaar cdaadr cdaar cdadar cdaddr
31
+ cdadr cdar cddaar cddadr cddar cdddar cddddr cdddr cddr cdr
32
+ ceiling cell-error-name cerror change-class char char< char<=
33
+ char= char> char>= char/= character characterp char-code
34
+ char-downcase char-equal char-greaterp char-int char-lessp
35
+ char-name char-not-equal char-not-greaterp char-not-lessp
36
+ char-upcase cis class-name class-of clear-input clear-output
37
+ close clrhash code-char coerce compile compiled-function-p
38
+ compile-file compile-file-pathname compiler-macro-function
39
+ complement complex complexp compute-applicable-methods
40
+ compute-restarts concatenate concatenated-stream-streams conjugate
41
+ cons consp constantly constantp continue copy-alist copy-list
42
+ copy-pprint-dispatch copy-readtable copy-seq copy-structure
43
+ copy-symbol copy-tree cos cosh count count-if count-if-not
44
+ decode-float decode-universal-time delete delete-duplicates
45
+ delete-file delete-if delete-if-not delete-package denominator
46
+ deposit-field describe describe-object digit-char digit-char-p
47
+ directory directory-namestring disassemble documentation dpb
48
+ dribble echo-stream-input-stream echo-stream-output-stream
49
+ ed eighth elt encode-universal-time endp enough-namestring
50
+ ensure-directories-exist ensure-generic-function eq
51
+ eql equal equalp error eval evenp every exp export expt
52
+ fboundp fceiling fdefinition ffloor fifth file-author
53
+ file-error-pathname file-length file-namestring file-position
54
+ file-string-length file-write-date fill fill-pointer find
55
+ find-all-symbols find-class find-if find-if-not find-method
56
+ find-package find-restart find-symbol finish-output first
57
+ float float-digits floatp float-precision float-radix
58
+ float-sign floor fmakunbound force-output format fourth
59
+ fresh-line fround ftruncate funcall function-keywords
60
+ function-lambda-expression functionp gcd gensym gentemp get
61
+ get-decoded-time get-dispatch-macro-character getf gethash
62
+ get-internal-real-time get-internal-run-time get-macro-character
63
+ get-output-stream-string get-properties get-setf-expansion
64
+ get-universal-time graphic-char-p hash-table-count hash-table-p
65
+ hash-table-rehash-size hash-table-rehash-threshold
66
+ hash-table-size hash-table-test host-namestring identity
67
+ imagpart import initialize-instance input-stream-p inspect
68
+ integer-decode-float integer-length integerp interactive-stream-p
69
+ intern intersection invalid-method-error invoke-debugger
70
+ invoke-restart invoke-restart-interactively isqrt keywordp
71
+ last lcm ldb ldb-test ldiff length lisp-implementation-type
72
+ lisp-implementation-version list list* list-all-packages listen
73
+ list-length listp load load-logical-pathname-translations
74
+ log logand logandc1 logandc2 logbitp logcount logeqv
75
+ logical-pathname logical-pathname-translations logior
76
+ lognand lognor lognot logorc1 logorc2 logtest logxor
77
+ long-site-name lower-case-p machine-instance machine-type
78
+ machine-version macroexpand macroexpand-1 macro-function
79
+ make-array make-broadcast-stream make-concatenated-stream
80
+ make-condition make-dispatch-macro-character make-echo-stream
81
+ make-hash-table make-instance make-instances-obsolete make-list
82
+ make-load-form make-load-form-saving-slots make-package
83
+ make-pathname make-random-state make-sequence make-string
84
+ make-string-input-stream make-string-output-stream make-symbol
85
+ make-synonym-stream make-two-way-stream makunbound map mapc
86
+ mapcan mapcar mapcon maphash map-into mapl maplist mask-field
87
+ max member member-if member-if-not merge merge-pathnames
88
+ method-combination-error method-qualifiers min minusp mismatch mod
89
+ muffle-warning name-char namestring nbutlast nconc next-method-p
90
+ nintersection ninth no-applicable-method no-next-method not notany
91
+ notevery nreconc nreverse nset-difference nset-exclusive-or
92
+ nstring-capitalize nstring-downcase nstring-upcase nsublis
93
+ nsubst nsubst-if nsubst-if-not nsubstitute nsubstitute-if
94
+ nsubstitute-if-not nth nthcdr null numberp numerator nunion
95
+ oddp open open-stream-p output-stream-p package-error-package
96
+ package-name package-nicknames packagep package-shadowing-symbols
97
+ package-used-by-list package-use-list pairlis parse-integer
98
+ parse-namestring pathname pathname-device pathname-directory
99
+ pathname-host pathname-match-p pathname-name pathnamep
100
+ pathname-type pathname-version peek-char phase plusp
101
+ position position-if position-if-not pprint pprint-dispatch
102
+ pprint-fill pprint-indent pprint-linear pprint-newline pprint-tab
103
+ pprint-tabular prin1 prin1-to-string princ princ-to-string print
104
+ print-object probe-file proclaim provide random random-state-p
105
+ rassoc rassoc-if rassoc-if-not rational rationalize rationalp
106
+ read read-byte read-char read-char-no-hang read-delimited-list
107
+ read-from-string read-line read-preserving-whitespace
108
+ read-sequence readtable-case readtablep realp realpart
109
+ reduce reinitialize-instance rem remhash remove
110
+ remove-duplicates remove-if remove-if-not remove-method
111
+ remprop rename-file rename-package replace require rest
112
+ restart-name revappend reverse room round row-major-aref
113
+ rplaca rplacd sbit scale-float schar search second set
114
+ set-difference set-dispatch-macro-character set-exclusive-or
115
+ set-macro-character set-pprint-dispatch set-syntax-from-char
116
+ seventh shadow shadowing-import shared-initialize
117
+ short-site-name signal signum simple-bit-vector-p
118
+ simple-condition-format-arguments simple-condition-format-control
119
+ simple-string-p simple-vector-p sin sinh sixth sleep slot-boundp
120
+ slot-exists-p slot-makunbound slot-missing slot-unbound slot-value
121
+ software-type software-version some sort special-operator-p
122
+ sqrt stable-sort standard-char-p store-value stream-element-type
123
+ stream-error-stream stream-external-format streamp string string<
124
+ string<= string= string> string>= string/= string-capitalize
125
+ string-downcase string-equal string-greaterp string-left-trim
126
+ string-lessp string-not-equal string-not-greaterp string-not-lessp
127
+ stringp string-right-trim string-trim string-upcase sublis subseq
128
+ subsetp subst subst-if subst-if-not substitute substitute-if
129
+ substitute-if-not subtypepsvref sxhash symbol-function
130
+ symbol-name symbolp symbol-package symbol-plist symbol-value
131
+ synonym-stream-symbol syntax: tailp tan tanh tenth terpri third
132
+ translate-logical-pathname translate-pathname tree-equal truename
133
+ truncate two-way-stream-input-stream two-way-stream-output-stream
134
+ type-error-datum type-error-expected-type type-of
135
+ typep unbound-slot-instance unexport unintern union
136
+ unread-char unuse-package update-instance-for-different-class
137
+ update-instance-for-redefined-class upgraded-array-element-type
138
+ upgraded-complex-part-type upper-case-p use-package
139
+ user-homedir-pathname use-value values values-list vector vectorp
140
+ vector-pop vector-push vector-push-extend warn wild-pathname-p
141
+ write write-byte write-char write-line write-sequence write-string
142
+ write-to-string yes-or-no-p y-or-n-p zerop
143
+ ).freeze
144
+
145
+ SPECIAL_FORMS = Set.new %w(
146
+ block catch declare eval-when flet function go if labels lambda
147
+ let let* load-time-value locally macrolet multiple-value-call
148
+ multiple-value-prog1 progn progv quote return-from setq
149
+ symbol-macrolet tagbody the throw unwind-protect
150
+ )
151
+
152
+ MACROS = Set.new %w(
153
+ and assert call-method case ccase check-type cond ctypecase decf
154
+ declaim defclass defconstant defgeneric define-compiler-macro
155
+ define-condition define-method-combination define-modify-macro
156
+ define-setf-expander define-symbol-macro defmacro defmethod
157
+ defpackage defparameter defsetf defstruct defsystem deftype defun defvar
158
+ destructuring-bind do do* do-all-symbols do-external-symbols
159
+ dolist do-symbols dotimes ecase etypecase formatter
160
+ handler-bind handler-case ignore-errors incf in-package
161
+ lambda loop loop-finish make-method multiple-value-bind
162
+ multiple-value-list multiple-value-setq nth-value or pop
163
+ pprint-exit-if-list-exhausted pprint-logical-block pprint-pop
164
+ print-unreadable-object prog prog* prog1 prog2 psetf psetq
165
+ push pushnew remf restart-bind restart-case return rotatef
166
+ setf shiftf step time trace typecase unless untrace when
167
+ with-accessors with-compilation-unit with-condition-restarts
168
+ with-hash-table-iterator with-input-from-string with-open-file
169
+ with-open-stream with-output-to-string with-package-iterator
170
+ with-simple-restart with-slots with-standard-io-syntax
171
+ )
172
+
173
+ LAMBDA_LIST_KEYWORDS = Set.new %w(
174
+ &allow-other-keys &aux &body &environment &key &optional &rest
175
+ &whole
176
+ )
177
+
178
+ DECLARATIONS = Set.new %w(
179
+ dynamic-extent ignore optimize ftype inline special ignorable
180
+ notinline type
181
+ )
182
+
183
+ BUILTIN_TYPES = Set.new %w(
184
+ atom boolean base-char base-string bignum bit compiled-function
185
+ extended-char fixnum keyword nil signed-byte short-float
186
+ single-float double-float long-float simple-array
187
+ simple-base-string simple-bit-vector simple-string simple-vector
188
+ standard-char unsigned-byte
189
+
190
+ arithmetic-error cell-error condition control-error
191
+ division-by-zero end-of-file error file-error
192
+ floating-point-inexact floating-point-overflow
193
+ floating-point-underflow floating-point-invalid-operation
194
+ parse-error package-error print-not-readable program-error
195
+ reader-error serious-condition simple-condition simple-error
196
+ simple-type-error simple-warning stream-error storage-condition
197
+ style-warning type-error unbound-variable unbound-slot
198
+ undefined-function warning
199
+ )
200
+
201
+ BUILTIN_CLASSES = Set.new %w(
202
+ array broadcast-stream bit-vector built-in-class character
203
+ class complex concatenated-stream cons echo-stream file-stream
204
+ float function generic-function hash-table integer list
205
+ logical-pathname method-combination method null number package
206
+ pathname ratio rational readtable real random-state restart
207
+ sequence standard-class standard-generic-function standard-method
208
+ standard-object string-stream stream string structure-class
209
+ structure-object symbol synonym-stream t two-way-stream vector
210
+ )
211
+
212
+ nonmacro = /\\.|[a-zA-Z0-9!$%&*+-\/<=>?@\[\]^_{}~]/
213
+ constituent = /#{nonmacro}|[#.:]/
214
+ terminated = /(?=[ "'()\n,;`])/ # whitespace or terminating macro chars
215
+ symbol = /(\|[^\|]+\||#{nonmacro}#{constituent}*)/
216
+
217
+ state :root do
218
+ rule %r/\s+/m, Text
219
+ rule %r/;.*$/, Comment::Single
220
+ rule %r/#\|/, Comment::Multiline, :multiline_comment
221
+
222
+ # encoding comment
223
+ rule %r/#\d*Y.*$/, Comment::Special
224
+ rule %r/"(\\.|[^"\\])*"/, Str
225
+
226
+ rule %r/[:']#{symbol}/, Str::Symbol
227
+ rule %r/['`]/, Operator
228
+
229
+ # numbers
230
+ rule %r/[-+]?\d+\.?#{terminated}/, Num::Integer
231
+ rule %r([-+]?\d+/\d+#{terminated}), Num::Integer
232
+ rule %r(
233
+ [-+]?
234
+ (\d*\.\d+([defls][-+]?\d+)?
235
+ |\d+(\.\d*)?[defls][-+]?\d+)
236
+ #{terminated}
237
+ )x, Num::Float
238
+
239
+ # sharpsign strings and characters
240
+ rule %r/#\\.#{terminated}/, Str::Char
241
+ rule %r/#\\#{symbol}/, Str::Char
242
+
243
+ rule %r/#\(/, Operator, :root
244
+
245
+ # bitstring
246
+ rule %r/#\d*\*[01]*/, Other
247
+
248
+ # uninterned symbol
249
+ rule %r/#:#{symbol}/, Str::Symbol
250
+
251
+ # read-time and load-time evaluation
252
+ rule %r/#[.,]/, Operator
253
+
254
+ # function shorthand
255
+ rule %r/#'/, Name::Function
256
+
257
+ # binary rational
258
+ rule %r/#b[+-]?[01]+(\/[01]+)?/i, Num
259
+
260
+ # octal rational
261
+ rule %r/#o[+-]?[0-7]+(\/[0-7]+)?/i, Num::Oct
262
+
263
+ # hex rational
264
+ rule %r/#x[+-]?[0-9a-f]+(\/[0-9a-f]+)?/i, Num
265
+
266
+ # complex
267
+ rule %r/(#c)(\()/i do
268
+ groups Num, Punctuation
269
+ push :root
270
+ end
271
+
272
+ # arrays and structures
273
+ rule %r/(#(?:\d+a|s))(\()/i do
274
+ groups Str::Other, Punctuation
275
+ push :root
276
+ end
277
+
278
+ # path
279
+ rule %r/#p?"(\\.|[^"])*"/i, Str::Symbol
280
+
281
+ # reference
282
+ rule %r/#\d+[=#]/, Operator
283
+
284
+ # read-time comment
285
+ rule %r/#+nil#{terminated}\s*\(/, Comment, :commented_form
286
+
287
+ # read-time conditional
288
+ rule %r/#[+-]/, Operator
289
+
290
+ # special operators that should have been parsed already
291
+ rule %r/(,@|,|\.)/, Operator
292
+
293
+ # special constants
294
+ rule %r/(t|nil)#{terminated}/, Name::Constant
295
+
296
+ # functions and variables
297
+ # note that these get filtered through in stream_tokens
298
+ rule %r/\*#{symbol}\*/, Name::Variable::Global
299
+ rule symbol do |m|
300
+ sym = m[0]
301
+
302
+ if BUILTIN_FUNCTIONS.include? sym
303
+ token Name::Builtin
304
+ elsif SPECIAL_FORMS.include? sym
305
+ token Keyword
306
+ elsif MACROS.include? sym
307
+ token Name::Builtin
308
+ elsif LAMBDA_LIST_KEYWORDS.include? sym
309
+ token Keyword
310
+ elsif DECLARATIONS.include? sym
311
+ token Keyword
312
+ elsif BUILTIN_TYPES.include? sym
313
+ token Keyword::Type
314
+ elsif BUILTIN_CLASSES.include? sym
315
+ token Name::Class
316
+ else
317
+ token Name::Variable
318
+ end
319
+ end
320
+
321
+ rule %r/\(/, Punctuation, :root
322
+ rule %r/\)/, Punctuation do
323
+ if stack.size == 1
324
+ token Error
325
+ else
326
+ token Punctuation
327
+ pop!
328
+ end
329
+ end
330
+ end
331
+
332
+ state :multiline_comment do
333
+ rule %r/#\|/, Comment::Multiline, :multiline_comment
334
+ rule %r/\|#/, Comment::Multiline, :pop!
335
+ rule %r/[^\|#]+/, Comment::Multiline
336
+ rule %r/[\|#]/, Comment::Multiline
337
+ end
338
+
339
+ state :commented_form do
340
+ rule %r/\(/, Comment, :commented_form
341
+ rule %r/\)/, Comment, :pop!
342
+ rule %r/[^()]+/, Comment
343
+ end
344
+ end
345
+ end
346
+ end
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Conf < RegexLexer
7
+ tag 'conf'
8
+ aliases 'config', 'configuration'
9
+
10
+ title "Config File"
11
+ desc 'A generic lexer for configuration files'
12
+ filenames '*.conf', '*.config'
13
+
14
+ # short and sweet
15
+ state :root do
16
+ rule %r/#.*?\n/, Comment
17
+ rule %r/".*?"/, Str::Double
18
+ rule %r/'.*?'/, Str::Single
19
+ rule %r/[a-z]\w*/i, Name
20
+ rule %r/\d+/, Num
21
+ rule %r/[^\w#"']+/, Text
22
+ end
23
+ end
24
+ end
25
+ end