pygments.rb 1.1.2 → 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 (383) 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 -5
  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 +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -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 +94 -41
  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 +42 -6
  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 +102 -38
  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 +62 -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 +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  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 +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  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 +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  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 +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  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 +147 -65
  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 +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  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 +63 -6
  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 +52 -22
  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 +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  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 +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  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 +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  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 +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  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 -226
  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 +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  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 +175 -51
  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 +30 -26
  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 -42
  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 +144 -132
  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 +8 -14
  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 +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  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 +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  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 +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  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 +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  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 +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  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_light.py +39 -0
  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 +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  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 -1163
  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 -331
  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 -149
  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 -689
  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 -84
  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/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for Inferno os and all the related stuff.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
@@ -64,7 +64,7 @@ class LimboLexer(RegexLexer):
64
64
  (r'(byte|int|big|real|string|array|chan|list|adt'
65
65
  r'|fn|ref|of|module|self|type)\b', Keyword.Type),
66
66
  (r'(con|iota|nil)\b', Keyword.Constant),
67
- ('[a-zA-Z_]\w*', Name),
67
+ (r'[a-zA-Z_]\w*', Name),
68
68
  ],
69
69
  'statement' : [
70
70
  include('whitespace'),
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for installer/packager DSLs and formats.
7
7
 
8
- :copyright: Copyright 2006-2015 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
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for interactive fiction languages.
7
7
 
8
- :copyright: Copyright 2006-2015 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-2015 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-2015 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-2015 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
 
@@ -53,7 +53,7 @@ class JavascriptLexer(RegexLexer):
53
53
  'slashstartsregex': [
54
54
  include('commentsandwhitespace'),
55
55
  (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
56
- r'([gim]+\b|\B)', String.Regex, '#pop'),
56
+ r'([gimuy]+\b|\B)', String.Regex, '#pop'),
57
57
  (r'(?=/)', Text, ('#pop', 'badregex')),
58
58
  default('#pop')
59
59
  ],
@@ -64,13 +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
+
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
+
78
+ (r'\.\.\.|=>', Punctuation),
67
79
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
68
- r'(<<|>>>?|=>|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
69
- (r'\.\.\.', Punctuation),
80
+ r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
70
81
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
71
82
  (r'[})\].]', Punctuation),
72
83
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
73
- 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|'
74
85
  r'this|of)\b', Keyword, 'slashstartsregex'),
