pygments.rb 1.2.1 → 2.0.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 (381) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -6
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +11 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +148 -229
  17. data/lib/pygments/version.rb +2 -2
  18. data/lib/pygments.rb +10 -11
  19. data/pygments.rb.gemspec +12 -10
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +38 -29
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +9 -8
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +68 -41
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +28 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +440 -76
  81. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +5 -5
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +17 -2
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +187 -36
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +144 -62
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +46 -19
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +62 -5
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +48 -21
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -1
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +60 -45
  140. data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +1 -1
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +22 -22
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -227
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +76 -72
  184. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +162 -42
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +3 -3
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -44
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +102 -121
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +4 -11
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +3 -3
  214. data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +31 -28
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +1 -1
  224. data/vendor/pygments-main/pygments/plugin.py +4 -2
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +10 -4
  230. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -1
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/{stata.py → stata_light.py} +14 -15
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +15 -92
  267. metadata +68 -136
  268. data/CHANGELOG.md +0 -111
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1186
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -354
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -166
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -728
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -101
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/requirements.txt +0 -5
  331. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  332. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  333. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  334. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  335. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  336. data/vendor/pygments-main/scripts/pylintrc +0 -301
  337. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  338. data/vendor/pygments-main/setup.cfg +0 -10
  339. data/vendor/pygments-main/setup.py +0 -77
  340. data/vendor/pygments-main/tox.ini +0 -7
  341. data/vendor/simplejson/.gitignore +0 -10
  342. data/vendor/simplejson/.travis.yml +0 -5
  343. data/vendor/simplejson/CHANGES.txt +0 -291
  344. data/vendor/simplejson/LICENSE.txt +0 -19
  345. data/vendor/simplejson/MANIFEST.in +0 -5
  346. data/vendor/simplejson/README.rst +0 -19
  347. data/vendor/simplejson/conf.py +0 -179
  348. data/vendor/simplejson/index.rst +0 -628
  349. data/vendor/simplejson/scripts/make_docs.py +0 -18
  350. data/vendor/simplejson/setup.py +0 -104
  351. data/vendor/simplejson/simplejson/__init__.py +0 -510
  352. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  353. data/vendor/simplejson/simplejson/decoder.py +0 -425
  354. data/vendor/simplejson/simplejson/encoder.py +0 -567
  355. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  356. data/vendor/simplejson/simplejson/scanner.py +0 -77
  357. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  358. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  359. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  360. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  361. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  362. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  363. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  364. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  365. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  366. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  367. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  368. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  369. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  370. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  371. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  372. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  373. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  374. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  375. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  376. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  377. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  378. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  379. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  380. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  381. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for interactive fiction languages.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -38,10 +38,10 @@ class Inform6Lexer(RegexLexer):
38
38
  # Inform 7 maps these four character classes to their ASCII
39
39
  # equivalents. To support Inform 6 inclusions within Inform 7,
40
40
  # Inform6Lexer maps them too.
41
- _dash = u'\\-\u2010-\u2014'
42
- _dquote = u'"\u201c\u201d'
43
- _squote = u"'\u2018\u2019"
44
- _newline = u'\\n\u0085\u2028\u2029'
41
+ _dash = '\\-\u2010-\u2014'
42
+ _dquote = '"\u201c\u201d'
43
+ _squote = "'\u2018\u2019"
44
+ _newline = '\\n\u0085\u2028\u2029'
45
45
 
