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,182 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ # shared states with SCSS
7
+ class SassCommon < RegexLexer
8
+ id = /[\w-]+/
9
+
10
+ state :content_common do
11
+ rule %r/@for\b/, Keyword, :for
12
+ rule %r/@(debug|warn|if|each|while|else|return|media)/, Keyword, :value
13
+
14
+ rule %r/(@mixin)(\s+)(#{id})/ do
15
+ groups Keyword, Text, Name::Function
16
+ push :value
17
+ end
18
+
19
+ rule %r/(@function)(\s+)(#{id})/ do
20
+ groups Keyword, Text, Name::Function
21
+ push :value
22
+ end
23
+
24
+ rule %r/@extend\b/, Keyword, :selector
25
+
26
+ rule %r/(@include)(\s+)(#{id})/ do
27
+ groups Keyword, Text, Name::Decorator
28
+ push :value
29
+ end
30
+
31
+ rule %r/@#{id}/, Keyword, :selector
32
+ rule %r/&/, Keyword, :selector
33
+
34
+ # $variable: assignment
35
+ rule %r/([$]#{id})([ \t]*)(:)/ do
36
+ groups Name::Variable, Text, Punctuation
37
+ push :value
38
+ end
39
+ end
40
+
41
+ state :value do
42
+ mixin :end_section
43
+ rule %r/[ \t]+/, Text
44
+ rule %r/[$]#{id}/, Name::Variable
45
+ rule %r/url[(]/, Str::Other, :string_url
46
+ rule %r/#{id}(?=\s*[(])/, Name::Function
47
+ rule %r/%#{id}/, Name::Decorator
48
+
49
+ # named literals
50
+ rule %r/(true|false)\b/, Name::Builtin::Pseudo
51
+ rule %r/(and|or|not)\b/, Operator::Word
52
+
53
+ # colors and numbers
54
+ rule %r/#[a-z0-9]{1,6}/i, Num::Hex
55
+ rule %r/-?\d+(%|[a-z]+)?/, Num
56
+ rule %r/-?\d*\.\d+(%|[a-z]+)?/, Num::Integer
57
+
58
+ mixin :has_strings
59
+ mixin :has_interp
60
+
61
+ rule %r/[~^*!&%<>\|+=@:,.\/?-]+/, Operator
62
+ rule %r/[\[\]()]+/, Punctuation
63
+ rule %r(/[*]), Comment::Multiline, :inline_comment
64
+ rule %r(//[^\n]*), Comment::Single
65
+
66
+ # identifiers
67
+ rule(id) do |m|
68
+ if CSS.builtins.include? m[0]
69
+ token Name::Builtin
70
+ elsif CSS.colors.include? m[0]
71
+ token Name::Constant
72
+ else
73
+ token Name
74
+ end
75
+ end
76
+ end
77
+
78
+ state :has_interp do
79
+ rule %r/[#][{]/, Str::Interpol, :interpolation
80
+ end
81
+
82
+ state :has_strings do
83
+ rule %r/"/, Str::Double, :dq
84
+ rule %r/'/, Str::Single, :sq
85
+ end
86
+
87
+ state :interpolation do
88
+ rule %r/}/, Str::Interpol, :pop!
89
+ mixin :value
90
+ end
91
+
92
+ state :selector do
93
+ mixin :end_section
94
+
95
+ mixin :has_strings
96
+ mixin :has_interp
97
+ rule %r/[ \t]+/, Text
98
+ rule %r/:/, Name::Decorator, :pseudo_class
99
+ rule %r/[.]/, Name::Class, :class
100
+ rule %r/#/, Name::Namespace, :id
101
+ rule %r/%/, Name::Variable, :placeholder
102
+ rule id, Name::Tag
103
+ rule %r/&/, Keyword
104
+ rule %r/[~^*!&\[\]()<>\|+=@:;,.\/?-]/, Operator
105
+ end
106
+
107
+ state :dq do
108
+ rule %r/"/, Str::Double, :pop!
109
+ mixin :has_interp
110
+ rule %r/(\\.|#(?![{])|[^\n"#])+/, Str::Double
111
+ end
112
+
113
+ state :sq do
114
+ rule %r/'/, Str::Single, :pop!
115
+ mixin :has_interp
116
+ rule %r/(\\.|#(?![{])|[^\n'#])+/, Str::Single
117
+ end
118
+
119
+ state :string_url do
120
+ rule %r/[)]/, Str::Other, :pop!
121
+ rule %r/(\\.|#(?![{])|[^\n)#])+/, Str::Other
122
+ mixin :has_interp
123
+ end
124
+
125
+ state :selector_piece do
126
+ mixin :has_interp
127
+ rule(//) { pop! }
128
+ end
129
+
130
+ state :pseudo_class do
131
+ rule id, Name::Decorator
132
+ mixin :selector_piece
133
+ end
134
+
135
+ state :class do
136
+ rule id, Name::Class
137
+ mixin :selector_piece
138
+ end
139
+
140
+ state :id do
141
+ rule id, Name::Namespace
142
+ mixin :selector_piece
143
+ end
144
+
145
+ state :placeholder do
146
+ rule id, Name::Variable
147
+ mixin :selector_piece
148
+ end
149
+
150
+ state :for do
151
+ rule %r/(from|to|through)/, Operator::Word
152
+ mixin :value
153
+ end
154
+
155
+ state :attr_common do
156
+ mixin :has_interp
157
+ rule id do |m|
158
+ if CSS.properties.include? m[0]
159
+ token Name::Label
160
+ else
161
+ token Name::Attribute
162
+ end
163
+ end
164
+ end
165
+
166
+ state :attribute do
167
+ mixin :attr_common
168
+
169
+ rule %r/([ \t]*)(:)/ do
170
+ groups Text, Punctuation
171
+ push :value
172
+ end
173
+ end
174
+
175
+ state :inline_comment do
176
+ rule %r/(\\#|#(?=[^\n{])|\*(?=[^\n\/])|[^\n#*])+/, Comment::Multiline
177
+ mixin :has_interp
178
+ rule %r([*]/), Comment::Multiline, :pop!
179
+ end
180
+ end
181
+ end
182
+ end
@@ -0,0 +1,75 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ require_relative 'sass/common'
5
+
6
+ module Rouge
7
+ module Lexers
8
+ class Sass < SassCommon
9
+ include Indentation
10
+
11
+ title "Sass"
12
+ desc 'The Sass stylesheet language language (sass-lang.com)'
13
+
14
+ tag 'sass'
15
+ filenames '*.sass'
16
+ mimetypes 'text/x-sass'
17
+
18
+ id = /[\w-]+/
19
+
20
+ state :root do
21
+ rule %r/[ \t]*\n/, Text
22
+ rule(/[ \t]*/) { |m| token Text; indentation(m[0]) }
23
+ end
24
+
25
+ state :content do
26
+ # block comments
27
+ rule %r(//.*?$) do
28
+ token Comment::Single
29
+ pop!; starts_block :single_comment
30
+ end
31
+
32
+ rule %r(/[*].*?\n) do
33
+ token Comment::Multiline
34
+ pop!; starts_block :multi_comment
35
+ end
36
+
37
+ rule %r/@import\b/, Keyword, :import
38
+
39
+ mixin :content_common
40
+
41
+ rule %r(=#{id}), Name::Function, :value
42
+ rule %r([+]#{id}), Name::Decorator, :value
43
+
44
+ rule %r/:/, Name::Attribute, :old_style_attr
45
+
46
+ rule(/(?=[^\[\n]+?:([^a-z]|$))/) { push :attribute }
47
+
48
+ rule(//) { push :selector }
49
+ end
50
+
51
+ state :single_comment do
52
+ rule %r/.*?$/, Comment::Single, :pop!
53
+ end
54
+
55
+ state :multi_comment do
56
+ rule %r/.*?\n/, Comment::Multiline, :pop!
57
+ end
58
+
59
+ state :import do
60
+ rule %r/[ \t]+/, Text
61
+ rule %r/\S+/, Str
62
+ rule %r/\n/, Text, :pop!
63
+ end
64
+
65
+ state :old_style_attr do
66
+ mixin :attr_common
67
+ rule(//) { pop!; push :value }
68
+ end
69
+
70
+ state :end_section do
71
+ rule(/\n/) { token Text; reset_stack }
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,172 @@
1
+ # -*- coding: utf-8 #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Scala < RegexLexer
7
+ title "Scala"
8
+ desc "The Scala programming language (scala-lang.org)"
9
+ tag 'scala'
10
+ aliases 'scala'
11
+ filenames '*.scala', '*.sbt'
12
+
13
+ mimetypes 'text/x-scala', 'application/x-scala'
14
+
15
+ # As documented in the ENBF section of the scala specification
16
+ # https://scala-lang.org/files/archive/spec/2.13/13-syntax-summary.html
17
+ # https://en.wikipedia.org/wiki/Unicode_character_property#General_Category
18
+ whitespace = /\p{Space}/
19
+ letter = /[\p{L}$_]/
20
+ upper = /[\p{Lu}$_]/
21
+ digits = /[0-9]/
22
+ parens = /[(){}\[\]]/
23
+ delims = %r([‘’".;,])
24
+
25
+ # negative lookahead to filter out other classes
26
+ op = %r(
27
+ (?!#{whitespace}|#{letter}|#{digits}|#{parens}|#{delims})
28
+ [-!#%&*/:?@\\^\p{Sm}\p{So}]
29
+ )x
30
+ # manually removed +<=>|~ from regexp because they're in property Sm
31
+ # pp CHRS:(0x00..0x7f).map(&:chr).grep(/\p{Sm}/)
32
+
33
+ idrest = %r(#{letter}(?:#{letter}|#{digits})*(?:(?<=_)#{op}+)?)x
34
+
35
+ keywords = %w(
36
+ abstract case catch def do else extends final finally for forSome
37
+ if implicit lazy match new override private protected requires return
38
+ sealed super this throw try val var while with yield
39
+ )
40
+
41
+ state :root do
42
+ rule %r/(class|trait|object)(\s+)/ do
43
+ groups Keyword, Text
44
+ push :class
45
+ end
46
+ rule %r/'#{idrest}(?!')/, Str::Symbol
47
+ rule %r/[^\S\n]+/, Text
48
+
49
+ rule %r(//.*), Comment::Single
50
+ rule %r(/\*), Comment::Multiline, :comment
51
+
52
+ rule %r/@#{idrest}/, Name::Decorator
53
+
54
+ rule %r/(def)(\s+)(#{idrest}|#{op}+|`[^`]+`)(\s*)/ do
55
+ groups Keyword, Text, Name::Function, Text
56
+ end
57
+
58
+ rule %r/(val)(\s+)(#{idrest}|#{op}+|`[^`]+`)(\s*)/ do
59
+ groups Keyword, Text, Name::Variable, Text
60
+ end
61
+
62
+ rule %r/(this)(\n*)(\.)(#{idrest})/ do
63
+ groups Keyword, Text, Operator, Name::Property
64
+ end
65
+
66
+ rule %r/(#{idrest}|_)(\n*)(\.)(#{idrest})/ do
67
+ groups Name::Variable, Text, Operator, Name::Property
68
+ end
69
+
70
+ rule %r/#{upper}#{idrest}\b/, Name::Class
71
+
72
+ rule %r/(#{idrest})(#{whitespace}*)(\()/ do
73
+ groups Name::Function, Text, Operator
74
+ end
75
+
76
+ rule %r/(\.)(#{idrest})/ do
77
+ groups Operator, Name::Property
78
+ end
79
+
80
+ rule %r(
81
+ (#{keywords.join("|")})\b|
82
+ (<[%:-]|=>|>:|[#=@_\u21D2\u2190])(\b|(?=\s)|$)
83
+ )x, Keyword
84
+ rule %r/:(?!#{op})/, Keyword, :type
85
+ rule %r/(true|false|null)\b/, Keyword::Constant
86
+ rule %r/(import|package)(\s+)/ do
87
+ groups Keyword, Text
88
+ push :import
89
+ end
90
+
91
+ rule %r/(type)(\s+)/ do
92
+ groups Keyword, Text
93
+ push :type
94
+ end
95
+
96
+ rule %r/""".*?"""(?!")/m, Str
97
+ rule %r/"(\\\\|\\"|[^"])*"/, Str
98
+ rule %r/'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'/, Str::Char
99
+
100
+ rule idrest, Name
101
+ rule %r/`[^`]+`/, Name
102
+
103
+ rule %r/\[/, Operator, :typeparam
104
+ rule %r/[\(\)\{\};,.#]/, Operator
105
+ rule %r/#{op}+/, Operator
106
+
107
+ rule %r/([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?/, Num::Float
108
+ rule %r/([0-9][0-9]*[fFdD])/, Num::Float
109
+ rule %r/0x[0-9a-fA-F]+/, Num::Hex
110
+ rule %r/[0-9]+L?/, Num::Integer
111
+ rule %r/\n/, Text
112
+ end
113
+
114
+ state :class do
115
+ rule %r/(#{idrest}|#{op}+|`[^`]+`)(\s*)(\[)/ do
116
+ groups Name::Class, Text, Operator
117
+ push :typeparam
118
+ end
119
+
120
+ rule %r/\s+/, Text
121
+ rule %r/{/, Operator, :pop!
122
+ rule %r/\(/, Operator, :pop!
123
+ rule %r(//.*), Comment::Single, :pop!
124
+ rule %r(#{idrest}|#{op}+|`[^`]+`), Name::Class, :pop!
125
+ end
126
+
127
+ state :type do
128
+ rule %r/\s+/, Text
129
+ rule %r/<[%:]|>:|[#_\u21D2]|forSome|type/, Keyword
130
+ rule %r/([,\);}]|=>|=)(\s*)/ do
131
+ groups Operator, Text
132
+ pop!
133
+ end
134
+ rule %r/[\(\{]/, Operator, :type
135
+
136
+ typechunk = /(?:#{idrest}|#{op}+\`[^`]+`)/
137
+ rule %r/(#{typechunk}(?:\.#{typechunk})*)(\s*)(\[)/ do
138
+ groups Keyword::Type, Text, Operator
139
+ pop!
140
+ push :typeparam
141
+ end
142
+
143
+ rule %r/(#{typechunk}(?:\.#{typechunk})*)(\s*)$/ do
144
+ groups Keyword::Type, Text
145
+ pop!
146
+ end
147
+
148
+ rule %r(//.*), Comment::Single, :pop!
149
+ rule %r/\.|#{idrest}|#{op}+|`[^`]+`/, Keyword::Type
150
+ end
151
+
152
+ state :typeparam do
153
+ rule %r/[\s,]+/, Text
154
+ rule %r/<[%:]|=>|>:|[#_\u21D2]|forSome|type/, Keyword
155
+ rule %r/([\]\)\}])/, Operator, :pop!
156
+ rule %r/[\(\[\{]/, Operator, :typeparam
157
+ rule %r/\.|#{idrest}|#{op}+|`[^`]+`/, Keyword::Type
158
+ end
159
+
160
+ state :comment do
161
+ rule %r([^/\*]+), Comment::Multiline
162
+ rule %r(/\*), Comment::Multiline, :comment
163
+ rule %r(\*/), Comment::Multiline, :pop!
164
+ rule %r([*/]), Comment::Multiline
165
+ end
166
+
167
+ state :import do
168
+ rule %r((#{idrest}|\.)+), Name::Namespace, :pop!
169
+ end
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,113 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Scheme < RegexLexer
7
+ title "Scheme"
8
+ desc "The Scheme variant of Lisp"
9
+
10
+ tag 'scheme'
11
+ filenames '*.scm', '*.ss'
12
+ mimetypes 'text/x-scheme', 'application/x-scheme'
13
+
14
+ def self.keywords
15
+ @keywords ||= Set.new %w(
16
+ lambda define if else cond and or case let let* letrec begin
17
+ do delay set! => quote quasiquote unquote unquote-splicing
18
+ define-syntax let-syntax letrec-syntax syntax-rules
19
+ )
20
+ end
21
+
22
+ def self.builtins
23
+ @builtins ||= Set.new %w(
24
+ * + - / < <= = > >= abs acos angle append apply asin
25
+ assoc assq assv atan boolean? caaaar caaadr caaar caadar
26
+ caaddr caadr caar cadaar cadadr cadar caddar cadddr caddr
27
+ cadr call-with-current-continuation call-with-input-file
28
+ call-with-output-file call-with-values call/cc car cdaaar cdaadr
29
+ cdaar cdadar cdaddr cdadr cdar cddaar cddadr cddar cdddar cddddr
30
+ cdddr cddr cdr ceiling char->integer char-alphabetic? char-ci<=?
31
+ char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase
32
+ char-lower-case? char-numeric? char-ready? char-upcase
33
+ char-upper-case? char-whitespace? char<=? char<? char=? char>=?
34
+ char>? char? close-input-port close-output-port complex? cons
35
+ cos current-input-port current-output-port denominator
36
+ display dynamic-wind eof-object? eq? equal? eqv? eval
37
+ even? exact->inexact exact? exp expt floor for-each force gcd
38
+ imag-part inexact->exact inexact? input-port? integer->char
39
+ integer? interaction-environment lcm length list list->string
40
+ list->vector list-ref list-tail list? load log magnitude
41
+ make-polar make-rectangular make-string make-vector map
42
+ max member memq memv min modulo negative? newline not
43
+ null-environment null? number->string number? numerator odd?
44
+ open-input-file open-output-file output-port? pair? peek-char
45
+ port? positive? procedure? quotient rational? rationalize
46
+ read read-char real-part real? remainder reverse round
47
+ scheme-report-environment set-car! set-cdr! sin sqrt string
48
+ string->list string->number string->symbol string-append
49
+ string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>?
50
+ string-copy string-fill! string-length string-ref
51
+ string-set! string<=? string<? string=? string>=?
52
+ string>? string? substring symbol->string symbol?
53
+ tan transcript-off transcript-on truncate values vector
54
+ vector->list vector-fill! vector-length vector-ref
55
+ vector-set! vector? with-input-from-file with-output-to-file
56
+ write write-char zero?
57
+ )
58
+ end
59
+
60
+ id = /[a-z0-9!$\%&*+,\/:<=>?@^_~|-]+/i
61
+
62
+ state :root do
63
+ # comments
64
+ rule %r/;.*$/, Comment::Single
65
+ rule %r/\s+/m, Text
66
+ rule %r/-?\d+\.\d+/, Num::Float
67
+ rule %r/-?\d+/, Num::Integer
68
+
69
+ # Racket infinitites
70
+ rule %r/[+-]inf[.][f0]/, Num
71
+
72
+ rule %r/#b[01]+/, Num::Bin
73
+ rule %r/#o[0-7]+/, Num::Oct
74
+ rule %r/#d[0-9]+/, Num::Integer
75
+ rule %r/#x[0-9a-f]+/i, Num::Hex
76
+ rule %r/#[ei][\d.]+/, Num::Other
77
+
78
+ rule %r/"(\\\\|\\"|[^"])*"/, Str
79
+ rule %r/'#{id}/i, Str::Symbol
80
+ rule %r/#\\([()\/'"._!\$%& ?=+-]{1}|[a-z0-9]+)/i,
81
+ Str::Char
82
+ rule %r/#t|#f/, Name::Constant
83
+ rule %r/(?:'|#|`|,@|,|\.)/, Operator
84
+
85
+ rule %r/(['#])(\s*)(\()/m do
86
+ groups Str::Symbol, Text, Punctuation
87
+ end
88
+
89
+ rule %r/\(|\[/, Punctuation, :command
90
+ rule %r/\)|\]/, Punctuation
91
+
92
+ rule id, Name::Variable
93
+ end
94
+
95
+ state :command do
96
+ rule id, Name::Function do |m|
97
+ if self.class.keywords.include? m[0]
98
+ token Keyword
99
+ elsif self.class.builtins.include? m[0]
100
+ token Name::Builtin
101
+ else
102
+ token Name::Function
103
+ end
104
+
105
+ pop!
106
+ end
107
+
108
+ rule(//) { pop! }
109
+ end
110
+
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,35 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ require_relative 'sass/common'
5
+
6
+ module Rouge
7
+ module Lexers
8
+ class Scss < SassCommon
9
+ title "SCSS"
10
+ desc "SCSS stylesheets (sass-lang.com)"
11
+ tag 'scss'
12
+ filenames '*.scss'
13
+ mimetypes 'text/x-scss'
14
+
15
+ state :root do
16
+ rule %r/\s+/, Text
17
+ rule %r(//.*?$), Comment::Single
18
+ rule %r(/[*].*?[*]/)m, Comment::Multiline
19
+ rule %r/@import\b/, Keyword, :value
20
+
21
+ mixin :content_common
22
+
23
+ rule(/(?=[^;{}][;}])/) { push :attribute }
24
+ rule(/(?=[^;{}:\[]+:[^a-z])/) { push :attribute }
25
+
26
+ rule(//) { push :selector }
27
+ end
28
+
29
+ state :end_section do
30
+ rule %r/\n/, Text
31
+ rule(/[;{}]/) { token Punctuation; reset_stack }
32
+ end
33
+ end
34
+ end
35
+ end