75
86
  (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
76
87
  (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
@@ -84,11 +95,6 @@ class JavascriptLexer(RegexLexer):
84
95
  r'Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|'
85
96
  r'document|this|window)\b', Name.Builtin),
86
97
  (JS_IDENT, Name.Other),
87
- (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
88
- (r'0b[01]+', Number.Bin),
89
- (r'0o[0-7]+', Number.Oct),
90
- (r'0x[0-9a-fA-F]+', Number.Hex),
91
- (r'[0-9]+', Number.Integer),
92
98
  (r'"(\\\\|\\"|[^"])*"', String.Double),
93
99
  (r"'(\\\\|\\'|[^'])*'", String.Single),
94
100
  (r'`', String.Backtick, 'interp'),
@@ -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,16 +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|const|extends|factory|final|get|implements|'
370
- r'native|operator|set|static|typedef|var)\b', Keyword.Declaration),
371
- (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),
372
380
  (r'\b(false|null|true)\b', Keyword.Constant),
373
381
  (r'[~!%^&*+=|?:<>/-]|as\b', Operator),
382
+ (r'@[a-zA-Z_$]\w*', Name.Decorator),
374
383
  (r'[a-zA-Z_$]\w*:', Name.Label),
375
384
  (r'[a-zA-Z_$]\w*', Name),
376
385
  (r'[(){}\[\],.;]', Punctuation),
@@ -387,7 +396,7 @@ class DartLexer(RegexLexer):
387
396
  'import_decl': [
388
397
  include('string_literal'),
389
398
  (r'\s+', Text),
390
- (r'\b(as|show|hide)\b', Keyword),
399
+ (r'\b(as|deferred|show|hide)\b', Keyword),
391
400
  (r'[a-zA-Z_$]\w*', Name),
392
401
  (r'\,', Punctuation),
393
402
  (r'\;', Punctuation, '#pop')
@@ -447,11 +456,15 @@ class TypeScriptLexer(RegexLexer):
447
456
 
448
457
  name = 'TypeScript'
449
458
  aliases = ['ts', 'typescript']
450
- filenames = ['*.ts']
459
+ filenames = ['*.ts', '*.tsx']
451
460
  mimetypes = ['text/x-typescript']
452
461
 
453
462
  flags = re.DOTALL | re.MULTILINE
454
463
 
464
+ # Higher priority than the TypoScriptLexer, as TypeScript is far more
465
+ # common these days
466
+ priority = 0.5
467
+
455
468
  tokens = {
456
469
  'commentsandwhitespace': [
457
470
  (r'\s+', Text),
@@ -477,7 +490,7 @@ class TypeScriptLexer(RegexLexer):
477
490
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
478
491
  (r'[})\].]', Punctuation),
479
492
  (r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
480
- r'throw|try|catch|finally|new|delete|typeof|instanceof|void|'
493
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
481
494
  r'this)\b', Keyword, 'slashstartsregex'),
482
495
  (r'(var|let|with|function)\b', Keyword.Declaration, 'slashstartsregex'),
483
496
  (r'(abstract|boolean|byte|char|class|const|debugger|double|enum|export|'
@@ -511,9 +524,26 @@ class TypeScriptLexer(RegexLexer):
511
524
  (r'[0-9]+', Number.Integer),
512
525
  (r'"(\\\\|\\"|[^"])*"', String.Double),
513
526
  (r"'(\\\\|\\'|[^'])*'", String.Single),
527
+ (r'`', String.Backtick, 'interp'),
514
528
  # Match stuff like: Decorators
515
529
  (r'@\w+', Keyword.Declaration),
516
- ]
530
+ ],
531
+
532
+ # The 'interp*' rules match those in JavascriptLexer. Changes made
533
+ # there should be reflected here as well.
534
+ 'interp': [
535
+ (r'`', String.Backtick, '#pop'),
536
+ (r'\\\\', String.Backtick),
537
+ (r'\\`', String.Backtick),
538
+ (r'\$\{', String.Interpol, 'interp-inside'),
539
+ (r'\$', String.Backtick),
540
+ (r'[^`\\$]+', String.Backtick),
541
+ ],
542
+ 'interp-inside': [
543
+ # TODO: should this include single-line comments and allow nesting strings?
544
+ (r'\}', String.Interpol, '#pop'),
545
+ include('root'),
546
+ ],
517
547
  }
518
548
 
519
549
 
@@ -545,12 +575,7 @@ class LassoLexer(RegexLexer):
545
575
  tokens = {
546
576
  'root': [
547
577
  (r'^#![ \S]+lasso9\b', Comment.Preproc, 'lasso'),
548
- (r'\[no_square_brackets\]', Comment.Preproc, 'nosquarebrackets'),
549
- (r'\[noprocess\]', Comment.Preproc, ('delimiters', 'noprocess')),
550
- (r'\[', Comment.Preproc, ('delimiters', 'squarebrackets')),
551
- (r'<\?(LassoScript|lasso|=)', Comment.Preproc,
552
- ('delimiters', 'anglebrackets')),
553
- (r'<(!--.*?-->)?', Other, 'delimiters'),
578
+ (r'(?=\[|<)', Other, 'delimiters'),
554
579
  (r'\s+', Other),
555
580
  default(('delimiters', 'lassofile')),
556
581
  ],
@@ -558,14 +583,14 @@ class LassoLexer(RegexLexer):
558
583
  (r'\[no_square_brackets\]', Comment.Preproc, 'nosquarebrackets'),
559
584
  (r'\[noprocess\]', Comment.Preproc, 'noprocess'),
560
585
  (r'\[', Comment.Preproc, 'squarebrackets'),
561
- (r'<\?(LassoScript|lasso|=)', Comment.Preproc, 'anglebrackets'),
586
+ (r'<\?(lasso(script)?|=)', Comment.Preproc, 'anglebrackets'),
562
587
  (r'<(!--.*?-->)?', Other),
563
588
  (r'[^[<]+', Other),
564
589
  ],
565
590
  'nosquarebrackets': [
566
591
  (r'\[noprocess\]', Comment.Preproc, 'noprocess'),
567
592
  (r'\[', Other),
568
- (r'<\?(LassoScript|lasso|=)', Comment.Preproc, 'anglebrackets'),
593
+ (r'<\?(lasso(script)?|=)', Comment.Preproc, 'anglebrackets'),
569
594
  (r'<(!--.*?-->)?', Other),
570
595
  (r'[^[<]+', Other),
571
596
  ],
@@ -607,7 +632,7 @@ class LassoLexer(RegexLexer):
607
632
 
608
633
  # names
609
634
  (r'\$[a-z_][\w.]*', Name.Variable),
610
- (r'#([a-z_][\w.]*|\d+)', Name.Variable.Instance),
635
+ (r'#([a-z_][\w.]*|\d+\b)', Name.Variable.Instance),
611
636
  (r"(\.\s*)('[a-z_][\w.]*')",
612
637
  bygroups(Name.Builtin.Pseudo, Name.Variable.Class)),
613
638
  (r"(self)(\s*->\s*)('[a-z_][\w.]*')",
@@ -658,20 +683,20 @@ class LassoLexer(RegexLexer):
658
683
  r'Database_TableNames|Define_Tag|Define_Type|Email_Batch|'
659
684
  r'Encode_Set|HTML_Comment|Handle|Handle_Error|Header|If|Inline|'
660
685
  r'Iterate|LJAX_Target|Link|Link_CurrentAction|Link_CurrentGroup|'
661
- r'Link_CurrentRecord|Link_Detail|Link_FirstGroup|'
662
- r'Link_FirstRecord|Link_LastGroup|Link_LastRecord|Link_NextGroup|'
663
- r'Link_NextRecord|Link_PrevGroup|Link_PrevRecord|Log|Loop|'
664
- r'NoProcess|Output_None|Portal|Private|Protect|Records|Referer|'
665
- r'Referrer|Repeating|ResultSet|Rows|Search_Args|Search_Arguments|'
666
- r'Select|Sort_Args|Sort_Arguments|Thread_Atomic|Value_List|While|'
667
- r'Abort|Case|Else|If_Empty|If_False|If_Null|If_True|Loop_Abort|'
668
- r'Loop_Continue|Loop_Count|Params|Params_Up|Return|Return_Value|'
669
- r'Run_Children|SOAP_DefineTag|SOAP_LastRequest|SOAP_LastResponse|'
670
- r'Tag_Name|ascending|average|by|define|descending|do|equals|'
671
- r'frozen|group|handle_failure|import|in|into|join|let|match|max|'
672
- r'min|on|order|parent|protected|provide|public|require|returnhome|'
673
- r'skip|split_thread|sum|take|thread|to|trait|type|where|with|'
674
- r'yield|yieldhome)\b',
686
+ r'Link_CurrentRecord|Link_Detail|Link_FirstGroup|Link_FirstRecord|'
687
+ r'Link_LastGroup|Link_LastRecord|Link_NextGroup|Link_NextRecord|'
688
+ r'Link_PrevGroup|Link_PrevRecord|Log|Loop|Output_None|Portal|'
689
+ r'Private|Protect|Records|Referer|Referrer|Repeating|ResultSet|'
690
+ r'Rows|Search_Args|Search_Arguments|Select|Sort_Args|'
691
+ r'Sort_Arguments|Thread_Atomic|Value_List|While|Abort|Case|Else|'
692
+ r'Fail_If|Fail_IfNot|Fail|If_Empty|If_False|If_Null|If_True|'
693
+ r'Loop_Abort|Loop_Continue|Loop_Count|Params|Params_Up|Return|'
694
+ r'Return_Value|Run_Children|SOAP_DefineTag|SOAP_LastRequest|'
695
+ r'SOAP_LastResponse|Tag_Name|ascending|average|by|define|'
696
+ r'descending|do|equals|frozen|group|handle_failure|import|in|into|'
697
+ r'join|let|match|max|min|on|order|parent|protected|provide|public|'
698
+ r'require|returnhome|skip|split_thread|sum|take|thread|to|trait|'
699
+ r'type|where|with|yield|yieldhome)\b',
675
700
  bygroups(Punctuation, Keyword)),
676
701
 
677
702
  # other
@@ -749,9 +774,9 @@ class LassoLexer(RegexLexer):
749
774
  self._members = set()
750
775
  if self.builtinshighlighting:
751
776
  from pygments.lexers._lasso_builtins import BUILTINS, MEMBERS
752
- for key, value in iteritems(BUILTINS):
777
+ for key, value in BUILTINS.items():
753
778
  self._builtins.update(value)
754
- for key, value in iteritems(MEMBERS):
779
+ for key, value in MEMBERS.items():
755
780
  self._members.update(value)
756
781
  RegexLexer.__init__(self, **options)
757
782
 
@@ -996,7 +1021,7 @@ class ObjectiveJLexer(RegexLexer):
996
1021
  }
997
1022
 
998
1023
  def analyse_text(text):
999
- if re.search('^\s*@import\s+[<"]', text, re.MULTILINE):
1024
+ if re.search(r'^\s*@import\s+[<"]', text, re.MULTILINE):
1000
1025
  # special directive found in most Objective-J files
1001
1026
  return True
1002
1027
  return False
@@ -1016,11 +1041,10 @@ class CoffeeScriptLexer(RegexLexer):
1016
1041
  filenames = ['*.coffee']
1017
1042
  mimetypes = ['text/coffeescript']
1018
1043
 
1019
-
1020
1044
  _operator_re = (
1021
1045
  r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|'
1022
1046
  r'\|\||\\(?=\n)|'
1023
- r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?')
1047
+ r'(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?')
1024
1048
 
1025
1049
  flags = re.DOTALL
1026
1050
  tokens = {
@@ -1043,12 +1067,12 @@ class CoffeeScriptLexer(RegexLexer):
1043
1067
  # This isn't really guarding against mishighlighting well-formed
1044
1068
  # code, just the ability to infinite-loop between root and
1045
1069
  # slashstartsregex.
1046
- (r'/', Operator),
1070
+ (r'/', Operator, '#pop'),
1047
1071
  default('#pop'),
1048
1072
  ],
1049
1073
  'root': [
1050
1074
  include('commentsandwhitespace'),
1051
- (r'^(?=\s|/)', Text, 'slashstartsregex'),
1075
+ (r'\A(?=\s|/)', Text, 'slashstartsregex'),
1052
1076
  (_operator_re, Operator, 'slashstartsregex'),
1053
1077
  (r'(?:\([^()]*\))?\s*[=-]>', Name.Function, 'slashstartsregex'),
1054
1078
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
@@ -1118,7 +1142,7 @@ class CoffeeScriptLexer(RegexLexer):
1118
1142
 
1119
1143
  class MaskLexer(RegexLexer):
1120
1144
  """
1121
- For `Mask <http://github.com/atmajs/MaskJS>`__ markup.
1145
+ For `Mask <https://github.com/atmajs/MaskJS>`__ markup.
1122
1146
 
1123
1147
  .. versionadded:: 2.0
1124
1148
  """
@@ -1440,21 +1464,24 @@ class EarlGreyLexer(RegexLexer):
1440
1464
  (r'8r[0-7]+', Number.Oct),
1441
1465
  (r'2r[01]+', Number.Bin),
1442
1466
  (r'16r[a-fA-F0-9]+', Number.Hex),
1443
- (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),
1444
1469
  (r'\d+', Number.Integer)
1445
1470
  ],
1446
1471
  }
