pygments.rb 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,16 +4,16 @@
4
4
 
5
5
  Lexers for JavaScript and related 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
 
11
11
  import re
12
12
 
13
13
  from pygments.lexer import bygroups, combined, default, do_insertions, include, \
14
- inherit, Lexer, RegexLexer, this, using, words
14
+ inherit, Lexer, RegexLexer, this, using, words, line_re
15
15
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
- Number, Punctuation, Other, Generic
16
+ Number, Punctuation, Other, Generic, Whitespace
17
17
  from pygments.util import get_bool_opt
18
18
  import pygments.unistring as uni
19
19
 
@@ -29,7 +29,6 @@ JS_IDENT_PART = ('(?:[$' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl',
29
29
  '\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
30
30
  JS_IDENT = JS_IDENT_START + '(?:' + JS_IDENT_PART + ')*'
31
31
 
32
- line_re = re.compile('.*?\n')
33
32
 
34
33
  class JavascriptLexer(RegexLexer):
35
34
  """
@@ -37,18 +36,19 @@ class JavascriptLexer(RegexLexer):
37
36
  """
38
37
 
39
38
  name = 'JavaScript'
39
+ url = 'https://www.ecma-international.org/publications-and-standards/standards/ecma-262/'
40
40
  aliases = ['javascript', 'js']
41
41
  filenames = ['*.js', '*.jsm', '*.mjs', '*.cjs']
42
42
  mimetypes = ['application/javascript', 'application/x-javascript',
43
43
  'text/x-javascript', 'text/javascript']
44
44
 
45
- flags = re.DOTALL | re.UNICODE | re.MULTILINE
45
+ flags = re.DOTALL | re.MULTILINE
46
46
 
47
47
  tokens = {
48
48
  'commentsandwhitespace': [
49
- (r'\s+', Text),
49
+ (r'\s+', Whitespace),
50
50
  (r'<!--', Comment),
51
- (r'//.*?\n', Comment.Single),
51
+ (r'//.*?$', Comment.Single),
52
52
  (r'/\*.*?\*/', Comment.Multiline)
53
53
  ],
54
54
  'slashstartsregex': [
@@ -59,10 +59,10 @@ class JavascriptLexer(RegexLexer):
59
59
  default('#pop')
60
60
  ],
61
61
  'badregex': [
62
- (r'\n', Text, '#pop')
62
+ (r'\n', Whitespace, '#pop')
63
63
  ],
64
64
  'root': [
65
- (r'\A#! ?/.*?\n', Comment.Hashbang), # recognized by node.js
65
+ (r'\A#! ?/.*?$', Comment.Hashbang), # recognized by node.js
66
66
  (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
67
67
  include('commentsandwhitespace'),
68
68
 
@@ -110,7 +110,7 @@ class JavascriptLexer(RegexLexer):
110
110
 
111
111
  # Match stuff like: super(argument, list)
112
112
  (r'(super)(\s*)(\([\w,?.$\s]+\s*\))',
113
- bygroups(Keyword, Text), 'slashstartsregex'),
113
+ bygroups(Keyword, Whitespace), 'slashstartsregex'),
114
114
  # Match stuff like: function() {...}
115
115
  (r'([a-zA-Z_?.$][\w?.$]*)(?=\(\) \{)', Name.Other, 'slashstartsregex'),
116
116
 
@@ -136,12 +136,13 @@ class JavascriptLexer(RegexLexer):
136
136
 
137
137
  class TypeScriptLexer(JavascriptLexer):
138
138
  """
139
- For `TypeScript <http://typescriptlang.org/>`_ source code.
139
+ For TypeScript source code.
140
140
 
141
141
  .. versionadded:: 1.6
142
142
  """
143
143
 
144
144
  name = 'TypeScript'
145
+ url = 'https://www.typescriptlang.org/'
145
146
  aliases = ['typescript', 'ts']
146
147
  filenames = ['*.ts']
147
148
  mimetypes = ['application/x-typescript', 'text/x-typescript']
@@ -159,11 +160,11 @@ class TypeScriptLexer(JavascriptLexer):
159
160
  # Match variable type keywords
160
161
  (r'\b(string|boolean|number)\b', Keyword.Type),
161
162
  # Match stuff like: module name {...}
162
- (r'\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)',
163
- bygroups(Keyword.Reserved, Text, Name.Other, Text), 'slashstartsregex'),
163
+ (r'\b(module)(\s*)([\w?.$]+)(\s*)',
164
+ bygroups(Keyword.Reserved, Whitespace, Name.Other, Whitespace), 'slashstartsregex'),
164
165
  # Match stuff like: (function: return type)
165
- (r'([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)',
166
- bygroups(Name.Other, Text, Keyword.Type)),
166
+ (r'([\w?.$]+)(\s*)(:)(\s*)([\w?.$]+)',
167
+ bygroups(Name.Other, Whitespace, Operator, Whitespace, Keyword.Type)),
167
168
  # Match stuff like: Decorators
168
169
  (r'@' + JS_IDENT, Keyword.Declaration),
169
170
  inherit,
@@ -173,15 +174,13 @@ class TypeScriptLexer(JavascriptLexer):
173
174
 
174
175
  class KalLexer(RegexLexer):
175
176
  """
176
- For `Kal`_ source code.
177
-
178
- .. _Kal: http://rzimmerman.github.io/kal
179
-
177
+ For Kal source code.
180
178
 
181
179
  .. versionadded:: 2.0
182
180
  """
183
181
 
184
182
  name = 'Kal'
183
+ url = 'http://rzimmerman.github.io/kal'
185
184
  aliases = ['kal']
186
185
  filenames = ['*.kal']
187
186
  mimetypes = ['text/kal', 'application/kal']
@@ -189,18 +188,20 @@ class KalLexer(RegexLexer):
189
188
  flags = re.DOTALL
190
189
  tokens = {
191
190
  'commentsandwhitespace': [
192
- (r'\s+', Text),
191
+ (r'\s+', Whitespace),
193
192
  (r'###[^#].*?###', Comment.Multiline),
194
- (r'#(?!##[^#]).*?\n', Comment.Single),
193
+ (r'(#(?!##[^#]).*?)(\n)', bygroups(Comment.Single, Whitespace)),
195
194
  ],
196
195
  'functiondef': [
197
- (r'[$a-zA-Z_][\w$]*\s*', Name.Function, '#pop'),
196
+ (r'([$a-zA-Z_][\w$]*)(\s*)', bygroups(Name.Function, Whitespace),
197
+ '#pop'),
198
198
  include('commentsandwhitespace'),
199
199
  ],
200
200
  'classdef': [
201
- (r'\binherits\s+from\b', Keyword),
202
- (r'[$a-zA-Z_][\w$]*\s*\n', Name.Class, '#pop'),
203
- (r'[$a-zA-Z_][\w$]*\s*', Name.Class),
201
+ (r'\b(inherits)(\s+)(from)\b',
202
+ bygroups(Keyword, Whitespace, Keyword)),
203
+ (r'([$a-zA-Z_][\w$]*)(?=\s*\n)', Name.Class, '#pop'),
204
+ (r'[$a-zA-Z_][\w$]*\b', Name.Class),
204
205
  include('commentsandwhitespace'),
205
206
  ],
206
207
  'listcomprehension': [
@@ -209,7 +210,7 @@ class KalLexer(RegexLexer):
209
210
  include('root'),
210
211
  ],
211
212
  'waitfor': [
212
- (r'\n', Punctuation, '#pop'),
213
+ (r'\n', Whitespace, '#pop'),
213
214
  (r'\bfrom\b', Keyword),
214
215
  include('root'),
215
216
  ],
@@ -221,29 +222,48 @@ class KalLexer(RegexLexer):
221
222
  Operator),
222
223
  (r'\b(and|or|isnt|is|not|but|bitwise|mod|\^|xor|exists|'
223
224
  r'doesnt\s+exist)\b', Operator.Word),
224
- (r'(?:\([^()]+\))?\s*>', Name.Function),
225
+ (r'(\([^()]+\))?(\s*)(>)',
226
+ bygroups(Name.Function, Whitespace, Punctuation)),
225
227
  (r'[{(]', Punctuation),
226
228
  (r'\[', Punctuation, 'listcomprehension'),
227
229
  (r'[})\].,]', Punctuation),
228
230
  (r'\b(function|method|task)\b', Keyword.Declaration, 'functiondef'),
229
231
  (r'\bclass\b', Keyword.Declaration, 'classdef'),
230
- (r'\b(safe\s+)?wait\s+for\b', Keyword, 'waitfor'),
232
+ (r'\b(safe(?=\s))?(\s*)(wait(?=\s))(\s+)(for)\b',
233
+ bygroups(Keyword, Whitespace, Keyword, Whitespace,
234
+ Keyword), 'waitfor'),
231
235
  (r'\b(me|this)(\.[$a-zA-Z_][\w.$]*)?\b', Name.Variable.Instance),
232
- (r'(?<![.$])(for(\s+(parallel|series))?|in|of|while|until|'
233
- r'break|return|continue|'
234
- r'when|if|unless|else|otherwise|except\s+when|'
235
- r'throw|raise|fail\s+with|try|catch|finally|new|delete|'
236
- r'typeof|instanceof|super|run\s+in\s+parallel|'
237
- r'inherits\s+from)\b', Keyword),
238
- (r'(?<![.$])(true|false|yes|no|on|off|null|nothing|none|'
239
- r'NaN|Infinity|undefined)\b',
240
- Keyword.Constant),
241
- (r'(Array|Boolean|Date|Error|Function|Math|'
242
- r'Number|Object|RegExp|String|decodeURI|'
243
- r'decodeURIComponent|encodeURI|encodeURIComponent|'
244
- r'eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|'
245
- r'window|globalThis|Symbol|print)\b', Name.Builtin),
246
- (r'[$a-zA-Z_][\w.$]*\s*(:|[+\-*/]?\=)?\b', Name.Variable),
236
+ (r'(?<![.$])(run)(\s+)(in)(\s+)(parallel)\b',
237
+ bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword)),
238
+ (r'(?<![.$])(for)(\s+)(parallel|series)?\b',
239
+ bygroups(Keyword, Whitespace, Keyword)),
240
+ (r'(?<![.$])(except)(\s+)(when)?\b',
241
+ bygroups(Keyword, Whitespace, Keyword)),
242
+ (r'(?<![.$])(fail)(\s+)(with)?\b',
243
+ bygroups(Keyword, Whitespace, Keyword)),
244
+ (r'(?<![.$])(inherits)(\s+)(from)?\b',
245
+ bygroups(Keyword, Whitespace, Keyword)),
246
+ (r'(?<![.$])(for)(\s+)(parallel|series)?\b',
247
+ bygroups(Keyword, Whitespace, Keyword)),
248
+ (words((
249
+ 'in', 'of', 'while', 'until', 'break', 'return', 'continue',
250
+ 'when', 'if', 'unless', 'else', 'otherwise', 'throw', 'raise',
251
+ 'try', 'catch', 'finally', 'new', 'delete', 'typeof',
252
+ 'instanceof', 'super'), prefix=r'(?<![.$])', suffix=r'\b'),
253
+ Keyword),
254
+ (words((
255
+ 'true', 'false', 'yes', 'no', 'on', 'off', 'null', 'nothing',
256
+ 'none', 'NaN', 'Infinity', 'undefined'), prefix=r'(?<![.$])',
257
+ suffix=r'\b'), Keyword.Constant),
258
+ (words((
259
+ 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Math',
260
+ 'Number', 'Object', 'RegExp', 'String', 'decodeURI',
261
+ 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'eval',
262
+ 'isFinite', 'isNaN', 'isSafeInteger', 'parseFloat', 'parseInt',
263
+ 'document', 'window', 'globalThis', 'Symbol', 'print'),
264
+ suffix=r'\b'), Name.Builtin),
265
+ (r'([$a-zA-Z_][\w.$]*)(\s*)(:|[+\-*/]?\=)?\b',
266
+ bygroups(Name.Variable, Whitespace, Operator)),
247
267
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
248
268
  (r'0x[0-9a-fA-F]+', Number.Hex),
249
269
  (r'[0-9]+', Number.Integer),
@@ -288,14 +308,13 @@ class KalLexer(RegexLexer):
288
308
 
289
309
  class LiveScriptLexer(RegexLexer):
290
310
  """
291
- For `LiveScript`_ source code.
292
-
293
- .. _LiveScript: https://livescript.net/
311
+ For LiveScript source code.
294
312
 
295
313
  .. versionadded:: 1.6
296
314
  """
297
315
 
298
316
  name = 'LiveScript'
317
+ url = 'https://livescript.net/'
299
318
  aliases = ['livescript', 'live-script']
300
319
  filenames = ['*.ls']
301
320
  mimetypes = ['text/livescript']
@@ -303,9 +322,9 @@ class LiveScriptLexer(RegexLexer):
303
322
  flags = re.DOTALL
304
323
  tokens = {
305
324
  'commentsandwhitespace': [
306
- (r'\s+', Text),
325
+ (r'\s+', Whitespace),
307
326
  (r'/\*.*?\*/', Comment.Multiline),
308
- (r'#.*?\n', Comment.Single),
327
+ (r'(#.*?)(\n)', bygroups(Comment.Single, Whitespace)),
309
328
  ],
310
329
  'multilineregex': [
311
330
  include('commentsandwhitespace'),
@@ -346,10 +365,13 @@ class LiveScriptLexer(RegexLexer):
346
365
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
347
366
  r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|'
348
367
  r'globalThis|Symbol|Symbol|BigInt)\b', Name.Builtin),
349
- (r'[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable,
350
- 'slashstartsregex'),
351
- (r'@[$a-zA-Z_][\w.\-:$]*\s*[:=]\s', Name.Variable.Instance,
352
- 'slashstartsregex'),
368
+ (r'([$a-zA-Z_][\w.\-:$]*)(\s*)([:=])(\s+)',
369
+ bygroups(Name.Variable, Whitespace, Operator, Whitespace),
370
+ 'slashstartsregex'),
371
+ (r'(@[$a-zA-Z_][\w.\-:$]*)(\s*)([:=])(\s+)',
372
+ bygroups(Name.Variable.Instance, Whitespace, Operator,
373
+ Whitespace),
374
+ 'slashstartsregex'),
353
375
  (r'@', Name.Other, 'slashstartsregex'),
354
376
  (r'@?[$a-zA-Z_][\w-]*', Name.Other, 'slashstartsregex'),
355
377
  (r'[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?(?:[a-zA-Z_]+)?', Number.Float),
@@ -399,12 +421,13 @@ class LiveScriptLexer(RegexLexer):
399
421
 
400
422
  class DartLexer(RegexLexer):
401
423
  """
402
- For `Dart <http://dart.dev/>`_ source code.
424
+ For Dart source code.
403
425
 
404
426
  .. versionadded:: 1.5
405
427
  """
406
428
 
407
429
  name = 'Dart'
430
+ url = 'http://dart.dev/'
408
431
  aliases = ['dart']
409
432
  filenames = ['*.dart']
410
433
  mimetypes = ['text/x-dart']
@@ -417,11 +440,11 @@ class DartLexer(RegexLexer):
417
440
  (r'#!(.*?)$', Comment.Preproc),
418
441
  (r'\b(import|export)\b', Keyword, 'import_decl'),
419
442
  (r'\b(library|source|part of|part)\b', Keyword),
420
- (r'[^\S\n]+', Text),
421
- (r'//.*?\n', Comment.Single),
443
+ (r'[^\S\n]+', Whitespace),
444
+ (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace)),
422
445
  (r'/\*.*?\*/', Comment.Multiline),
423
446
  (r'\b(class|extension|mixin)\b(\s+)',
424
- bygroups(Keyword.Declaration, Text), 'class'),
447
+ bygroups(Keyword.Declaration, Whitespace), 'class'),
425
448
  (r'\b(as|assert|break|case|catch|const|continue|default|do|else|finally|'
426
449
  r'for|if|in|is|new|rethrow|return|super|switch|this|throw|try|while)\b',
427
450
  Keyword),
@@ -440,7 +463,7 @@ class DartLexer(RegexLexer):
440
463
  # DIGIT+ (‘.’ DIGIT*)? EXPONENT?
441
464
  (r'\d+(\.\d*)?([eE][+-]?\d+)?', Number),
442
465
  (r'\.\d+([eE][+-]?\d+)?', Number), # ‘.’ DIGIT+ EXPONENT?
443
- (r'\n', Text)
466
+ (r'\n', Whitespace)
444
467
  # pseudo-keyword negate intentionally left out
445
468
  ],