46
46
  tokens = {
47
47
  'root': [
@@ -118,7 +118,7 @@ class Inform6Lexer(RegexLexer):
118
118
  include('_whitespace'),
119
119
  # Strings
120
120
  (r'[%s][^@][%s]' % (_squote, _squote), String.Char, '#pop'),
121
- (r'([%s])(@\{[0-9a-fA-F]{1,4}\})([%s])' % (_squote, _squote),
121
+ (r'([%s])(@\{[0-9a-fA-F]*\})([%s])' % (_squote, _squote),
122
122
  bygroups(String.Char, String.Escape, String.Char), '#pop'),
123
123
  (r'([%s])(@.{2})([%s])' % (_squote, _squote),
124
124
  bygroups(String.Char, String.Escape, String.Char), '#pop'),
@@ -180,7 +180,7 @@ class Inform6Lexer(RegexLexer):
180
180
  (r'[~^]+', String.Escape),
181
181
  (r'[^~^\\@({%s]+' % _squote, String.Single),
182
182
  (r'[({]', String.Single),
183
- (r'@\{[0-9a-fA-F]{,4}\}', String.Escape),
183
+ (r'@\{[0-9a-fA-F]*\}', String.Escape),
184
184
  (r'@.{2}', String.Escape),
185
185
  (r'[%s]' % _squote, String.Single, '#pop')
186
186
  ],
@@ -191,7 +191,7 @@ class Inform6Lexer(RegexLexer):
191
191
  (r'\\', String.Escape),
192
192
  (r'@(\\\s*[%s]\s*)*@((\\\s*[%s]\s*)*[0-9])*' %
193
193
  (_newline, _newline), String.Escape),
194
- (r'@(\\\s*[%s]\s*)*\{((\\\s*[%s]\s*)*[0-9a-fA-F]){,4}'
194
+ (r'@(\\\s*[%s]\s*)*\{((\\\s*[%s]\s*)*[0-9a-fA-F])*'
195
195
  r'(\\\s*[%s]\s*)*\}' % (_newline, _newline, _newline),
196
196
  String.Escape),
197
197
  (r'@(\\\s*[%s]\s*)*.(\\\s*[%s]\s*)*.' % (_newline, _newline),
@@ -257,8 +257,8 @@ class Inform6Lexer(RegexLexer):
257
257
  (r'(?i)(extend|verb)\b', Keyword, 'grammar'),
258
258
  (r'(?i)fake_action\b', Keyword, ('default', '_constant')),
259
259
  (r'(?i)import\b', Keyword, 'manifest'),
260
- (r'(?i)(include|link)\b', Keyword,
261
- ('default', 'before-plain-string')),
260
+ (r'(?i)(include|link|origsource)\b', Keyword,
261
+ ('default', 'before-plain-string?')),
262
262
  (r'(?i)(lowstring|undef)\b', Keyword, ('default', '_constant')),
263
263
  (r'(?i)message\b', Keyword, ('default', 'diagnostic')),
264
264
  (r'(?i)(nearby|object)\b', Keyword,
@@ -365,11 +365,12 @@ class Inform6Lexer(RegexLexer):
365
365
  'diagnostic': [
366
366
  include('_whitespace'),
367
367
  (r'[%s]' % _dquote, String.Double, ('#pop', 'message-string')),
368
- default(('#pop', 'before-plain-string', 'directive-keyword?'))
368
+ default(('#pop', 'before-plain-string?', 'directive-keyword?'))
369
369
  ],
370
- 'before-plain-string': [
370
+ 'before-plain-string?': [
371
371
  include('_whitespace'),
372
- (r'[%s]' % _dquote, String.Double, ('#pop', 'plain-string'))
372
+ (r'[%s]' % _dquote, String.Double, ('#pop', 'plain-string')),
373
+ default('#pop')
373
374
  ],
374
375
  'message-string': [
375
376
  (r'[~^]+', String.Escape),
@@ -386,6 +387,7 @@ class Inform6Lexer(RegexLexer):
386
387
  'replace', 'reverse', 'scope', 'score', 'special', 'string', 'table', 'terminating',
387
388
  'time', 'topic', 'warning', 'with'), suffix=r'\b'),
388
389
  Keyword, '#pop'),
390
+ (r'static\b', Keyword),
389
391
  (r'[%s]{1,2}>|[+=]' % _dash, Punctuation, '#pop')
390
392
  ],
391
393
  '_directive-keyword': [
@@ -514,6 +516,15 @@ class Inform6Lexer(RegexLexer):
514
516
  while objectloop_queue:
515
517
  yield objectloop_queue.pop(0)
516
518
 
519
+ def analyse_text(text):
520
+ """We try to find a keyword which seem relatively common, unfortunately
521
+ there is a decent overlap with Smalltalk keywords otherwise here.."""
522
+ result = 0
523
+ if re.search('\borigsource\b', text, re.IGNORECASE):
524
+ result += 0.05
525
+
526
+ return result
527
+
517
528
 
518
529
  class Inform7Lexer(RegexLexer):
519
530
  """
@@ -856,7 +867,7 @@ class Tads3Lexer(RegexLexer):
856
867
 
857
868
  tokens = {
858
869
  'root': [
859
- (u'\ufeff', Text),
870
+ ('\ufeff', Text),
860
871
  (r'\{', Punctuation, 'object-body'),
861
872
  (r';+', Punctuation),
862
873
  (r'(?=(argcount|break|case|catch|continue|default|definingobj|'
@@ -911,7 +922,7 @@ class Tads3Lexer(RegexLexer):
911
922
  'block?/root': [
912
923
  (r'\{', Punctuation, ('#pop', 'block')),
913
924
  include('whitespace'),
914
- (r'(?=[[\'"<(:])', Text, # It might be a VerbRule macro.
925
+ (r'(?=[\[\'"<(:])', Text, # It might be a VerbRule macro.
915
926
  ('#pop', 'object-body/no-braces', 'grammar', 'grammar-rules')),
916
927
  # It might be a macro like DefineAction.
917
928
  default(('#pop', 'object-body/no-braces'))
@@ -1341,3 +1352,17 @@ class Tads3Lexer(RegexLexer):
1341
1352
  else:
1342
1353
  token = Comment
1343
1354
  yield index, token, value
1355
+
1356
+ def analyse_text(text):
1357
+ """This is a rather generic descriptive language without strong
1358
+ identifiers. It looks like a 'GameMainDef' has to be present,
1359
+ and/or a 'versionInfo' with an 'IFID' field."""
1360
+ result = 0
1361
+ if '__TADS' in text or 'GameMainDef' in text:
1362
+ result += 0.2
1363
+
1364
+ # This is a fairly unique keyword which is likely used in source as well
1365
+ if 'versionInfo' in text and 'IFID' in text:
1366
+ result += 0.1
1367
+
1368
+ return result
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for the Io language.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -49,7 +49,7 @@ class IoLexer(RegexLexer):
49
49
  # names
50
50
  (r'(Object|list|List|Map|args|Sequence|Coroutine|File)\b',
51
51
  Name.Builtin),
52
- ('[a-zA-Z_]\w*', Name),
52
+ (r'[a-zA-Z_]\w*', Name),
53
53
  # numbers
54
54
  (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
55
55
  (r'\d+', Number.Integer)
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the J programming language.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -52,13 +52,13 @@ class JLexer(RegexLexer):
52
52
  Name.Function, 'explicitDefinition'),
53
53
 
54
54
  # Flow Control
55
- (words(('for_', 'goto_', 'label_'), suffix=validName+'\.'), Name.Label),
55
+ (words(('for_', 'goto_', 'label_'), suffix=validName+r'\.'), Name.Label),
56
56
  (words((
57
57
  'assert', 'break', 'case', 'catch', 'catchd',
58
58
  'catcht', 'continue', 'do', 'else', 'elseif',
59
59
  'end', 'fcase', 'for', 'if', 'return',
60
60
  'select', 'throw', 'try', 'while', 'whilst',
61
- ), suffix='\.'), Name.Label),
61
+ ), suffix=r'\.'), Name.Label),
62
62
 
63
63
  # Variable Names
64
64
  (validName, Name.Variable),
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for JavaScript and related languages.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -15,7 +15,7 @@ from pygments.lexer import RegexLexer, include, bygroups, default, using, \
15
15
  this, words, combined
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
17
  Number, Punctuation, Other
18
- from pygments.util import get_bool_opt, iteritems
18
+ from pygments.util import get_bool_opt
19
19
  import pygments.unistring as uni
20
20
 
21
21
  __all__ = ['JavascriptLexer', 'KalLexer', 'LiveScriptLexer', 'DartLexer',
@@ -26,7 +26,7 @@ JS_IDENT_START = ('(?:[$_' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl') +
26
26
  ']|\\\\u[a-fA-F0-9]{4})')
27
27
  JS_IDENT_PART = ('(?:[$' + uni.combine('Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Nl',
28
28
  'Mn', 'Mc', 'Nd', 'Pc') +
29
- u'\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
29
+ '\u200c\u200d]|\\\\u[a-fA-F0-9]{4})')
30
30
  JS_IDENT = JS_IDENT_START + '(?:' + JS_IDENT_PART + ')*'
31
31
 
32
32
 
@@ -37,7 +37,7 @@ class JavascriptLexer(RegexLexer):
37
37
 
38
38
  name = 'JavaScript'
39
39
  aliases = ['js', 'javascript']
40
- filenames = ['*.js', '*.jsm']
40
+ filenames = ['*.js', '*.jsm', '*.mjs']
41
41
  mimetypes = ['application/javascript', 'application/x-javascript',
42
42
  'text/x-javascript', 'text/javascript']
43
43
 
@@ -64,18 +64,24 @@ class JavascriptLexer(RegexLexer):
64
64
  (r'\A#! ?/.*?\n', Comment.Hashbang), # recognized by node.js
65
65
  (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
66
66
  include('commentsandwhitespace'),
67
- (r'(\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?', Number.Float),
68
- (r'0[bB][01]+', Number.Bin),
69
- (r'0[oO][0-7]+', Number.Oct),
70
- (r'0[xX][0-9a-fA-F]+', Number.Hex),
71
- (r'[0-9]+', Number.Integer),
67
+
68
+ # Numeric literals
69
+ (r'0[bB][01]+n?', Number.Bin),
70
+ (r'0[oO]?[0-7]+n?', Number.Oct), # Browsers support "0o7" and "07" notations
71
+ (r'0[xX][0-9a-fA-F]+n?', Number.Hex),
72
+ (r'[0-9]+n', Number.Integer), # Javascript BigInt requires an "n" postfix
73
+ # Javascript doesn't have actual integer literals, so every other
74
+ # numeric literal is handled by the regex below (including "normal")
75
+ # integers
76
+ (r'(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?', Number.Float),
77
+
72
78
  (r'\.\.\.|=>', Punctuation),
73
79
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
74
80
  r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
75
81
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
76
82
  (r'[})\].]', Punctuation),
77
83
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
78
- r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|'
84
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|await|async|'
79
85
  r'this|of)\b', Keyword, 'slashstartsregex'),
80
86
  (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
81
87
  (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
@@ -259,11 +265,11 @@ class LiveScriptLexer(RegexLexer):
259
265
  (r'//', String.Regex, ('#pop', 'multilineregex')),
260
266
  (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
261
267
  r'([gim]+\b|\B)', String.Regex, '#pop'),
268
+ (r'/', Operator, '#pop'),
262
269
  default('#pop'),
263
270
  ],
264
271
  'root': [
265
- # this next expr leads to infinite loops root -> slashstartsregex
266
- # (r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
272
+ (r'\A(?=\s|/)', Text, 'slashstartsregex'),
267
273
  include('commentsandwhitespace'),
268
274
  (r'(?:\([^()]+\))?[ ]*[~-]{1,2}>|'
269
275
  r'(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}', Name.Function),
@@ -340,7 +346,7 @@ class LiveScriptLexer(RegexLexer):
340
346
 
341
347
  class DartLexer(RegexLexer):
342
348
  """
343
- For `Dart <http://dartlang.org/>`_ source code.
349
+ For `Dart <http://dart.dev/>`_ source code.
344
350
 
345
351
  .. versionadded:: 1.5
346
352
  """
@@ -361,17 +367,19 @@ class DartLexer(RegexLexer):
361
367
  (r'[^\S\n]+', Text),
362
368
  (r'//.*?\n', Comment.Single),
363
369
  (r'/\*.*?\*/', Comment.Multiline),
364
- (r'\b(class)\b(\s+)',
370
+ (r'\b(class|extension|mixin)\b(\s+)',
365
371
  bygroups(Keyword.Declaration, Text), 'class'),
366
- (r'\b(assert|break|case|catch|continue|default|do|else|finally|for|'
367
- r'if|in|is|new|return|super|switch|this|throw|try|while)\b',
372
+ (r'\b(as|assert|break|case|catch|const|continue|default|do|else|finally|'
373
+ r'for|if|in|is|new|rethrow|return|super|switch|this|throw|try|while)\b',
368
374
  Keyword),
369
- (r'\b(abstract|async|await|const|extends|factory|final|get|'
370
- r'implements|native|operator|set|static|sync|typedef|var|with|'
371
- r'yield)\b', Keyword.Declaration),
372
- (r'\b(bool|double|dynamic|int|num|Object|String|void)\b', Keyword.Type),
375
+ (r'\b(abstract|async|await|const|covariant|extends|external|factory|final|'
376
+ r'get|implements|late|native|on|operator|required|set|static|sync|typedef|'
377
+ r'var|with|yield)\b', Keyword.Declaration),
378
+ (r'\b(bool|double|dynamic|int|num|Function|Never|Null|Object|String|void)\b',
379
+ Keyword.Type),
373
380
  (r'\b(false|null|true)\b', Keyword.Constant),
374
381
  (r'[~!%^&*+=|?:<>/-]|as\b', Operator),
382
+ (r'@[a-zA-Z_$]\w*', Name.Decorator),
375
383
  (r'[a-zA-Z_$]\w*:', Name.Label),
376
384
  (r'[a-zA-Z_$]\w*', Name),
377
385
  (r'[(){}\[\],.;]', Punctuation),
@@ -388,7 +396,7 @@ class DartLexer(RegexLexer):
388
396
  'import_decl': [
389
397
  include('string_literal'),
390
398
  (r'\s+', Text),
391
- (r'\b(as|show|hide)\b', Keyword),
399
+ (r'\b(as|deferred|show|hide)\b', Keyword),
392
400
  (r'[a-zA-Z_$]\w*', Name),
393
401
  (r'\,', Punctuation),
394
402
  (r'\;', Punctuation, '#pop')
@@ -453,6 +461,10 @@ class TypeScriptLexer(RegexLexer):
453
461
 
454
462
  flags = re.DOTALL | re.MULTILINE
455
463
 
464
+ # Higher priority than the TypoScriptLexer, as TypeScript is far more
465
+ # common these days
466
+ priority = 0.5
467
+
456
468
  tokens = {
457
469
  'commentsandwhitespace': [
458
470
  (r'\s+', Text),
@@ -478,7 +490,7 @@ class TypeScriptLexer(RegexLexer):
478
490
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
479
491
  (r'[})\].]', Punctuation),
480
492
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
481
- r'throw|try|catch|finally|new|delete|typeof|instanceof|void|'
493
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
482
494
  r'this)\b', Keyword, 'slashstartsregex'),
483
495
  (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
484
496
  (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
@@ -534,12 +546,6 @@ class TypeScriptLexer(RegexLexer):
534
546
  ],
535
547
  }
536
548
 
537
- def analyse_text(text):
538
- if re.search('^(import.+(from\s+)?["\']|'
539
- '(export\s*)?(interface|class|function)\s+)',
540
- text, re.MULTILINE):
541
- return 1.0
542
-
543
549
 
544
550
  class LassoLexer(RegexLexer):
545
551
  """
@@ -768,9 +774,9 @@ class LassoLexer(RegexLexer):
768
774
  self._members = set()
769
775
  if self.builtinshighlighting:
770
776
  from pygments.lexers._lasso_builtins import BUILTINS, MEMBERS
771
- for key, value in iteritems(BUILTINS):
777
+ for key, value in BUILTINS.items():
772
778
  self._builtins.update(value)
773
- for key, value in iteritems(MEMBERS):
779
+ for key, value in MEMBERS.items():
774
780
  self._members.update(value)
775
781
  RegexLexer.__init__(self, **options)
776
782
 
@@ -1015,7 +1021,7 @@ class ObjectiveJLexer(RegexLexer):
1015
1021
  }
1016
1022
 
1017
1023
  def analyse_text(text):
1018
- if re.search('^\s*@import\s+[<"]', text, re.MULTILINE):
1024
+ if re.search(r'^\s*@import\s+[<"]', text, re.MULTILINE):
1019
1025
  # special directive found in most Objective-J files
1020
1026
  return True
1021
1027
  return False
@@ -1035,11 +1041,10 @@ class CoffeeScriptLexer(RegexLexer):
1035
1041
  filenames = ['*.coffee']
1036
1042
  mimetypes = ['text/coffeescript']
1037
1043
 
1038
-
1039
1044
  _operator_re = (
1040
1045
  r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|'
1041
1046
  r'\|\||\\(?=\n)|'
1042
- r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?')
1047
+ r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?')
1043
1048
 
1044
1049
  flags = re.DOTALL
1045
1050
  tokens = {
@@ -1062,12 +1067,12 @@ class CoffeeScriptLexer(RegexLexer):
1062
1067
  # This isn't really guarding against mishighlighting well-formed
1063
1068
  # code, just the ability to infinite-loop between root and
1064
1069
  # slashstartsregex.
1065
- (r'/', Operator),
1070
+ (r'/', Operator, '#pop'),
1066
1071
  default('#pop'),
1067
1072
  ],
1068
1073
  'root': [
1069
1074
  include('commentsandwhitespace'),
1070
- (r'^(?=\s|/)', Text, 'slashstartsregex'),
1075
+ (r'\A(?=\s|/)', Text, 'slashstartsregex'),
1071
1076
  (_operator_re, Operator, 'slashstartsregex'),
1072
1077
  (r'(?:\([^()]*\))?\s*[=-]>', Name.Function, 'slashstartsregex'),
1073
1078
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
@@ -1137,7 +1142,7 @@ class CoffeeScriptLexer(RegexLexer):
1137
1142
 
1138
1143
  class MaskLexer(RegexLexer):
1139
1144
  """
1140
- For `Mask <http://github.com/atmajs/MaskJS>`__ markup.
1145
+ For `Mask <https://github.com/atmajs/MaskJS>`__ markup.
1141
1146
 
1142
1147
  .. versionadded:: 2.0
1143
1148
  """
@@ -1459,21 +1464,24 @@ class EarlGreyLexer(RegexLexer):
1459
1464
  (r'8r[0-7]+', Number.Oct),
1460
1465
  (r'2r[01]+', Number.Bin),
1461
1466
  (r'16r[a-fA-F0-9]+', Number.Hex),
1462
- (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?', Number.Radix),
1467
+ (r'([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?',
1468
+ Number.Radix),
1463
1469
  (r'\d+', Number.Integer)
1464
1470
  ],
1465
1471
  }
1466
1472
 
1473
+
1467
1474
  class JuttleLexer(RegexLexer):
1468
1475
  """
1469
1476
  For `Juttle`_ source code.
1470
1477
 
1471
1478
  .. _Juttle: https://github.com/juttle/juttle
1472
1479
 
1480
+ .. versionadded:: 2.2
1473
1481
  """
1474
1482
 
1475
1483
  name = 'Juttle'
1476
- aliases = ['juttle', 'juttle']
1484
+ aliases = ['juttle']
1477
1485
  filenames = ['*.juttle']
1478
1486
  mimetypes = ['application/juttle', 'application/x-juttle',
1479
1487
  'text/x-juttle', 'text/juttle']
@@ -1500,21 +1508,28 @@ class JuttleLexer(RegexLexer):
1500
1508
  (r'^(?=\s|/)', Text, 'slashstartsregex'),
1501
1509
  include('commentsandwhitespace'),
1502
1510
  (r':\d{2}:\d{2}:\d{2}(\.\d*)?:', String.Moment),
1503
- (r':(now|beginning|end|forever|yesterday|today|tomorrow|(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
1504
- (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
1505
- (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?'
1506
- r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?)'
1511
+ (r':(now|beginning|end|forever|yesterday|today|tomorrow|'
1512
+ r'(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
1513
+ (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?'
1514
+ r'(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
1515
+ (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|'
1516
+ r'day|week|month|year)[s]?'
1517
+ r'(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|'
1518
+ r'day|week|month|year)[s]?)'
1507
1519
  r'|[ ]+(ago|from[ ]+now))*:', String.Moment),
1508
1520
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
1509
1521
  r'(==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
1510
1522
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
1511
1523
  (r'[})\].]', Punctuation),
1512
1524
  (r'(import|return|continue|if|else)\b', Keyword, 'slashstartsregex'),
1513
- (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration, 'slashstartsregex'),
1525
+ (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration,
1526
+ 'slashstartsregex'),
1514
1527
  (r'(batch|emit|filter|head|join|keep|pace|pass|put|read|reduce|remove|'
1515
- r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b', Keyword.Reserved),
1528
+ r'sequence|skip|sort|split|tail|unbatch|uniq|view|write)\b',
1529
+ Keyword.Reserved),
1516
1530
  (r'(true|false|null|Infinity)\b', Keyword.Constant),
1517
- (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b', Name.Builtin),
1531
+ (r'(Array|Date|Juttle|Math|Number|Object|RegExp|String)\b',
1532
+ Name.Builtin),
1518
1533
  (JS_IDENT, Name.Other),
1519
1534
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
1520
1535
  (r'[0-9]+', Number.Integer),
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for the Julia language.
7
7
 
8
- :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -15,13 +15,12 @@ from pygments.lexer import Lexer, RegexLexer, bygroups, do_insertions, \
15
15
  words, include
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
17
  Number, Punctuation, Generic
18
- from pygments.util import shebang_matches, unirange
18
+ from pygments.util import shebang_matches
19
19
 
20
20
  __all__ = ['JuliaLexer', 'JuliaConsoleLexer']
21
21
 
22
- allowed_variable = (
23
- u'(?:[a-zA-Z_\u00A1-\uffff]|%s)(?:[a-zA-Z_0-9\u00A1-\uffff]|%s)*!*' %
24
- ((unirange(0x10000, 0x10ffff),) * 2))
22
+ allowed_variable = \
23
+ '(?:[a-zA-Z_\u00A1-\U0010ffff]|%s)(?:[a-zA-Z_0-9\u00A1-\U0010ffff])*!*'
25
24
 
26
25
 
27
26
  class JuliaLexer(RegexLexer):
@@ -48,6 +47,7 @@ class JuliaLexer(RegexLexer):
48
47
 
49
48
  # keywords
50
49
  (r'in\b', Keyword.Pseudo),
50
+ (r'isa\b', Keyword.Pseudo),
51
51
  (r'(true|false)\b', Keyword.Constant),
52
52
  (r'(local|global|const)\b', Keyword.Declaration),
53
53
  (words([
@@ -55,7 +55,8 @@ class JuliaLexer(RegexLexer):
55
55
  'baremodule', 'begin', 'bitstype', 'break', 'catch', 'ccall',
56
56
  'continue', 'do', 'else', 'elseif', 'end', 'export', 'finally',
57
57
  'for', 'if', 'import', 'importall', 'let', 'macro', 'module',
58
- 'quote', 'return', 'try', 'using', 'while'],
58
+ 'mutable', 'primitive', 'quote', 'return', 'struct', 'try',
59
+ 'using', 'while'],
59
60
  suffix=r'\b'), Keyword),
60
61
 
61
62
  # NOTE
@@ -129,60 +130,59 @@ class JuliaLexer(RegexLexer):
129
130
 
130
131
  # builtins
131
132
  (words([
132
- u'ARGS', u'CPU_CORES', u'C_NULL', u'DevNull', u'ENDIAN_BOM',
133
- u'ENV', u'I', u'Inf', u'Inf16', u'Inf32', u'Inf64',
134
- u'InsertionSort', u'JULIA_HOME', u'LOAD_PATH', u'MergeSort',
135
- u'NaN', u'NaN16', u'NaN32', u'NaN64', u'OS_NAME',
136
- u'QuickSort', u'RoundDown', u'RoundFromZero', u'RoundNearest',
137
- u'RoundNearestTiesAway', u'RoundNearestTiesUp',
138
- u'RoundToZero', u'RoundUp', u'STDERR', u'STDIN', u'STDOUT',
139
- u'VERSION', u'WORD_SIZE', u'catalan', u'e', u'eu',
140
- u'eulergamma', u'golden', u'im', u'nothing', u'pi', u'γ',
141
- u'π', u'φ'],
133
+ 'ARGS', 'CPU_CORES', 'C_NULL', 'DevNull', 'ENDIAN_BOM',
134
+ 'ENV', 'I', 'Inf', 'Inf16', 'Inf32', 'Inf64',
135
+ 'InsertionSort', 'JULIA_HOME', 'LOAD_PATH', 'MergeSort',
136
+ 'NaN', 'NaN16', 'NaN32', 'NaN64', 'OS_NAME',
137
+ 'QuickSort', 'RoundDown', 'RoundFromZero', 'RoundNearest',
138
+ 'RoundNearestTiesAway', 'RoundNearestTiesUp',
139
+ 'RoundToZero', 'RoundUp', 'STDERR', 'STDIN', 'STDOUT',
140
+ 'VERSION', 'WORD_SIZE', 'catalan', 'e', 'eu',
141
+ 'eulergamma', 'golden', 'im', 'nothing', 'pi', 'γ', 'π', 'φ'],
142
142
  suffix=r'\b'), Name.Builtin),
143
143
 
144
144
  # operators
145
145
  # see: https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm
146
- (words([
146
+ (words((
147
147
  # prec-assignment
148
- u'=', u':=', u'+=', u'-=', u'*=', u'/=', u'//=', u'.//=', u'.*=', u'./=',
149
- u'\=', u'.\=', u'^=', u'.^=', u'÷=', u'.÷=', u'%=', u'.%=', u'|=', u'&=',
150
- u'$=', u'=>', u'<<=', u'>>=', u'>>>=', u'~', u'.+=', u'.-=',
148
+ '=', ':=', '+=', '-=', '*=', '/=', '//=', './/=', '.*=', './=',
149
+ '\\=', '.\\=', '^=', '.^=', '÷=', '.÷=', '%=', '.%=', '|=', '&=',
150
+ '$=', '=>', '<<=', '>>=', '>>>=', '~', '.+=', '.-=',
151
151
  # prec-conditional
152
- u'?',
152
+ '?',
153
153
  # prec-arrow
154
- u'--', u'-->',
154
+ '--', '-->',
155
155
  # prec-lazy-or
156
- u'||',
156
+ '||',
157
157
  # prec-lazy-and
158
- u'&&',
158
+ '&&',
159
159
  # prec-comparison
160
- u'>', u'<', u'>=', u'≥', u'<=', u'≤', u'==', u'===', u'≡', u'!=', u'≠',
161
- u'!==', u'≢', u'.>', u'.<', u'.>=', u'.≥', u'.<=', u'.≤', u'.==', u'.!=',
162
- u'.≠', u'.=', u'.!', u'<:', u'>:', u'∈', u'∉', u'∋', u'∌', u'⊆',
163
- u'⊈', u'⊂',
164
- u'⊄', u'⊊',
160
+ '>', '<', '>=', '≥', '<=', '≤', '==', '===', '≡', '!=', '≠',
161
+ '!==', '≢', '.>', '.<', '.>=', '.≥', '.<=', '.≤', '.==', '.!=',
162
+ '.≠', '.=', '.!', '<:', '>:', '∈', '∉', '∋', '∌', '⊆',
163
+ '⊈', '⊂',
164
+ '⊄', '⊊',
165
165
  # prec-pipe
166
- u'|>', u'<|',
166
+ '|>', '<|',
167
167
  # prec-colon
168
- u':',
168
+ ':',
169
169
  # prec-plus
170
- u'+', u'-', u'.+', u'.-', u'|', u'∪', u'$',
170
+ '.+', '.-', '|', '∪', '$',
171
171
  # prec-bitshift
172
- u'<<', u'>>', u'>>>', u'.<<', u'.>>', u'.>>>',
172
+ '<<', '>>', '>>>', '.<<', '.>>', '.>>>',
173
173
  # prec-times
174
- u'*', u'/', u'./', u'÷', u'.÷', u'%', u'⋅', u'.%', u'.*', u'\\', u'.\\', u'&', u'∩',
174
+ '*', '/', './', '÷', '.÷', '%', '⋅', '.%', '.*', '\\', '.\\', '&', '∩',
175
175
  # prec-rational
176
- u'//', u'.//',
176
+ '//', './/',
177
177
  # prec-power
178
- u'^', u'.^',
178
+ '^', '.^',
179
179
  # prec-decl
180
- u'::',
180
+ '::',
181
181
  # prec-dot
182
- u'.',
182
+ '.',
183
183
  # unary op
184
- u'+', u'-', u'!', u'~', u'√', u'∛', u'∜'
185
- ]), Operator),
184
+ '+', '-', '!', '√', '∛', '∜',
185
+ )), Operator),
186
186
 
187
187
  # chars
188
188
  (r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|"
@@ -314,9 +314,8 @@ class JuliaConsoleLexer(Lexer):
314
314
  curcode += line[6:]
315
315
  else:
316
316
  if curcode:
317
- for item in do_insertions(
318
- insertions, jllexer.get_tokens_unprocessed(curcode)):
319
- yield item
317
+ yield from do_insertions(
318
+ insertions, jllexer.get_tokens_unprocessed(curcode))
320
319
  curcode = ''
321
320
  insertions = []
322
321
  if line.startswith('ERROR: ') or error:
@@ -328,6 +327,5 @@ class JuliaConsoleLexer(Lexer):
328
327
  start += len(line)
329
328
 
330
329
  if curcode:
331
- for item in do_insertions(
332
- insertions, jllexer.get_tokens_unprocessed(curcode)):
333
- yield item
330
+ yield from do_insertions(
331
+ insertions, jllexer.get_tokens_unprocessed(curcode))