pygments.rb 2.3.1 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.rubocop.yml +7 -0
  4. data/CHANGELOG.adoc +4 -0
  5. data/README.adoc +1 -1
  6. data/bench.rb +1 -1
  7. data/lib/pygments/popen.rb +3 -7
  8. data/lib/pygments/version.rb +1 -1
  9. data/pygments.rb.gemspec +2 -2
  10. data/test/test_pygments.rb +0 -19
  11. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/AUTHORS +21 -1
  12. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/LICENSE +1 -1
  13. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/METADATA +19 -11
  14. data/vendor/pygments-main/Pygments-2.15.1.dist-info/RECORD +614 -0
  15. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/WHEEL +1 -1
  16. data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/entry_points.txt +0 -1
  17. data/vendor/pygments-main/bin/pygmentize +1 -1
  18. data/vendor/pygments-main/pygments/__init__.py +20 -22
  19. data/vendor/pygments-main/pygments/__main__.py +1 -1
  20. data/vendor/pygments-main/pygments/cmdline.py +74 -8
  21. data/vendor/pygments-main/pygments/console.py +1 -1
  22. data/vendor/pygments-main/pygments/filter.py +1 -1
  23. data/vendor/pygments-main/pygments/filters/__init__.py +6 -3
  24. data/vendor/pygments-main/pygments/formatter.py +41 -11
  25. data/vendor/pygments-main/pygments/formatters/__init__.py +21 -16
  26. data/vendor/pygments-main/pygments/formatters/_mapping.py +5 -65
  27. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  28. data/vendor/pygments-main/pygments/formatters/groff.py +170 -0
  29. data/vendor/pygments-main/pygments/formatters/html.py +54 -32
  30. data/vendor/pygments-main/pygments/formatters/img.py +9 -5
  31. data/vendor/pygments-main/pygments/formatters/irc.py +6 -33
  32. data/vendor/pygments-main/pygments/formatters/latex.py +24 -14
  33. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  34. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +1 -1
  35. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  36. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  37. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -3
  38. data/vendor/pygments-main/pygments/formatters/terminal256.py +2 -4
  39. data/vendor/pygments-main/pygments/lexer.py +101 -32
  40. data/vendor/pygments-main/pygments/lexers/__init__.py +50 -29
  41. data/vendor/pygments-main/pygments/lexers/_ada_builtins.py +103 -0
  42. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -1
  43. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -1
  44. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +2 -2
  45. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +21 -6
  46. data/vendor/pygments-main/pygments/lexers/_css_builtins.py +558 -0
  47. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +10 -0
  48. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/_lilypond_builtins.py +4932 -0
  50. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +11 -18
  51. data/vendor/pygments-main/pygments/lexers/_mapping.py +71 -82
  52. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +58 -4
  54. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +408 -1835
  56. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +70 -8
  57. data/vendor/pygments-main/pygments/lexers/_qlik_builtins.py +666 -0
  58. data/vendor/pygments-main/pygments/lexers/_scheme_builtins.py +1609 -0
  59. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +3 -3
  60. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +9 -18
  61. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +185 -94
  62. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +1 -1
  63. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  64. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -1
  65. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -1
  66. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  67. data/vendor/pygments-main/pygments/lexers/actionscript.py +15 -14
  68. data/vendor/pygments-main/pygments/lexers/ada.py +144 -0
  69. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  70. data/vendor/pygments-main/pygments/lexers/algebra.py +72 -9
  71. data/vendor/pygments-main/pygments/lexers/ambient.py +8 -7
  72. data/vendor/pygments-main/pygments/lexers/amdgpu.py +4 -3
  73. data/vendor/pygments-main/pygments/lexers/ampl.py +10 -8
  74. data/vendor/pygments-main/pygments/lexers/apdlexer.py +164 -20
  75. data/vendor/pygments-main/pygments/lexers/apl.py +6 -5
  76. data/vendor/pygments-main/pygments/lexers/archetype.py +23 -21
  77. data/vendor/pygments-main/pygments/lexers/arrow.py +10 -9
  78. data/vendor/pygments-main/pygments/lexers/arturo.py +250 -0
  79. data/vendor/pygments-main/pygments/lexers/asc.py +9 -5
  80. data/vendor/pygments-main/pygments/lexers/asm.py +68 -63
  81. data/vendor/pygments-main/pygments/lexers/automation.py +7 -5
  82. data/vendor/pygments-main/pygments/lexers/bare.py +20 -21
  83. data/vendor/pygments-main/pygments/lexers/basic.py +45 -41
  84. data/vendor/pygments-main/pygments/lexers/bdd.py +58 -0
  85. data/vendor/pygments-main/pygments/lexers/berry.py +99 -0
  86. data/vendor/pygments-main/pygments/lexers/bibtex.py +6 -6
  87. data/vendor/pygments-main/pygments/lexers/boa.py +4 -8
  88. data/vendor/pygments-main/pygments/lexers/business.py +18 -18
  89. data/vendor/pygments-main/pygments/lexers/c_cpp.py +80 -40
  90. data/vendor/pygments-main/pygments/lexers/c_like.py +21 -19
  91. data/vendor/pygments-main/pygments/lexers/capnproto.py +6 -8
  92. data/vendor/pygments-main/pygments/lexers/carbon.py +96 -0
  93. data/vendor/pygments-main/pygments/lexers/cddl.py +16 -33
  94. data/vendor/pygments-main/pygments/lexers/chapel.py +14 -9
  95. data/vendor/pygments-main/pygments/lexers/clean.py +3 -2
  96. data/vendor/pygments-main/pygments/lexers/comal.py +80 -0
  97. data/vendor/pygments-main/pygments/lexers/compiled.py +3 -2
  98. data/vendor/pygments-main/pygments/lexers/configs.py +235 -120
  99. data/vendor/pygments-main/pygments/lexers/console.py +5 -4
  100. data/vendor/pygments-main/pygments/lexers/cplint.py +44 -0
  101. data/vendor/pygments-main/pygments/lexers/crystal.py +22 -23
  102. data/vendor/pygments-main/pygments/lexers/csound.py +19 -17
  103. data/vendor/pygments-main/pygments/lexers/css.py +67 -159
  104. data/vendor/pygments-main/pygments/lexers/d.py +15 -12
  105. data/vendor/pygments-main/pygments/lexers/dalvik.py +14 -11
  106. data/vendor/pygments-main/pygments/lexers/data.py +119 -49
  107. data/vendor/pygments-main/pygments/lexers/dax.py +136 -0
  108. data/vendor/pygments-main/pygments/lexers/devicetree.py +9 -8
  109. data/vendor/pygments-main/pygments/lexers/diff.py +23 -19
  110. data/vendor/pygments-main/pygments/lexers/dotnet.py +216 -81
  111. data/vendor/pygments-main/pygments/lexers/dsls.py +86 -64
  112. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -15
  113. data/vendor/pygments-main/pygments/lexers/ecl.py +46 -38
  114. data/vendor/pygments-main/pygments/lexers/eiffel.py +15 -10
  115. data/vendor/pygments-main/pygments/lexers/elm.py +12 -8
  116. data/vendor/pygments-main/pygments/lexers/elpi.py +165 -0
  117. data/vendor/pygments-main/pygments/lexers/email.py +21 -39
  118. data/vendor/pygments-main/pygments/lexers/erlang.py +21 -22
  119. data/vendor/pygments-main/pygments/lexers/esoteric.py +28 -30
  120. data/vendor/pygments-main/pygments/lexers/ezhil.py +10 -9
  121. data/vendor/pygments-main/pygments/lexers/factor.py +104 -83
  122. data/vendor/pygments-main/pygments/lexers/fantom.py +31 -29
  123. data/vendor/pygments-main/pygments/lexers/felix.py +18 -14
  124. data/vendor/pygments-main/pygments/lexers/fift.py +67 -0
  125. data/vendor/pygments-main/pygments/lexers/floscript.py +7 -7
  126. data/vendor/pygments-main/pygments/lexers/forth.py +8 -6
  127. data/vendor/pygments-main/pygments/lexers/fortran.py +16 -11
  128. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  129. data/vendor/pygments-main/pygments/lexers/freefem.py +7 -10
  130. data/vendor/pygments-main/pygments/lexers/func.py +108 -0
  131. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  132. data/vendor/pygments-main/pygments/lexers/futhark.py +12 -17
  133. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +1 -2
  134. data/vendor/pygments-main/pygments/lexers/gdscript.py +76 -233
  135. data/vendor/pygments-main/pygments/lexers/go.py +12 -14
  136. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +22 -26
  137. data/vendor/pygments-main/pygments/lexers/graph.py +36 -15
  138. data/vendor/pygments-main/pygments/lexers/graphics.py +37 -38
  139. data/vendor/pygments-main/pygments/lexers/graphviz.py +2 -1
  140. data/vendor/pygments-main/pygments/lexers/gsql.py +39 -27
  141. data/vendor/pygments-main/pygments/lexers/haskell.py +73 -71
  142. data/vendor/pygments-main/pygments/lexers/haxe.py +13 -11
  143. data/vendor/pygments-main/pygments/lexers/hdl.py +31 -34
  144. data/vendor/pygments-main/pygments/lexers/hexdump.py +21 -21
  145. data/vendor/pygments-main/pygments/lexers/html.py +11 -19
  146. data/vendor/pygments-main/pygments/lexers/idl.py +10 -5
  147. data/vendor/pygments-main/pygments/lexers/igor.py +3 -2
  148. data/vendor/pygments-main/pygments/lexers/inferno.py +9 -8
  149. data/vendor/pygments-main/pygments/lexers/installers.py +39 -33
  150. data/vendor/pygments-main/pygments/lexers/int_fiction.py +35 -20
  151. data/vendor/pygments-main/pygments/lexers/iolang.py +9 -9
  152. data/vendor/pygments-main/pygments/lexers/j.py +20 -13
  153. data/vendor/pygments-main/pygments/lexers/javascript.py +183 -149
  154. data/vendor/pygments-main/pygments/lexers/jmespath.py +68 -0
  155. data/vendor/pygments-main/pygments/lexers/jslt.py +4 -3
  156. data/vendor/pygments-main/pygments/lexers/jsonnet.py +168 -0
  157. data/vendor/pygments-main/pygments/lexers/julia.py +44 -32
  158. data/vendor/pygments-main/pygments/lexers/jvm.py +161 -140
  159. data/vendor/pygments-main/pygments/lexers/kuin.py +93 -59
  160. data/vendor/pygments-main/pygments/lexers/lilypond.py +226 -0
  161. data/vendor/pygments-main/pygments/lexers/lisp.py +244 -107
  162. data/vendor/pygments-main/pygments/lexers/macaulay2.py +1739 -0
  163. data/vendor/pygments-main/pygments/lexers/make.py +21 -16
  164. data/vendor/pygments-main/pygments/lexers/markup.py +752 -11
  165. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  166. data/vendor/pygments-main/pygments/lexers/matlab.py +18 -3
  167. data/vendor/pygments-main/pygments/lexers/maxima.py +85 -0
  168. data/vendor/pygments-main/pygments/lexers/meson.py +10 -25
  169. data/vendor/pygments-main/pygments/lexers/mime.py +2 -2
  170. data/vendor/pygments-main/pygments/lexers/minecraft.py +394 -0
  171. data/vendor/pygments-main/pygments/lexers/mips.py +128 -0
  172. data/vendor/pygments-main/pygments/lexers/ml.py +9 -6
  173. data/vendor/pygments-main/pygments/lexers/modeling.py +12 -8
  174. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -2
  175. data/vendor/pygments-main/pygments/lexers/monte.py +3 -2
  176. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -1
  177. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  178. data/vendor/pygments-main/pygments/lexers/nimrod.py +62 -20
  179. data/vendor/pygments-main/pygments/lexers/nit.py +3 -2
  180. data/vendor/pygments-main/pygments/lexers/nix.py +5 -5
  181. data/vendor/pygments-main/pygments/lexers/oberon.py +2 -2
  182. data/vendor/pygments-main/pygments/lexers/objective.py +6 -4
  183. data/vendor/pygments-main/pygments/lexers/ooc.py +3 -2
  184. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/parasail.py +3 -2
  186. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -21
  187. data/vendor/pygments-main/pygments/lexers/pascal.py +196 -198
  188. data/vendor/pygments-main/pygments/lexers/pawn.py +1 -1
  189. data/vendor/pygments-main/pygments/lexers/perl.py +17 -15
  190. data/vendor/pygments-main/pygments/lexers/phix.py +364 -0
  191. data/vendor/pygments-main/pygments/lexers/php.py +35 -20
  192. data/vendor/pygments-main/pygments/lexers/pointless.py +3 -2
  193. data/vendor/pygments-main/pygments/lexers/pony.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/praat.py +41 -38
  195. data/vendor/pygments-main/pygments/lexers/procfile.py +2 -3
  196. data/vendor/pygments-main/pygments/lexers/prolog.py +7 -8
  197. data/vendor/pygments-main/pygments/lexers/promql.py +5 -12
  198. data/vendor/pygments-main/pygments/lexers/python.py +145 -119
  199. data/vendor/pygments-main/pygments/lexers/q.py +188 -0
  200. data/vendor/pygments-main/pygments/lexers/qlik.py +117 -0
  201. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -1
  202. data/vendor/pygments-main/pygments/lexers/r.py +4 -4
  203. data/vendor/pygments-main/pygments/lexers/rdf.py +3 -3
  204. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -12
  205. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  206. data/vendor/pygments-main/pygments/lexers/ride.py +3 -2
  207. data/vendor/pygments-main/pygments/lexers/rita.py +43 -0
  208. data/vendor/pygments-main/pygments/lexers/rnc.py +3 -2
  209. data/vendor/pygments-main/pygments/lexers/roboconf.py +3 -3
  210. data/vendor/pygments-main/pygments/lexers/robotframework.py +6 -5
  211. data/vendor/pygments-main/pygments/lexers/ruby.py +24 -24
  212. data/vendor/pygments-main/pygments/lexers/rust.py +3 -2
  213. data/vendor/pygments-main/pygments/lexers/sas.py +2 -2
  214. data/vendor/pygments-main/pygments/lexers/savi.py +170 -0
  215. data/vendor/pygments-main/pygments/lexers/scdoc.py +4 -7
  216. data/vendor/pygments-main/pygments/lexers/scripting.py +24 -21
  217. data/vendor/pygments-main/pygments/lexers/sgf.py +6 -6
  218. data/vendor/pygments-main/pygments/lexers/shell.py +29 -21
  219. data/vendor/pygments-main/pygments/lexers/sieve.py +14 -4
  220. data/vendor/pygments-main/pygments/lexers/slash.py +1 -1
  221. data/vendor/pygments-main/pygments/lexers/smalltalk.py +5 -3
  222. data/vendor/pygments-main/pygments/lexers/smithy.py +5 -6
  223. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  224. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  225. data/vendor/pygments-main/pygments/lexers/solidity.py +3 -7
  226. data/vendor/pygments-main/pygments/lexers/sophia.py +103 -0
  227. data/vendor/pygments-main/pygments/lexers/special.py +2 -5
  228. data/vendor/pygments-main/pygments/lexers/spice.py +71 -0
  229. data/vendor/pygments-main/pygments/lexers/sql.py +212 -17
  230. data/vendor/pygments-main/pygments/lexers/srcinfo.py +62 -0
  231. data/vendor/pygments-main/pygments/lexers/stata.py +4 -3
  232. data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -3
  233. data/vendor/pygments-main/pygments/lexers/tal.py +74 -0
  234. data/vendor/pygments-main/pygments/lexers/tcl.py +21 -16
  235. data/vendor/pygments-main/pygments/lexers/teal.py +9 -8
  236. data/vendor/pygments-main/pygments/lexers/templates.py +62 -29
  237. data/vendor/pygments-main/pygments/lexers/teraterm.py +12 -20
  238. data/vendor/pygments-main/pygments/lexers/testing.py +6 -2
  239. data/vendor/pygments-main/pygments/lexers/text.py +3 -2
  240. data/vendor/pygments-main/pygments/lexers/textedit.py +41 -7
  241. data/vendor/pygments-main/pygments/lexers/textfmts.py +7 -5
  242. data/vendor/pygments-main/pygments/lexers/theorem.py +42 -36
  243. data/vendor/pygments-main/pygments/lexers/thingsdb.py +2 -4
  244. data/vendor/pygments-main/pygments/lexers/tlb.py +57 -0
  245. data/vendor/pygments-main/pygments/lexers/tnt.py +3 -4
  246. data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -4
  247. data/vendor/pygments-main/pygments/lexers/typoscript.py +2 -3
  248. data/vendor/pygments-main/pygments/lexers/ul4.py +267 -0
  249. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -1
  250. data/vendor/pygments-main/pygments/lexers/urbi.py +4 -4
  251. data/vendor/pygments-main/pygments/lexers/usd.py +2 -1
  252. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  253. data/vendor/pygments-main/pygments/lexers/verification.py +4 -3
  254. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  255. data/vendor/pygments-main/pygments/lexers/webassembly.py +5 -5
  256. data/vendor/pygments-main/pygments/lexers/webidl.py +2 -1
  257. data/vendor/pygments-main/pygments/lexers/webmisc.py +90 -71
  258. data/vendor/pygments-main/pygments/lexers/wgsl.py +407 -0
  259. data/vendor/pygments-main/pygments/lexers/whiley.py +2 -1
  260. data/vendor/pygments-main/pygments/lexers/wowtoc.py +120 -0
  261. data/vendor/pygments-main/pygments/lexers/wren.py +99 -0
  262. data/vendor/pygments-main/pygments/lexers/x10.py +5 -6
  263. data/vendor/pygments-main/pygments/lexers/xorg.py +3 -2
  264. data/vendor/pygments-main/pygments/lexers/yang.py +6 -5
  265. data/vendor/pygments-main/pygments/lexers/zig.py +3 -2
  266. data/vendor/pygments-main/pygments/modeline.py +1 -1
  267. data/vendor/pygments-main/pygments/plugin.py +28 -9
  268. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  269. data/vendor/pygments-main/pygments/scanner.py +2 -2
  270. data/vendor/pygments-main/pygments/sphinxext.py +63 -1
  271. data/vendor/pygments-main/pygments/style.py +7 -1
  272. data/vendor/pygments-main/pygments/styles/__init__.py +19 -5
  273. data/vendor/pygments-main/pygments/styles/abap.py +2 -2
  274. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  275. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  276. data/vendor/pygments-main/pygments/styles/arduino.py +2 -3
  277. data/vendor/pygments-main/pygments/styles/autumn.py +1 -3
  278. data/vendor/pygments-main/pygments/styles/borland.py +1 -3
  279. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  280. data/vendor/pygments-main/pygments/styles/colorful.py +1 -3
  281. data/vendor/pygments-main/pygments/styles/default.py +13 -14
  282. data/vendor/pygments-main/pygments/styles/dracula.py +102 -0
  283. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  284. data/vendor/pygments-main/pygments/styles/friendly.py +1 -2
  285. data/vendor/pygments-main/pygments/styles/friendly_grayscale.py +75 -0
  286. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  287. data/vendor/pygments-main/pygments/styles/gh_dark.py +107 -0
  288. data/vendor/pygments-main/pygments/styles/gruvbox.py +4 -2
  289. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  290. data/vendor/pygments-main/pygments/styles/inkpot.py +3 -2
  291. data/vendor/pygments-main/pygments/styles/lilypond.py +56 -0
  292. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -3
  293. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  294. data/vendor/pygments-main/pygments/styles/material.py +1 -2
  295. data/vendor/pygments-main/pygments/styles/monokai.py +3 -3
  296. data/vendor/pygments-main/pygments/styles/murphy.py +1 -3
  297. data/vendor/pygments-main/pygments/styles/native.py +11 -11
  298. data/vendor/pygments-main/pygments/styles/nord.py +150 -0
  299. data/vendor/pygments-main/pygments/styles/onedark.py +59 -0
  300. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -6
  301. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -6
  302. data/vendor/pygments-main/pygments/styles/pastie.py +1 -3
  303. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  304. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +3 -3
  305. data/vendor/pygments-main/pygments/styles/rrt.py +3 -2
  306. data/vendor/pygments-main/pygments/styles/sas.py +2 -4
  307. data/vendor/pygments-main/pygments/styles/solarized.py +1 -1
  308. data/vendor/pygments-main/pygments/styles/staroffice.py +26 -0
  309. data/vendor/pygments-main/pygments/styles/stata_dark.py +4 -6
  310. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  311. data/vendor/pygments-main/pygments/styles/tango.py +2 -3
  312. data/vendor/pygments-main/pygments/styles/trac.py +1 -3
  313. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  314. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  315. data/vendor/pygments-main/pygments/styles/xcode.py +1 -3
  316. data/vendor/pygments-main/pygments/styles/zenburn.py +4 -6
  317. data/vendor/pygments-main/pygments/token.py +2 -1
  318. data/vendor/pygments-main/pygments/unistring.py +4 -6
  319. data/vendor/pygments-main/pygments/util.py +27 -5
  320. metadata +59 -14
  321. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +0 -524
  322. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/INSTALLER +0 -0
  323. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/REQUESTED +0 -0
  324. /data/vendor/pygments-main/{Pygments-2.10.0.dist-info → Pygments-2.15.1.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@
4
4
 
5
5
  Lexers for Lispy languages.
6
6
 
7
- :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
8
8
  :license: BSD, see LICENSE for details.
9
9
  """
10
10
 
@@ -12,10 +12,12 @@ import re
12
12
 
13
13
  from pygments.lexer import RegexLexer, include, bygroups, words, default
14
14
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
15
- Number, Punctuation, Literal, Error
15
+ Number, Punctuation, Literal, Error, Whitespace
16
16
 
17
17
  from pygments.lexers.python import PythonLexer
18
18
 
19
+ from pygments.lexers._scheme_builtins import scheme_keywords, scheme_builtins
20
+
19
21
  __all__ = ['SchemeLexer', 'CommonLispLexer', 'HyLexer', 'RacketLexer',
20
22
  'NewLispLexer', 'EmacsLispLexer', 'ShenLexer', 'CPSALexer',
21
23
  'XtlangLexer', 'FennelLexer']
@@ -23,10 +25,7 @@ __all__ = ['SchemeLexer', 'CommonLispLexer', 'HyLexer', 'RacketLexer',
23
25
 
24
26
  class SchemeLexer(RegexLexer):
25
27
  """
26
- A Scheme lexer, parsing a stream and outputting the tokens
27
- needed to highlight scheme code.
28
- This lexer could be most probably easily subclassed to parse
29
- other LISP-Dialects like Common Lisp, Emacs Lisp or AutoLisp.
28
+ A Scheme lexer.
30
29
 
31
30
  This parser is checked with pastes from the LISP pastebin
32
31
  at http://paste.lisp.org/ to cover as much syntax as possible.
@@ -36,119 +35,229 @@ class SchemeLexer(RegexLexer):
36
35
  .. versionadded:: 0.6
37
36
  """
38
37
  name = 'Scheme'
38
+ url = 'http://www.scheme-reports.org/'
39
39
  aliases = ['scheme', 'scm']
40
40
  filenames = ['*.scm', '*.ss']
41
41
  mimetypes = ['text/x-scheme', 'application/x-scheme']
42
42
 
43
- # list of known keywords and builtins taken form vim 6.4 scheme.vim
44
- # syntax file.
45
- keywords = (
46
- 'lambda', 'define', 'if', 'else', 'cond', 'and', 'or', 'case', 'let',
47
- 'let*', 'letrec', 'begin', 'do', 'delay', 'set!', '=>', 'quote',
48
- 'quasiquote', 'unquote', 'unquote-splicing', 'define-syntax',
49
- 'let-syntax', 'letrec-syntax', 'syntax-rules'
50
- )
51
- builtins = (
52
- '*', '+', '-', '/', '<', '<=', '=', '>', '>=', 'abs', 'acos', 'angle',
53
- 'append', 'apply', 'asin', 'assoc', 'assq', 'assv', 'atan',
54
- 'boolean?', 'caaaar', 'caaadr', 'caaar', 'caadar', 'caaddr', 'caadr',
55
- 'caar', 'cadaar', 'cadadr', 'cadar', 'caddar', 'cadddr', 'caddr',
56
- 'cadr', 'call-with-current-continuation', 'call-with-input-file',
57
- 'call-with-output-file', 'call-with-values', 'call/cc', 'car',
58
- 'cdaaar', 'cdaadr', 'cdaar', 'cdadar', 'cdaddr', 'cdadr', 'cdar',
59
- 'cddaar', 'cddadr', 'cddar', 'cdddar', 'cddddr', 'cdddr', 'cddr',
60
- 'cdr', 'ceiling', 'char->integer', 'char-alphabetic?', 'char-ci<=?',
61
- 'char-ci<?', 'char-ci=?', 'char-ci>=?', 'char-ci>?', 'char-downcase',
62
- 'char-lower-case?', 'char-numeric?', 'char-ready?', 'char-upcase',
63
- 'char-upper-case?', 'char-whitespace?', 'char<=?', 'char<?', 'char=?',
64
- 'char>=?', 'char>?', 'char?', 'close-input-port', 'close-output-port',
65
- 'complex?', 'cons', 'cos', 'current-input-port', 'current-output-port',
66
- 'denominator', 'display', 'dynamic-wind', 'eof-object?', 'eq?',
67
- 'equal?', 'eqv?', 'eval', 'even?', 'exact->inexact', 'exact?', 'exp',
68
- 'expt', 'floor', 'for-each', 'force', 'gcd', 'imag-part',
69
- 'inexact->exact', 'inexact?', 'input-port?', 'integer->char',
70
- 'integer?', 'interaction-environment', 'lcm', 'length', 'list',
71
- 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?',
72
- 'load', 'log', 'magnitude', 'make-polar', 'make-rectangular',
73
- 'make-string', 'make-vector', 'map', 'max', 'member', 'memq', 'memv',
74
- 'min', 'modulo', 'negative?', 'newline', 'not', 'null-environment',
75
- 'null?', 'number->string', 'number?', 'numerator', 'odd?',
76
- 'open-input-file', 'open-output-file', 'output-port?', 'pair?',
77
- 'peek-char', 'port?', 'positive?', 'procedure?', 'quotient',
78
- 'rational?', 'rationalize', 'read', 'read-char', 'real-part', 'real?',
79
- 'remainder', 'reverse', 'round', 'scheme-report-environment',
80
- 'set-car!', 'set-cdr!', 'sin', 'sqrt', 'string', 'string->list',
81
- 'string->number', 'string->symbol', 'string-append', 'string-ci<=?',
82
- 'string-ci<?', 'string-ci=?', 'string-ci>=?', 'string-ci>?',
83
- 'string-copy', 'string-fill!', 'string-length', 'string-ref',
84
- 'string-set!', 'string<=?', 'string<?', 'string=?', 'string>=?',
85
- 'string>?', 'string?', 'substring', 'symbol->string', 'symbol?',
86
- 'tan', 'transcript-off', 'transcript-on', 'truncate', 'values',
87
- 'vector', 'vector->list', 'vector-fill!', 'vector-length',
88
- 'vector-ref', 'vector-set!', 'vector?', 'with-input-from-file',
89
- 'with-output-to-file', 'write', 'write-char', 'zero?'
90
- )
43
+ flags = re.DOTALL | re.MULTILINE
91
44
 
92
45
  # valid names for identifiers
93
46
  # well, names can only not consist fully of numbers
94
47
  # but this should be good enough for now
95
48
  valid_name = r'[\w!$%&*+,/:<=>?@^~|-]+'
96
49
 
50
+ # Use within verbose regexes
51
+ token_end = r'''
52
+ (?=
53
+ \s # whitespace
54
+ | ; # comment
55
+ | \#[;|!] # fancy comments
56
+ | [)\]] # end delimiters
57
+ | $ # end of file
58
+ )
59
+ '''
60
+
61
+ # Recognizing builtins.
62
+ def get_tokens_unprocessed(self, text):
63
+ for index, token, value in super().get_tokens_unprocessed(text):
64
+ if token is Name.Function or token is Name.Variable:
65
+ if value in scheme_keywords:
66
+ yield index, Keyword, value
67
+ elif value in scheme_builtins:
68
+ yield index, Name.Builtin, value
69
+ else:
70
+ yield index, token, value
71
+ else:
72
+ yield index, token, value
73
+
74
+ # Scheme has funky syntactic rules for numbers. These are all
75
+ # valid number literals: 5.0e55|14, 14/13, -1+5j, +1@5, #b110,
76
+ # #o#Iinf.0-nan.0i. This is adapted from the formal grammar given
77
+ # in http://www.r6rs.org/final/r6rs.pdf, section 4.2.1. Take a
78
+ # deep breath ...
79
+
80
+ # It would be simpler if we could just not bother about invalid
81
+ # numbers like #b35. But we cannot parse 'abcdef' without #x as a
82
+ # number.
83
+
84
+ number_rules = {}
85
+ for base in (2, 8, 10, 16):
86
+ if base == 2:
87
+ digit = r'[01]'
88
+ radix = r'( \#[bB] )'
89
+ elif base == 8:
90
+ digit = r'[0-7]'
91
+ radix = r'( \#[oO] )'
92
+ elif base == 10:
93
+ digit = r'[0-9]'
94
+ radix = r'( (\#[dD])? )'
95
+ elif base == 16:
96
+ digit = r'[0-9a-fA-F]'
97
+ radix = r'( \#[xX] )'
98
+
99
+ # Radix, optional exactness indicator.
100
+ prefix = rf'''
101
+ (
102
+ {radix} (\#[iIeE])?
103
+ | \#[iIeE] {radix}
104
+ )
105
+ '''
106
+
107
+ # Simple unsigned number or fraction.
108
+ ureal = rf'''
109
+ (
110
+ {digit}+
111
+ ( / {digit}+ )?
112
+ )
113
+ '''
114
+
115
+ # Add decimal numbers.
116
+ if base == 10:
117
+ decimal = r'''
118
+ (
119
+ # Decimal part
120
+ (
121
+ [0-9]+ ([.][0-9]*)?
122
+ | [.][0-9]+
123
+ )
124
+
125
+ # Optional exponent
126
+ (
127
+ [eEsSfFdDlL] [+-]? [0-9]+
128
+ )?
129
+
130
+ # Optional mantissa width
131
+ (
132
+ \|[0-9]+
133
+ )?
134
+ )
135
+ '''
136
+ ureal = rf'''
137
+ (
138
+ {decimal} (?!/)
139
+ | {ureal}
140
+ )
141
+ '''
142
+
143
+ naninf = r'(nan.0|inf.0)'
144
+
145
+ real = rf'''
146
+ (
147
+ [+-] {naninf} # Sign mandatory
148
+ | [+-]? {ureal} # Sign optional
149
+ )
150
+ '''
151
+
152
+ complex_ = rf'''
153
+ (
154
+ {real}? [+-] ({naninf}|{ureal})? i
155
+ | {real} (@ {real})?
156
+
157
+ )
158
+ '''
159
+
160
+ num = rf'''(?x)
161
+ (
162
+ {prefix}
163
+ {complex_}
164
+ )
165
+ # Need to ensure we have a full token. 1+ is not a
166
+ # number followed by something else, but a function
167
+ # name.
168
+ {token_end}
169
+ '''
170
+
171
+ number_rules[base] = num
172
+
173
+ # If you have a headache now, say thanks to RnRS editors.
174
+
175
+ # Doing it this way is simpler than splitting the number(10)
176
+ # regex in a floating-point and a no-floating-point version.
177
+ def decimal_cb(self, match):
178
+ if '.' in match.group():
179
+ token_type = Number.Float # includes [+-](inf|nan).0
180
+ else:
181
+ token_type = Number.Integer
182
+ yield match.start(), token_type, match.group()
183
+
184
+ # --
185
+
186
+ # The 'scheme-root' state parses as many expressions as needed, always
187
+ # delegating to the 'scheme-value' state. The latter parses one complete
188
+ # expression and immediately pops back. This is needed for the LilyPondLexer.
189
+ # When LilyPond encounters a #, it starts parsing embedded Scheme code, and
190
+ # returns to normal syntax after one expression. We implement this
191
+ # by letting the LilyPondLexer subclass the SchemeLexer. When it finds
192
+ # the #, the LilyPondLexer goes to the 'value' state, which then pops back
193
+ # to LilyPondLexer. The 'root' state of the SchemeLexer merely delegates the
194
+ # work to 'scheme-root'; this is so that LilyPondLexer can inherit
195
+ # 'scheme-root' and redefine 'root'.
196
+
97
197
  tokens = {
98
198
  'root': [
199
+ default('scheme-root'),
200
+ ],
201
+ 'scheme-root': [
202
+ default('value'),
203
+ ],
204
+ 'value': [
99
205
  # the comments
100
206
  # and going to the end of the line
101
- (r';.*$', Comment.Single),
207
+ (r';.*?$', Comment.Single),
102
208
  # multi-line comment
103
209
  (r'#\|', Comment.Multiline, 'multiline-comment'),
104
- # commented form (entire sexpr folliwng)
105
- (r'#;\s*\(', Comment, 'commented-form'),
210
+ # commented form (entire sexpr following)
211
+ (r'#;[([]', Comment, 'commented-form'),
212
+ # commented datum
213
+ (r'#;', Comment, 'commented-datum'),
106
214
  # signifies that the program text that follows is written with the
107
215
  # lexical and datum syntax described in r6rs
108
216
  (r'#!r6rs', Comment),
109
217
 
110
218
  # whitespaces - usually not relevant
111
- (r'\s+', Text),
219
+ (r'\s+', Whitespace),
112
220
 
113
221
  # numbers
114
- (r'-?\d+\.\d+', Number.Float),
115
- (r'-?\d+', Number.Integer),
116
- # support for uncommon kinds of numbers -
117
- # have to figure out what the characters mean
118
- # (r'(#e|#i|#b|#o|#d|#x)[\d.]+', Number),
222
+ (number_rules[2], Number.Bin, '#pop'),
223
+ (number_rules[8], Number.Oct, '#pop'),
224
+ (number_rules[10], decimal_cb, '#pop'),
225
+ (number_rules[16], Number.Hex, '#pop'),
119
226
 
120
- # strings, symbols and characters
121
- (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
122
- (r"'" + valid_name, String.Symbol),
123
- (r"#\\([()/'\"._!§$%& ?=+-]|[a-zA-Z0-9]+)", String.Char),
227
+ # strings, symbols, keywords and characters
228
+ (r'"', String, 'string'),
229
+ (r"'" + valid_name, String.Symbol, "#pop"),
230
+ (r'#:' + valid_name, Keyword.Declaration, '#pop'),
231
+ (r"#\\([()/'\"._!§$%& ?=+-]|[a-zA-Z0-9]+)", String.Char, "#pop"),
124
232
 
125
233
  # constants
126
- (r'(#t|#f)', Name.Constant),
234
+ (r'(#t|#f)', Name.Constant, '#pop'),
127
235
 
128
236
  # special operators
129
237
  (r"('|#|`|,@|,|\.)", Operator),
130
238
 
131
- # highlight the keywords
132
- ('(%s)' % '|'.join(re.escape(entry) + ' ' for entry in keywords),
133
- Keyword),
134
-
135
239
  # first variable in a quoted string like
136
240
  # '(this is syntactic sugar)
137
- (r"(?<='\()" + valid_name, Name.Variable),
138
- (r"(?<=#\()" + valid_name, Name.Variable),
241
+ (r"(?<='\()" + valid_name, Name.Variable, '#pop'),
242
+ (r"(?<=#\()" + valid_name, Name.Variable, '#pop'),
139
243
 
140
- # highlight the builtins
141
- (r"(?<=\()(%s)" % '|'.join(re.escape(entry) + ' ' for entry in builtins),
142
- Name.Builtin),
244
+ # Functions -- note that this also catches variables
245
+ # defined in let/let*, but there is little that can
246
+ # be done about it.
247
+ (r'(?<=\()' + valid_name, Name.Function, '#pop'),
143
248
 
144
- # the remaining functions
145
- (r'(?<=\()' + valid_name, Name.Function),
146
249
  # find the remaining variables
147
- (valid_name, Name.Variable),
250
+ (valid_name, Name.Variable, '#pop'),
148
251
 
149
252
  # the famous parentheses!
150
- (r'(\(|\))', Punctuation),
151
- (r'(\[|\])', Punctuation),
253
+
254
+ # Push scheme-root to enter a state that will parse as many things
255
+ # as needed in the parentheses.
256
+ (r'[([]', Punctuation, 'scheme-root'),
257
+ # Pop one 'value', one 'scheme-root', and yet another 'value', so
258
+ # we get back to a state parsing expressions as needed in the
259
+ # enclosing context.
260
+ (r'[)\]]', Punctuation, '#pop:3'),
152
261
  ],
153
262
  'multiline-comment': [
154
263
  (r'#\|', Comment.Multiline, '#push'),
@@ -157,10 +266,30 @@ class SchemeLexer(RegexLexer):
157
266
  (r'[|#]', Comment.Multiline),
158
267
  ],
159
268
  'commented-form': [
160
- (r'\(', Comment, '#push'),
161
- (r'\)', Comment, '#pop'),
162
- (r'[^()]+', Comment),
269
+ (r'[([]', Comment, '#push'),
270
+ (r'[)\]]', Comment, '#pop'),
271
+ (r'[^()[\]]+', Comment),
272
+ ],
273
+ 'commented-datum': [
274
+ (rf'(?x).*?{token_end}', Comment, '#pop'),
163
275
  ],
276
+ 'string': [
277
+ # Pops back from 'string', and pops 'value' as well.
278
+ ('"', String, '#pop:2'),
279
+ # Hex escape sequences, R6RS-style.
280
+ (r'\\x[0-9a-fA-F]+;', String.Escape),
281
+ # We try R6RS style first, but fall back to Guile-style.
282
+ (r'\\x[0-9a-fA-F]{2}', String.Escape),
283
+ # Other special escape sequences implemented by Guile.
284
+ (r'\\u[0-9a-fA-F]{4}', String.Escape),
285
+ (r'\\U[0-9a-fA-F]{6}', String.Escape),
286
+ # Escape sequences are not overly standardized. Recognizing
287
+ # a single character after the backslash should be good enough.
288
+ # NB: we have DOTALL.
289
+ (r'\\.', String.Escape),
290
+ # The rest
291
+ (r'[^\\"]+', String),
292
+ ]
164
293
  }
165
294
 
166
295
 
@@ -171,6 +300,7 @@ class CommonLispLexer(RegexLexer):
171
300
  .. versionadded:: 0.9
172
301
  """
173
302
  name = 'Common Lisp'
303
+ url = 'https://lisp-lang.org/'
174
304
  aliases = ['common-lisp', 'cl', 'lisp']
175
305
  filenames = ['*.cl', '*.lisp']
176
306
  mimetypes = ['text/x-common-lisp']
@@ -245,7 +375,7 @@ class CommonLispLexer(RegexLexer):
245
375
  ],