446
469
  'class': [
@@ -448,7 +471,7 @@ class DartLexer(RegexLexer):
448
471
  ],
449
472
  'import_decl': [
450
473
  include('string_literal'),
451
- (r'\s+', Text),
474
+ (r'\s+', Whitespace),
452
475
  (r'\b(as|deferred|show|hide)\b', Keyword),
453
476
  (r'[a-zA-Z_$]\w*', Name),
454
477
  (r'\,', Punctuation),
@@ -502,7 +525,7 @@ class DartLexer(RegexLexer):
502
525
 
503
526
  class LassoLexer(RegexLexer):
504
527
  """
505
- For `Lasso <http://www.lassosoft.com/>`_ source code, covering both Lasso 9
528
+ For Lasso source code, covering both Lasso 9
506
529
  syntax and LassoScript for Lasso 8.6 and earlier. For Lasso embedded in
507
530
  HTML, use the `LassoHtmlLexer`.
508
531
 
@@ -529,7 +552,7 @@ class LassoLexer(RegexLexer):
529
552
  'root': [
530
553
  (r'^#![ \S]+lasso9\b', Comment.Preproc, 'lasso'),
531
554
  (r'(?=\[|<)', Other, 'delimiters'),
532
- (r'\s+', Other),
555
+ (r'\s+', Whitespace),
533
556
  default(('delimiters', 'lassofile')),
534
557
  ],
535
558
  'delimiters': [
@@ -565,8 +588,8 @@ class LassoLexer(RegexLexer):
565
588
  include('lasso'),
566
589
  ],
567
590
  'whitespacecomments': [
568
- (r'\s+', Text),
569
- (r'//.*?\n', Comment.Single),
591
+ (r'\s+', Whitespace),
592
+ (r'(//.*?)(\s*)$', bygroups(Comment.Single, Whitespace)),
570
593
  (r'/\*\*!.*?\*/', String.Doc),
571
594
  (r'/\*.*?\*/', Comment.Multiline),
572
595
  ],
@@ -586,18 +609,20 @@ class LassoLexer(RegexLexer):
586
609
  # names
587
610
  (r'\$[a-z_][\w.]*', Name.Variable),
588
611
  (r'#([a-z_][\w.]*|\d+\b)', Name.Variable.Instance),
589
- (r"(\.\s*)('[a-z_][\w.]*')",
590
- bygroups(Name.Builtin.Pseudo, Name.Variable.Class)),
591
- (r"(self)(\s*->\s*)('[a-z_][\w.]*')",
592
- bygroups(Name.Builtin.Pseudo, Operator, Name.Variable.Class)),
593
- (r'(\.\.?\s*)([a-z_][\w.]*(=(?!=))?)',
594
- bygroups(Name.Builtin.Pseudo, Name.Other.Member)),
595
- (r'(->\\?\s*|&\s*)([a-z_][\w.]*(=(?!=))?)',
596
- bygroups(Operator, Name.Other.Member)),
612
+ (r"(\.)(\s*)('[a-z_][\w.]*')",
613
+ bygroups(Name.Builtin.Pseudo, Whitespace, Name.Variable.Class)),
614
+ (r"(self)(\s*)(->)(\s*)('[a-z_][\w.]*')",
615
+ bygroups(Name.Builtin.Pseudo, Whitespace, Operator, Whitespace,
616
+ Name.Variable.Class)),
617
+ (r'(\.\.?)(\s*)([a-z_][\w.]*(=(?!=))?)',
618
+ bygroups(Name.Builtin.Pseudo, Whitespace, Name.Other.Member)),
619
+ (r'(->\\?|&)(\s*)([a-z_][\w.]*(=(?!=))?)',
620
+ bygroups(Operator, Whitespace, Name.Other.Member)),
597
621
  (r'(?<!->)(self|inherited|currentcapture|givenblock)\b',
598
622
  Name.Builtin.Pseudo),
599
623
  (r'-(?!infinity)[a-z_][\w.]*', Name.Attribute),
600
- (r'::\s*[a-z_][\w.]*', Name.Label),
624
+ (r'(::)(\s*)([a-z_][\w.]*)',
625
+ bygroups(Punctuation, Whitespace, Name.Label)),
601
626
  (r'(error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|'
602
627
  r'Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|'
603
628
  r'Error_DeleteError|Error_FieldRestriction|Error_FileNotFound|'
@@ -609,18 +634,20 @@ class LassoLexer(RegexLexer):
609
634
  r'Error_UpdateError)\b', Name.Exception),
610
635
 
611
636
  # definitions
612
- (r'(define)(\s+)([a-z_][\w.]*)(\s*=>\s*)(type|trait|thread)\b',
613
- bygroups(Keyword.Declaration, Text, Name.Class, Operator, Keyword)),
614
- (r'(define)(\s+)([a-z_][\w.]*)(\s*->\s*)([a-z_][\w.]*=?|[-+*/%])',
615
- bygroups(Keyword.Declaration, Text, Name.Class, Operator,
616
- Name.Function), 'signature'),
637
+ (r'(define)(\s+)([a-z_][\w.]*)(\s*)(=>)(\s*)(type|trait|thread)\b',
638
+ bygroups(Keyword.Declaration, Whitespace, Name.Class,
639
+ Whitespace, Operator, Whitespace, Keyword)),
640
+ (r'(define)(\s+)([a-z_][\w.]*)(\s*)(->)(\s*)([a-z_][\w.]*=?|[-+*/%])',
641
+ bygroups(Keyword.Declaration, Whitespace, Name.Class,
642
+ Whitespace, Operator, Whitespace, Name.Function),
643
+ 'signature'),
617
644
  (r'(define)(\s+)([a-z_][\w.]*)',
618
- bygroups(Keyword.Declaration, Text, Name.Function), 'signature'),
645
+ bygroups(Keyword.Declaration, Whitespace, Name.Function), 'signature'),
619
646
  (r'(public|protected|private|provide)(\s+)(([a-z_][\w.]*=?|[-+*/%])'
620
- r'(?=\s*\())', bygroups(Keyword, Text, Name.Function),
647
+ r'(?=\s*\())', bygroups(Keyword, Whitespace, Name.Function),
621
648
  'signature'),
622
649
  (r'(public|protected|private|provide)(\s+)([a-z_][\w.]*)',
623
- bygroups(Keyword, Text, Name.Function)),
650
+ bygroups(Keyword, Whitespace, Name.Function)),
624
651
 
625
652
  # keywords
626
653
  (r'(true|false|none|minimal|full|all|void)\b', Keyword.Constant),
@@ -628,8 +655,8 @@ class LassoLexer(RegexLexer):
628
655
  (r'(array|date|decimal|duration|integer|map|pair|string|tag|xml|'
629
656
  r'null|boolean|bytes|keyword|list|locale|queue|set|stack|'
630
657
  r'staticarray)\b', Keyword.Type),
631
- (r'([a-z_][\w.]*)(\s+)(in)\b', bygroups(Name, Text, Keyword)),
632
- (r'(let|into)(\s+)([a-z_][\w.]*)', bygroups(Keyword, Text, Name)),
658
+ (r'([a-z_][\w.]*)(\s+)(in)\b', bygroups(Name, Whitespace, Keyword)),
659
+ (r'(let|into)(\s+)([a-z_][\w.]*)', bygroups(Keyword, Whitespace, Name)),
633
660
  (r'require\b', Keyword, 'requiresection'),
634
661
  (r'(/?)(Namespace_Using)\b', bygroups(Punctuation, Keyword.Namespace)),
635
662
  (r'(/?)(Cache|Database_Names|Database_SchemaNames|'
@@ -655,8 +682,9 @@ class LassoLexer(RegexLexer):
655
682
  # other
656
683
  (r',', Punctuation, 'commamember'),
657
684
  (r'(and|or|not)\b', Operator.Word),
658
- (r'([a-z_][\w.]*)(\s*::\s*[a-z_][\w.]*)?(\s*=(?!=))',
659
- bygroups(Name, Name.Label, Operator)),
685
+ (r'([a-z_][\w.]*)(\s*)(::)(\s*)([a-z_][\w.]*)?(\s*=(?!=))',
686
+ bygroups(Name, Whitespace, Punctuation, Whitespace, Name.Label,
687
+ Operator)),
660
688
  (r'(/?)([\w.]+)', bygroups(Punctuation, Name.Other)),
661
689
  (r'(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\b',
662
690
  bygroups(Operator, Operator.Word)),
@@ -695,7 +723,8 @@ class LassoLexer(RegexLexer):
695
723
  (r'(([a-z_][\w.]*=?|[-+*/%])(?=\s*\())', Name, 'requiresignature'),
696
724
  (r'(([a-z_][\w.]*=?|[-+*/%])(?=(\s*::\s*[\w.]+)?\s*,))', Name),
697
725
  (r'[a-z_][\w.]*=?|[-+*/%]', Name, '#pop'),
698
- (r'::\s*[a-z_][\w.]*', Name.Label),
726
+ (r'(::)(\s*)([a-z_][\w.]*)',
727
+ bygroups(Punctuation, Whitespace, Name.Label)),
699
728
  (r',', Punctuation),
700
729
  include('whitespacecomments'),
701
730
  ],
@@ -703,7 +732,8 @@ class LassoLexer(RegexLexer):
703
732
  (r'(\)(?=(\s*::\s*[\w.]+)?\s*,))', Punctuation, '#pop'),
704
733
  (r'\)', Punctuation, '#pop:2'),
705
734
  (r'-?[a-z_][\w.]*', Name.Attribute),
706
- (r'::\s*[a-z_][\w.]*', Name.Label),
735
+ (r'(::)(\s*)([a-z_][\w.]*)',
736
+ bygroups(Punctuation, Whitespace, Name.Label)),
707
737
  (r'\.\.\.', Name.Builtin.Pseudo),
708
738
  (r'[(,]', Punctuation),
709
739
  include('whitespacecomments'),
@@ -770,7 +800,7 @@ class ObjectiveJLexer(RegexLexer):
770
800
  mimetypes = ['text/x-objective-j']
771
801
 
772
802
  #: optional Comment or Whitespace
773
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)*'
803
+ _ws = r'(?:\s|//[^\n]*\n|/[*](?:[^*]|[*][^/])*[*]/)*'
774
804
 
775
805
  flags = re.DOTALL | re.MULTILINE
776
806
 
@@ -784,11 +814,11 @@ class ObjectiveJLexer(RegexLexer):
784
814
  using(this))),
785
815
 
786
816
  # class definition
787
- (r'(@interface|@implementation)(\s+)', bygroups(Keyword, Text),
817
+ (r'(@interface|@implementation)(\s+)', bygroups(Keyword, Whitespace),
788
818
  'classname'),
789
- (r'(@class|@protocol)(\s*)', bygroups(Keyword, Text),
819
+ (r'(@class|@protocol)(\s*)', bygroups(Keyword, Whitespace),
790
820
  'forward_classname'),
791
- (r'(\s*)(@end)(\s*)', bygroups(Text, Keyword, Text)),
821
+ (r'(\s*)(@end)(\s*)', bygroups(Whitespace, Keyword, Whitespace)),
792
822
 
793
823
  include('statements'),
794
824
  ('[{()}]', Punctuation),
@@ -796,20 +826,20 @@ class ObjectiveJLexer(RegexLexer):
796
826
  ],
797
827
  'whitespace': [
798
828
  (r'(@import)(\s+)("(?:\\\\|\\"|[^"])*")',
799
- bygroups(Comment.Preproc, Text, String.Double)),
829
+ bygroups(Comment.Preproc, Whitespace, String.Double)),
800
830
  (r'(@import)(\s+)(<(?:\\\\|\\>|[^>])*>)',
801
- bygroups(Comment.Preproc, Text, String.Double)),
831
+ bygroups(Comment.Preproc, Whitespace, String.Double)),
802
832
  (r'(#(?:include|import))(\s+)("(?:\\\\|\\"|[^"])*")',
803
- bygroups(Comment.Preproc, Text, String.Double)),
833
+ bygroups(Comment.Preproc, Whitespace, String.Double)),
804
834
  (r'(#(?:include|import))(\s+)(<(?:\\\\|\\>|[^>])*>)',
805
- bygroups(Comment.Preproc, Text, String.Double)),
835
+ bygroups(Comment.Preproc, Whitespace, String.Double)),
806
836
 
807
837
  (r'#if\s+0', Comment.Preproc, 'if0'),
808
838
  (r'#', Comment.Preproc, 'macro'),
809
839
 
810
- (r'\n', Text),
811
- (r'\s+', Text),
812
- (r'\\\n', Text), # line continuation
840
+ (r'\s+', Whitespace),
841
+ (r'(\\)(\n)',
842
+ bygroups(String.Escape, Whitespace)), # line continuation
813
843
  (r'//(\n|(.|\n)*?[^\\]\n)', Comment.Single),
814
844
  (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
815
845
  (r'<!--', Comment),
@@ -822,7 +852,7 @@ class ObjectiveJLexer(RegexLexer):
822
852
  default('#pop'),
823
853
  ],
824
854
  'badregex': [
825
- (r'\n', Text, '#pop'),
855
+ (r'\n', Whitespace, '#pop'),
826
856
  ],
827
857
  'statements': [
828
858
  (r'(L|@)?"', String, 'string'),
@@ -889,10 +919,10 @@ class ObjectiveJLexer(RegexLexer):
889
919
  (r'([a-zA-Z_]\w*)', Name.Class, '#pop'),
890
920
  ],
891
921
  'forward_classname': [
892
- (r'([a-zA-Z_]\w*)(\s*,\s*)',
893
- bygroups(Name.Class, Text), '#push'),
894
- (r'([a-zA-Z_]\w*)(\s*;?)',
895
- bygroups(Name.Class, Text), '#pop'),
922
+ (r'([a-zA-Z_]\w*)(\s*)(,)(\s*)',
923
+ bygroups(Name.Class, Whitespace, Text, Whitespace), '#push'),
924
+ (r'([a-zA-Z_]\w*)(\s*)(;?)',
925
+ bygroups(Name.Class, Whitespace, Text), '#pop'),
896
926
  ],
897
927
  'function_signature': [
898
928
  include('whitespace'),
@@ -955,21 +985,21 @@ class ObjectiveJLexer(RegexLexer):
955
985
  (r'"', String, '#pop'),
956
986
  (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
957
987
  (r'[^\\"\n]+', String), # all other characters
958
- (r'\\\n', String), # line continuation
988
+ (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation
959
989
  (r'\\', String), # stray backslash
960
990
  ],
961
991
  'macro': [
962
992
  (r'[^/\n]+', Comment.Preproc),
963
993
  (r'/[*](.|\n)*?[*]/', Comment.Multiline),
964
- (r'//.*?\n', Comment.Single, '#pop'),
994
+ (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace), '#pop'),
965
995
  (r'/', Comment.Preproc),
966
- (r'(?<=\\)\n', Comment.Preproc),
967
- (r'\n', Comment.Preproc, '#pop'),
996
+ (r'(?<=\\)\n', Whitespace),
997
+ (r'\n', Whitespace, '#pop'),
968
998
  ],
969
999
  'if0': [
970
1000
  (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'),
971
1001
  (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'),
972
- (r'.*?\n', Comment),
1002
+ (r'(.*?)(\n)', bygroups(Comment, Whitespace)),
973
1003
  ]
974
1004
  }
975
1005
 
@@ -982,14 +1012,13 @@ class ObjectiveJLexer(RegexLexer):
982
1012
 
983
1013
  class CoffeeScriptLexer(RegexLexer):
984
1014
  """
985
- For `CoffeeScript`_ source code.
986
-
987
- .. _CoffeeScript: http://coffeescript.org
1015
+ For CoffeeScript source code.
988
1016
 
989
1017
  .. versionadded:: 1.3
990
1018
  """
991
1019
 
992
1020
  name = 'CoffeeScript'
1021
+ url = 'http://coffeescript.org'
993
1022
  aliases = ['coffeescript', 'coffee-script', 'coffee']
994
1023
  filenames = ['*.coffee']
995
1024
  mimetypes = ['text/coffeescript']
@@ -1002,9 +1031,9 @@ class CoffeeScriptLexer(RegexLexer):
1002
1031
  flags = re.DOTALL
1003
1032
  tokens = {
1004
1033
  'commentsandwhitespace': [
1005
- (r'\s+', Text),
1034
+ (r'\s+', Whitespace),
1006
1035
  (r'###[^#].*?###', Comment.Multiline),
1007
- (r'#(?!##[^#]).*?\n', Comment.Single),
1036
+ (r'(#(?!##[^#]).*?)(\n)', bygroups(Comment.Single, Whitespace)),
1008
1037
  ],
1009
1038
  'multilineregex': [
1010
1039
  (r'[^/#]+', String.Regex),
@@ -1043,10 +1072,12 @@ class CoffeeScriptLexer(RegexLexer):
1043
1072
  r'decodeURIComponent|encodeURI|encodeURIComponent|'
1044
1073
  r'eval|isFinite|isNaN|parseFloat|parseInt|document|window|globalThis|Symbol)\b',
1045
1074
  Name.Builtin),
1046
- (r'[$a-zA-Z_][\w.:$]*\s*[:=]\s', Name.Variable,
1047
- 'slashstartsregex'),
1048
- (r'@[$a-zA-Z_][\w.:$]*\s*[:=]\s', Name.Variable.Instance,
1049
- 'slashstartsregex'),
1075
+ (r'([$a-zA-Z_][\w.:$]*)(\s*)([:=])(\s+)',
1076
+ bygroups(Name.Variable, Whitespace, Operator, Whitespace),
1077
+ 'slashstartsregex'),
1078
+ (r'(@[$a-zA-Z_][\w.:$]*)(\s*)([:=])(\s+)',
1079
+ bygroups(Name.Variable.Instance, Whitespace, Operator, Whitespace),
1080
+ 'slashstartsregex'),
1050
1081
  (r'@', Name.Other, 'slashstartsregex'),
1051
1082
  (r'@?[$a-zA-Z_][\w$]*', Name.Other),
1052
1083
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
@@ -1095,11 +1126,12 @@ class CoffeeScriptLexer(RegexLexer):
1095
1126
 
1096
1127
  class MaskLexer(RegexLexer):
1097
1128
  """
1098
- For `Mask <https://github.com/atmajs/MaskJS>`__ markup.
1129
+ For Mask markup.
1099
1130
 
1100
1131
  .. versionadded:: 2.0
1101
1132
  """
1102
1133
  name = 'Mask'
1134
+ url = 'https://github.com/atmajs/MaskJS'
1103
1135
  aliases = ['mask']
1104
1136
  filenames = ['*.mask']
1105
1137
  mimetypes = ['text/x-mask']
@@ -1107,8 +1139,8 @@ class MaskLexer(RegexLexer):
1107
1139
  flags = re.MULTILINE | re.IGNORECASE | re.DOTALL
1108
1140
  tokens = {
1109
1141
  'root': [
1110
- (r'\s+', Text),
1111
- (r'//.*?\n', Comment.Single),
1142
+ (r'\s+', Whitespace),
1143
+ (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace)),
1112
1144
  (r'/\*.*?\*/', Comment.Multiline),
1113
1145
  (r'[{};>]', Punctuation),
1114
1146
  (r"'''", String, 'string-trpl-single'),
@@ -1143,19 +1175,23 @@ class MaskLexer(RegexLexer):
1143
1175
  ],
1144
1176
  'interpolation': [
1145
1177
  (r'\]', String.Interpol, '#pop'),
1146
- (r'\s*:', String.Interpol, 'expression'),
1147
- (r'\s*\w+:', Name.Other),
1178
+ (r'(\s*)(:)', bygroups(Whitespace, String.Interpol), 'expression'),
1179
+ (r'(\s*)(\w+)(:)', bygroups(Whitespace, Name.Other, Punctuation)),
1148
1180
  (r'[^\]]+', String.Interpol)
1149
1181
  ],
1150
1182
  'expression': [
1151
1183
  (r'[^\]]+', using(JavascriptLexer), '#pop')
1152
1184
  ],
1153
1185
  'node': [
1154
- (r'\s+', Text),
1186
+ (r'\s+', Whitespace),
1155
1187
  (r'\.', Name.Variable.Class, 'node-class'),
1156
1188
  (r'\#', Name.Function, 'node-id'),
1157
- (r'style[ \t]*=', Name.Attribute, 'node-attr-style-value'),
1158
- (r'[\w:-]+[ \t]*=', Name.Attribute, 'node-attr-value'),
1189
+ (r'(style)([ \t]*)(=)',
1190
+ bygroups(Name.Attribute, Whitespace, Operator),
1191
+ 'node-attr-style-value'),
1192
+ (r'([\w:-]+)([ \t]*)(=)',
1193
+ bygroups(Name.Attribute, Whitespace, Operator),
1194
+ 'node-attr-value'),
1159
1195
  (r'[\w:-]+', Name.Attribute),
1160
1196
  (r'[>{;]', Punctuation, '#pop')
1161
1197
  ],
@@ -1170,20 +1206,20 @@ class MaskLexer(RegexLexer):
1170
1206
  default('#pop')
1171
1207
  ],
1172
1208
  'node-attr-value': [
1173
- (r'\s+', Text),
1209
+ (r'\s+', Whitespace),
1174
1210
  (r'\w+', Name.Variable, '#pop'),
1175
1211
  (r"'", String, 'string-single-pop2'),
1176
1212
  (r'"', String, 'string-double-pop2'),
1177
1213
  default('#pop')
1178
1214
  ],
1179
1215
  'node-attr-style-value': [
1180
- (r'\s+', Text),
1216
+ (r'\s+', Whitespace),
1181
1217
  (r"'", String.Single, 'css-single-end'),
1182
1218
  (r'"', String.Single, 'css-double-end'),
1183
1219
  include('node-attr-value')
1184
1220
  ],
1185
1221
  'css-base': [
1186
- (r'\s+', Text),
1222
+ (r'\s+', Whitespace),
1187
1223
  (r";", Punctuation),
1188
1224
  (r"[\w\-]+\s*:", Name.Builtin)
1189
1225
  ],
@@ -1210,9 +1246,7 @@ class MaskLexer(RegexLexer):
1210
1246
 
1211
1247
  class EarlGreyLexer(RegexLexer):
1212
1248
  """
1213
- For `Earl-Grey`_ source code.
1214
-
1215
- .. _Earl-Grey: https://breuleux.github.io/earl-grey/
1249
+ For Earl-Grey source code.
1216
1250
 
1217
1251
  .. versionadded: 2.1
1218
1252
  """
@@ -1224,12 +1258,12 @@ class EarlGreyLexer(RegexLexer):
1224
1258
 
1225
1259
  tokens = {
1226
1260
  'root': [
1227
- (r'\n', Text),
1261
+ (r'\n', Whitespace),
1228
1262
  include('control'),
1229
1263
  (r'[^\S\n]+', Text),
1230
- (r';;.*\n', Comment),
1264
+ (r'(;;.*)(\n)', bygroups(Comment, Whitespace)),
1231
1265
  (r'[\[\]{}:(),;]', Punctuation),
1232
- (r'\\\n', Text),
1266
+ (r'(\\)(\n)', bygroups(String.Escape, Whitespace)),
1233
1267
  (r'\\', Text),
1234
1268
  include('errors'),
1235
1269
  (words((
@@ -1268,7 +1302,7 @@ class EarlGreyLexer(RegexLexer):
1268
1302
  bygroups(Punctuation, Name.Class.DBS)),
1269
1303
  (r'(\[)([\^#][a-zA-Z$_](?:[\w$\-]*[\w$])?)(\])',
1270
1304
  bygroups(Punctuation, Name.Entity.DBS, Punctuation)),
1271
- (r'\s+', Text),
1305
+ (r'\s+', Whitespace),
1272
1306
  (r'%', Operator.DBS, '#pop'),
1273
1307
  ],
1274
1308
  'import_paths': [
@@ -1298,8 +1332,8 @@ class EarlGreyLexer(RegexLexer):
1298
1332
  (?!and|as|each\*|each|in|is|mod|of|or|when|where|with)
1299
1333
  (?=(?:[+\-*/~^<>%&|?!@#.])?[a-zA-Z$_](?:[\w$-]*[\w$])?)''',
1300
1334
  Keyword.Control),
1301
- (r'([a-zA-Z$_](?:[\w$-]*[\w$])?)(?!\n)\s+(?=[\'"\d{\[(])',
1302
- Keyword.Control),
1335
+ (r'([a-zA-Z$_](?:[\w$-]*[\w$])?)(?!\n)(\s+)(?=[\'"\d{\[(])',
1336
+ bygroups(Keyword.Control, Whitespace)),
1303
1337
  (r'''(?x)
1304
1338
  (?:
1305
1339
  (?<=[%=])|
@@ -1308,11 +1342,11 @@ class EarlGreyLexer(RegexLexer):
1308
1342
  (?<=each\*|where)
1309
1343
  )(\s+)
1310
1344
  ([a-zA-Z$_](?:[\w$-]*[\w$])?)(:)''',
1311
- bygroups(Text, Keyword.Control, Punctuation)),
1345
+ bygroups(Whitespace, Keyword.Control, Punctuation)),
1312
1346
  (r'''(?x)
1313
1347
  (?<![+\-*/~^<>%&|?!@#.])(\s+)
1314
1348
  ([a-zA-Z$_](?:[\w$-]*[\w$])?)(:)''',
1315
- bygroups(Text, Keyword.Control, Punctuation)),
1349
+ bygroups(Whitespace, Keyword.Control, Punctuation)),
1316
1350
  ],
1317
1351
  'nested': [
1318
1352
  (r'''(?x)
@@ -1426,25 +1460,24 @@ class EarlGreyLexer(RegexLexer):
1426
1460
 
1427
1461
  class JuttleLexer(RegexLexer):
1428
1462
  """
1429
- For `Juttle`_ source code.
1430
-
1431
- .. _Juttle: https://github.com/juttle/juttle
1463
+ For Juttle source code.
1432
1464
 
1433
1465
  .. versionadded:: 2.2
1434
1466
  """
1435
1467
 
1436
1468
  name = 'Juttle'
1469
+ url = 'http://juttle.github.io/'
1437
1470
  aliases = ['juttle']
1438
1471
  filenames = ['*.juttle']
1439
1472
  mimetypes = ['application/juttle', 'application/x-juttle',
1440
1473
  'text/x-juttle', 'text/juttle']
1441
1474
 
1442
- flags = re.DOTALL | re.UNICODE | re.MULTILINE
1475
+ flags = re.DOTALL | re.MULTILINE
1443
1476
 
1444
1477
  tokens = {
1445
1478
  'commentsandwhitespace': [
1446
- (r'\s+', Text),
1447
- (r'//.*?\n', Comment.Single),
1479
+ (r'\s+', Whitespace),
1480
+ (r'(//.*?)(\n)', bygroups(Comment.Single, Whitespace)),
1448
1481
  (r'/\*.*?\*/', Comment.Multiline)
1449
1482
  ],
1450
1483
  'slashstartsregex': [
@@ -1525,8 +1558,9 @@ class NodeConsoleLexer(Lexer):
1525
1558
  for match in line_re.finditer(text):
1526
1559
  line = match.group()
1527
1560
  if line.startswith('> '):
1528
- insertions.append((len(curcode),
1529
- [(0, Generic.Prompt, line[:2])]))
1561
+ insertions.append((len(curcode),
1562
+ [(0, Generic.Prompt, line[:1]),
1563
+ (1, Whitespace, line[1:2])]))
1530
1564
 
1531
1565
  curcode += line[2:]
1532
1566
  elif line.startswith('...'):
@@ -1534,21 +1568,21 @@ class NodeConsoleLexer(Lexer):
1534
1568
  code = line.lstrip('.')
1535
1569
  lead = len(line) - len(code)
1536
1570
 
1537
- insertions.append((len(curcode),
1571
+ insertions.append((len(curcode),
1538
1572
  [(0, Generic.Prompt, line[:lead])]))
1539
1573
 
1540
1574
  curcode += code
1541
1575
  else:
1542
1576
  if curcode:
1543
- yield from do_insertions(insertions,
1577
+ yield from do_insertions(insertions,
1544
1578
  jslexer.get_tokens_unprocessed(curcode))
1545
1579
 
1546
1580
  curcode = ''
1547
1581
  insertions = []
1548
1582
 
1549
- yield from do_insertions([],
1583
+ yield from do_insertions([],
1550
1584
  jslexer.get_tokens_unprocessed(line))
1551
1585
 
1552
1586
  if curcode:
1553
- yield from do_insertions(insertions,
1587
+ yield from do_insertions(insertions,
1554
1588
  jslexer.get_tokens_unprocessed(curcode))