1447
1472
 
1473
+
1448
1474
  class JuttleLexer(RegexLexer):
1449
1475
  """
1450
1476
  For `Juttle`_ source code.
1451
1477
 
1452
1478
  .. _Juttle: https://github.com/juttle/juttle
1453
1479
 
1480
+ .. versionadded:: 2.2
1454
1481
  """
1455
1482
 
1456
1483
  name = 'Juttle'
1457
- aliases = ['juttle', 'juttle']
1484
+ aliases = ['juttle']
1458
1485
  filenames = ['*.juttle']
1459
1486
  mimetypes = ['application/juttle', 'application/x-juttle',
1460
1487
  'text/x-juttle', 'text/juttle']
@@ -1481,21 +1508,28 @@ class JuttleLexer(RegexLexer):
1481
1508
  (r'^(?=\s|/)', Text, 'slashstartsregex'),
1482
1509
  include('commentsandwhitespace'),
1483
1510
  (r':\d{2}:\d{2}:\d{2}(\.\d*)?:', String.Moment),
1484
- (r':(now|beginning|end|forever|yesterday|today|tomorrow|(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):', String.Moment),
1485
- (r':\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:', String.Moment),
1486
- (r':((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?'
1487
- 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]?)'
1488
1519
  r'|[ ]+(ago|from[ ]+now))*:', String.Moment),
1489
1520
  (r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
1490
1521
  r'(==?|!=?|[-<>+*%&|^/])=?', Operator, 'slashstartsregex'),
1491
1522
  (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
1492
1523
  (r'[})\].]', Punctuation),
1493
1524
  (r'(import|return|continue|if|else)\b', Keyword, 'slashstartsregex'),
1494
- (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration, 'slashstartsregex'),
1525
+ (r'(var|const|function|reducer|sub|input)\b', Keyword.Declaration,
1526
+ 'slashstartsregex'),
1495
1527
  (r'(batch|emit|filter|head|join|keep|pace|pass|put|read|reduce|remove|'
1496
- 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),
1497
1530
  (r'(true|false|null|Infinity)\b', Keyword.Constant),
1498
- (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),
1499
1533
  (JS_IDENT, Name.Other),
1500
1534
  (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
1501
1535
  (r'[0-9]+', Number.Integer),