246
376
  'body': [
247
377
  # whitespace
248
- (r'\s+', Text),
378
+ (r'\s+', Whitespace),
249
379
 
250
380
  # single-line comment
251
381
  (r';.*$', Comment.Single),
@@ -344,11 +474,12 @@ class CommonLispLexer(RegexLexer):
344
474
 
345
475
  class HyLexer(RegexLexer):
346
476
  """
347
- Lexer for `Hy <http://hylang.org/>`_ source code.
477
+ Lexer for Hy source code.
348
478
 
349
479
  .. versionadded:: 2.0
350
480
  """
351
481
  name = 'Hy'
482
+ url = 'http://hylang.org/'
352
483
  aliases = ['hylang']
353
484
  filenames = ['*.hy']
354
485
  mimetypes = ['text/x-hy', 'application/x-hy']
@@ -393,7 +524,8 @@ class HyLexer(RegexLexer):
393
524
  (r';.*$', Comment.Single),
394
525
 
395
526
  # whitespaces - usually not relevant
396
- (r'[,\s]+', Text),
527
+ (r',+', Text),
528
+ (r'\s+', Whitespace),
397
529
 
398
530
  # numbers
399
531
  (r'-?\d+\.\d+', Number.Float),
@@ -457,13 +589,14 @@ class HyLexer(RegexLexer):
457
589
 
458
590
  class RacketLexer(RegexLexer):
459
591
  """
460
- Lexer for `Racket <http://racket-lang.org/>`_ source code (formerly
592
+ Lexer for Racket source code (formerly
461
593
  known as PLT Scheme).
462
594
 
463
595
  .. versionadded:: 1.6
464
596
  """
465
597
 
466
598
  name = 'Racket'
599
+ url = 'http://racket-lang.org/'
467
600
  aliases = ['racket', 'rkt']
468
601
  filenames = ['*.rkt', '*.rktd', '*.rktl']
469
602
  mimetypes = ['text/x-racket', 'application/x-racket']
@@ -1273,7 +1406,7 @@ class RacketLexer(RegexLexer):
1273
1406
  (r'#\|', Comment.Multiline, 'block-comment'),
1274
1407
 
1275
1408
  # Whitespaces
1276
- (r'(?u)\s+', Text),
1409
+ (r'(?u)\s+', Whitespace),
1277
1410
 
1278
1411
  # Numbers: Keep in mind Racket reader hash prefixes, which
1279
1412
  # can denote the base or the type. These don't map neatly
@@ -1322,7 +1455,7 @@ class RacketLexer(RegexLexer):
1322
1455
  (r'#(true|false|[tTfF])', Name.Constant, '#pop'),
1323
1456
 
1324
1457
  # Keyword argument names (e.g. #:keyword)
1325
- (r'(?u)#:%s' % _symbol, Keyword.Declaration, '#pop'),
1458
+ (r'#:%s' % _symbol, Keyword.Declaration, '#pop'),
1326
1459
 
1327
1460
  # Reader extensions
1328
1461
  (r'(#lang |#!)(\S+)',
@@ -1351,9 +1484,9 @@ class RacketLexer(RegexLexer):
1351
1484
  (r'quasiquote(?=[%s])' % _delimiters, Keyword,
1352
1485
  ('#pop', 'quasiquoted-datum')),
1353
1486
  (_opening_parenthesis, Punctuation, ('#pop', 'unquoted-list')),
1354
- (words(_keywords, prefix='(?u)', suffix='(?=[%s])' % _delimiters),
1487
+ (words(_keywords, suffix='(?=[%s])' % _delimiters),
1355
1488
  Keyword, '#pop'),
1356
- (words(_builtins, prefix='(?u)', suffix='(?=[%s])' % _delimiters),
1489
+ (words(_builtins, suffix='(?=[%s])' % _delimiters),
1357
1490
  Name.Builtin, '#pop'),
1358
1491
  (_symbol, Name, '#pop'),
1359
1492
  include('datum*')
@@ -1399,17 +1532,18 @@ class RacketLexer(RegexLexer):
1399
1532
 
1400
1533
  class NewLispLexer(RegexLexer):
1401
1534
  """
1402
- For `newLISP. <http://www.newlisp.org/>`_ source code (version 10.3.0).
1535
+ For newLISP source code (version 10.3.0).
1403
1536
 
1404
1537
  .. versionadded:: 1.5
1405
1538
  """
1406
1539
 
1407
1540
  name = 'NewLisp'
1541
+ url = 'http://www.newlisp.org/'
1408
1542
  aliases = ['newlisp']
1409
1543
  filenames = ['*.lsp', '*.nl', '*.kif']
1410
1544
  mimetypes = ['text/x-newlisp', 'application/x-newlisp']
1411
1545
 
1412
- flags = re.IGNORECASE | re.MULTILINE | re.UNICODE
1546
+ flags = re.IGNORECASE | re.MULTILINE
1413
1547
 
1414
1548
  # list of built-in functions for newLISP version 10.3
1415
1549
  builtins = (
@@ -1486,7 +1620,7 @@ class NewLispLexer(RegexLexer):
1486
1620
  (r'#.*$', Comment.Single),
1487
1621
 
1488
1622
  # whitespace
1489
- (r'\s+', Text),
1623
+ (r'\s+', Whitespace),
1490
1624
 
1491
1625
  # strings, symbols and characters
1492
1626
  (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
@@ -2098,7 +2232,7 @@ class EmacsLispLexer(RegexLexer):
2098
2232
  ],
2099
2233
  'body': [
2100
2234
  # whitespace
2101
- (r'\s+', Text),
2235
+ (r'\s+', Whitespace),
2102
2236
 
2103
2237
  # single-line comment
2104
2238
  (r';.*$', Comment.Single),
@@ -2175,11 +2309,12 @@ class EmacsLispLexer(RegexLexer):
2175
2309
 
2176
2310
  class ShenLexer(RegexLexer):
2177
2311
  """
2178
- Lexer for `Shen <http://shenlanguage.org/>`_ source code.
2312
+ Lexer for Shen source code.
2179
2313
 
2180
2314
  .. versionadded:: 2.1
2181
2315
  """
2182
2316
  name = 'Shen'
2317
+ url = 'http://shenlanguage.org/'
2183
2318
  aliases = ['shen']
2184
2319
  filenames = ['*.shen']
2185
2320
  mimetypes = ['text/x-shen', 'application/x-shen']
@@ -2245,7 +2380,7 @@ class ShenLexer(RegexLexer):
2245
2380
  'root': [
2246
2381
  (r'(?s)\\\*.*?\*\\', Comment.Multiline), # \* ... *\
2247
2382
  (r'\\\\.*', Comment.Single), # \\ ...
2248
- (r'\s+', Text),
2383
+ (r'\s+', Whitespace),
2249
2384
  (r'_{5,}', Punctuation),
2250
2385
  (r'={5,}', Punctuation),
2251
2386
  (r'(;|:=|\||--?>|<--?)', Punctuation),
@@ -2267,7 +2402,7 @@ class ShenLexer(RegexLexer):
2267
2402
  return tokens
2268
2403
 
2269
2404
  def _relevant(self, token):
2270
- return token not in (Text, Comment.Single, Comment.Multiline)
2405
+ return token not in (Text, Whitespace, Comment.Single, Comment.Multiline)
2271
2406
 
2272
2407
  def _process_declarations(self, tokens):
2273
2408
  opening_paren = False
@@ -2337,7 +2472,7 @@ class ShenLexer(RegexLexer):
2337
2472
  yield index, token, value
2338
2473
 
2339
2474
 
2340
- class CPSALexer(SchemeLexer):
2475
+ class CPSALexer(RegexLexer):
2341
2476
  """
2342
2477
  A CPSA lexer based on the CPSA language as of version 2.2.12
2343
2478
 
@@ -2372,7 +2507,7 @@ class CPSALexer(SchemeLexer):
2372
2507
  (r';.*$', Comment.Single),
2373
2508
 
2374
2509
  # whitespaces - usually not relevant
2375
- (r'\s+', Text),
2510
+ (r'\s+', Whitespace),
2376
2511
 
2377
2512
  # numbers
2378
2513
  (r'-?\d+\.\d+', Number.Float),
@@ -2416,8 +2551,7 @@ class CPSALexer(SchemeLexer):
2416
2551
 
2417
2552
 
2418
2553
  class XtlangLexer(RegexLexer):
2419
- """An xtlang lexer for the `Extempore programming environment
2420
- <http://extempore.moso.com.au>`_.
2554
+ """An xtlang lexer for the Extempore programming environment.
2421
2555
 
2422
2556
  This is a mixture of Scheme and xtlang, really. Keyword lists are
2423
2557
  taken from the Extempore Emacs mode
@@ -2426,6 +2560,7 @@ class XtlangLexer(RegexLexer):
2426
2560
  .. versionadded:: 2.2
2427
2561
  """
2428
2562
  name = 'xtlang'
2563
+ url = 'http://extempore.moso.com.au'
2429
2564
  aliases = ['extempore']
2430
2565
  filenames = ['*.xtm']
2431
2566
  mimetypes = []
@@ -2585,7 +2720,7 @@ class XtlangLexer(RegexLexer):
2585
2720
  (r';.*$', Comment.Single),
2586
2721
 
2587
2722
  # whitespaces - usually not relevant
2588
- (r'\s+', Text),
2723
+ (r'\s+', Whitespace),
2589
2724
 
2590
2725
  # numbers
2591
2726
  (r'-?\d+\.\d+', Number.Float),
@@ -2620,7 +2755,7 @@ class XtlangLexer(RegexLexer):
2620
2755
 
2621
2756
 
2622
2757
  class FennelLexer(RegexLexer):
2623
- """A lexer for the `Fennel programming language <https://fennel-lang.org>`_.
2758
+ """A lexer for the Fennel programming language.
2624
2759
 
2625
2760
  Fennel compiles to Lua, so all the Lua builtins are recognized as well
2626
2761
  as the special forms that are particular to the Fennel compiler.
@@ -2628,6 +2763,7 @@ class FennelLexer(RegexLexer):
2628
2763
  .. versionadded:: 2.3
2629
2764
  """
2630
2765
  name = 'Fennel'
2766
+ url = 'https://fennel-lang.org'
2631
2767
  aliases = ['fennel', 'fnl']
2632
2768
  filenames = ['*.fnl']
2633
2769
 
@@ -2666,7 +2802,8 @@ class FennelLexer(RegexLexer):
2666
2802
  # the only comment form is a semicolon; goes to the end of the line
2667
2803
  (r';.*$', Comment.Single),
2668
2804
 
2669
- (r'[,\s]+', Text),
2805
+ (r',+', Text),
2806
+ (r'\s+', Whitespace),
2670
2807
  (r'-?\d+\.\d+', Number.Float),
2671
2808
  (r'-?\d+', Number.Integer),
2672
2809