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 the REBOL 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
 
@@ -102,12 +102,12 @@ class RebolLexer(RegexLexer):
102
102
  yield match.start(), Generic.Heading, word
103
103
  elif re.match("to-.*", word):
104
104
  yield match.start(), Keyword, word
105
- elif re.match('(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
105
+ elif re.match(r'(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
106
106
  word):
107
107
  yield match.start(), Operator, word
108
- elif re.match(".*\?$", word):
108
+ elif re.match(r".*\?$", word):
109
109
  yield match.start(), Keyword, word
110
- elif re.match(".*\!$", word):
110
+ elif re.match(r".*\!$", word):
111
111
  yield match.start(), Keyword.Type, word
112
112
  elif re.match("'.*", word):
113
113
  yield match.start(), Name.Variable.Instance, word # lit-word
@@ -239,7 +239,7 @@ class RebolLexer(RegexLexer):
239
239
  if re.match(r'^\s*REBOL\s*\[', text, re.IGNORECASE):
240
240
  # The code starts with REBOL header
241
241
  return 1.0
242
- elif re.search(r'\s*REBOL\s*[', text, re.IGNORECASE):
242
+ elif re.search(r'\s*REBOL\s*\[', text, re.IGNORECASE):
243
243
  # The code contains REBOL header but also some text before it
244
244
  return 0.5
245
245
 
@@ -297,10 +297,10 @@ class RedLexer(RegexLexer):
297
297
  yield match.start(), Keyword.Namespace, word
298
298
  elif re.match("to-.*", word):
299
299
  yield match.start(), Keyword, word
300
- elif re.match('(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|'
301
- '<<<|>>>|<<|>>|<|>%)$', word):
300
+ elif re.match(r'(\+|-\*\*|-|\*\*|//|/|\*|and|or|xor|=\?|===|==|=|<>|<=|>=|'
301
+ r'<<<|>>>|<<|>>|<|>%)$', word):
302
302
  yield match.start(), Operator, word
303
- elif re.match(".*\!$", word):
303
+ elif re.match(r".*\!$", word):
304
304
  yield match.start(), Keyword.Type, word
305
305
  elif re.match("'.*", word):
306
306
  yield match.start(), Name.Variable.Instance, word # lit-word
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for resource definition files.
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
 
@@ -26,7 +26,7 @@ class ResourceLexer(RegexLexer):
26
26
  """
27
27
  name = 'ResourceBundle'
28
28
  aliases = ['resource', 'resourcebundle']
29
- filenames = ['*.txt']
29
+ filenames = []
30
30
 
31
31
  _types = (':table', ':array', ':string', ':bin', ':import', ':intvector',
32
32
  ':int', ':alias')
@@ -0,0 +1,139 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.ride
4
+ ~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for the Ride programming language.
7
+
8
+ :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9
+ :license: BSD, see LICENSE for details.
10
+ """
11
+
12
+ from pygments.lexer import RegexLexer, words, include
13
+ from pygments.token import Comment, Keyword, Name, Number, Punctuation, String, Text
14
+
15
+ __all__ = ['RideLexer']
16
+
17
+
18
+ class RideLexer(RegexLexer):
19
+ """
20
+ For `Ride <https://docs.wavesplatform.com/en/ride/about-ride.html>`_
21
+ source code.
22
+
23
+ .. versionadded:: 2.6
24
+ """
25
+
26
+ name = 'Ride'
27
+ aliases = ['ride']
28
+ filenames = ['*.ride']
29
+ mimetypes = ['text/x-ride']
30
+
31
+ validName = r'[a-zA-Z_][a-zA-Z0-9_\']*'
32
+
33
+ builtinOps = (
34
+ '||', '|', '>=', '>', '==', '!',
35
+ '=', '<=', '<', '::', ':+', ':', '!=', '/',
36
+ '.', '=>', '-', '+', '*', '&&', '%', '++',
37
+ )
38
+
39
+ globalVariablesName = (
40
+ 'NOALG', 'MD5', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512',
41
+ 'SHA3224', 'SHA3256', 'SHA3384', 'SHA3512', 'nil', 'this', 'unit',
42
+ 'height', 'lastBlock', 'Buy', 'Sell', 'CEILING', 'FLOOR', 'DOWN',
43
+ 'HALFDOWN', 'HALFEVEN', 'HALFUP', 'UP',
44
+ )
45
+
46
+ typesName = (
47
+ 'Unit', 'Int', 'Boolean', 'ByteVector', 'String', 'Address', 'Alias',
48
+ 'Transfer', 'AssetPair', 'DataEntry', 'Order', 'Transaction',
49
+ 'GenesisTransaction', 'PaymentTransaction', 'ReissueTransaction',
50
+ 'BurnTransaction', 'MassTransferTransaction', 'ExchangeTransaction',
51
+ 'TransferTransaction', 'SetAssetScriptTransaction',
52
+ 'InvokeScriptTransaction', 'IssueTransaction', 'LeaseTransaction',
53
+ 'LeaseCancelTransaction', 'CreateAliasTransaction',
54
+ 'SetScriptTransaction', 'SponsorFeeTransaction', 'DataTransaction',
55
+ 'WriteSet', 'AttachedPayment', 'ScriptTransfer', 'TransferSet',
56
+ 'ScriptResult', 'Invocation', 'Asset', 'BlockInfo', 'Issue', 'Reissue',
57
+ 'Burn', 'NoAlg', 'Md5', 'Sha1', 'Sha224', 'Sha256', 'Sha384', 'Sha512',
58
+ 'Sha3224', 'Sha3256', 'Sha3384', 'Sha3512', 'BinaryEntry',
59
+ 'BooleanEntry', 'IntegerEntry', 'StringEntry', 'List', 'Ceiling',
60
+ 'Down', 'Floor', 'HalfDown', 'HalfEven', 'HalfUp', 'Up',
61
+ )
62
+
63
+ functionsName = (
64
+ 'fraction', 'size', 'toBytes', 'take', 'drop', 'takeRight', 'dropRight',
65
+ 'toString', 'isDefined', 'extract', 'throw', 'getElement', 'value',
66
+ 'cons', 'toUtf8String', 'toInt', 'indexOf', 'lastIndexOf', 'split',
67
+ 'parseInt', 'parseIntValue', 'keccak256', 'blake2b256', 'sha256',
68
+ 'sigVerify', 'toBase58String', 'fromBase58String', 'toBase64String',
69
+ 'fromBase64String', 'transactionById', 'transactionHeightById',
70
+ 'getInteger', 'getBoolean', 'getBinary', 'getString',
71
+ 'addressFromPublicKey', 'addressFromString', 'addressFromRecipient',
72
+ 'assetBalance', 'wavesBalance', 'getIntegerValue', 'getBooleanValue',
73
+ 'getBinaryValue', 'getStringValue', 'addressFromStringValue',
74
+ 'assetInfo', 'rsaVerify', 'checkMerkleProof', 'median',
75
+ 'valueOrElse', 'valueOrErrorMessage', 'contains', 'log', 'pow',
76
+ 'toBase16String', 'fromBase16String', 'blockInfoByHeight',
77
+ 'transferTransactionById',
78
+ )
79
+
80
+ reservedWords = words((
81
+ 'match', 'case', 'else', 'func', 'if',
82
+ 'let', 'then', '@Callable', '@Verifier',
83
+ ), suffix=r'\b')
84
+
85
+ tokens = {
86
+ 'root': [
87
+ # Comments
88
+ (r'#.*', Comment.Single),
89
+ # Whitespace
90
+ (r'\s+', Text),
91
+ # Strings
92
+ (r'"', String, 'doublequote'),
93
+ (r'utf8\'', String, 'utf8quote'),
94
+ (r'base(58|64|16)\'', String, 'singlequote'),
95
+ # Keywords
96
+ (reservedWords, Keyword.Reserved),
97
+ (r'\{-#.*?#-\}', Keyword.Reserved),
98
+ (r'FOLD<\d+>', Keyword.Reserved),
99
+ # Types
100
+ (words(typesName), Keyword.Type),
101
+ # Main
102
+ # (specialName, Keyword.Reserved),
103
+ # Prefix Operators
104
+ (words(builtinOps, prefix=r'\(', suffix=r'\)'), Name.Function),
105
+ # Infix Operators
106
+ (words(builtinOps), Name.Function),
107
+ (words(globalVariablesName), Name.Function),
108
+ (words(functionsName), Name.Function),
109
+ # Numbers
110
+ include('numbers'),
111
+ # Variable Names
112
+ (validName, Name.Variable),
113
+ # Parens
114
+ (r'[,()\[\]{}]', Punctuation),
115
+ ],
116
+
117
+ 'doublequote': [
118
+ (r'\\u[0-9a-fA-F]{4}', String.Escape),
119
+ (r'\\[nrfvb\\"]', String.Escape),
120
+ (r'[^"]', String),
121
+ (r'"', String, '#pop'),
122
+ ],
123
+
124
+ 'utf8quote': [
125
+ (r'\\u[0-9a-fA-F]{4}', String.Escape),
126
+ (r'\\[nrfvb\\\']', String.Escape),
127
+ (r'[^\']', String),
128
+ (r'\'', String, '#pop'),
129
+ ],
130
+
131
+ 'singlequote': [
132
+ (r'[^\']', String),
133
+ (r'\'', String, '#pop'),
134
+ ],
135
+
136
+ 'numbers': [
137
+ (r'_?\d+', Number.Integer),
138
+ ],
139
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for Relax-NG Compact syntax
7
7
 
8
- :copyright: Copyright 2016 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 Roboconf DSL.
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
  Lexer for Robot Framework.
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
 
@@ -27,7 +27,6 @@ import re
27
27
 
28
28
  from pygments.lexer import Lexer
29
29
  from pygments.token import Token
30
- from pygments.util import text_type
31
30
 
32
31
  __all__ = ['RobotFrameworkLexer']
33
32
 
@@ -64,7 +63,7 @@ class RobotFrameworkLexer(Lexer):
64
63
  """
65
64
  name = 'RobotFramework'
66
65
  aliases = ['robotframework']
67
- filenames = ['*.txt', '*.robot']
66
+ filenames = ['*.robot']
68
67
  mimetypes = ['text/x-robotframework']
69
68
 
70
69
  def __init__(self, **options):
@@ -80,11 +79,11 @@ class RobotFrameworkLexer(Lexer):
80
79
  for value, token in row_tokenizer.tokenize(row):
81
80
  for value, token in var_tokenizer.tokenize(value, token):
82
81
  if value:
83
- yield index, token, text_type(value)
82
+ yield index, token, str(value)
84
83
  index += len(value)
85
84
 
86
85
 
87
- class VariableTokenizer(object):
86
+ class VariableTokenizer:
88
87
 
89
88
  def tokenize(self, string, token):
90
89
  var = VariableSplitter(string, identifiers='$@%&')
@@ -99,19 +98,16 @@ class VariableTokenizer(object):
99
98
  before = string[:var.start]
100
99
  yield before, orig_token
101
100
  yield var.identifier + '{', SYNTAX
102
- for value, token in self.tokenize(var.base, VARIABLE):
103
- yield value, token
101
+ yield from self.tokenize(var.base, VARIABLE)
104
102
  yield '}', SYNTAX
105
103
  if var.index:
106
104
  yield '[', SYNTAX
107
- for value, token in self.tokenize(var.index, VARIABLE):
108
- yield value, token
105
+ yield from self.tokenize(var.index, VARIABLE)
109
106
  yield ']', SYNTAX
110
- for value, token in self.tokenize(string[var.end:], orig_token):
111
- yield value, token
107
+ yield from self.tokenize(string[var.end:], orig_token)
112
108
 
113
109
 
114
- class RowTokenizer(object):
110
+ class RowTokenizer:
115
111
 
116
112
  def __init__(self):
117
113
  self._table = UnknownTable()
@@ -124,6 +120,7 @@ class RowTokenizer(object):
124
120
  'metadata': settings,
125
121
  'variables': variables, 'variable': variables,
126
122
  'testcases': testcases, 'testcase': testcases,
123
+ 'tasks': testcases, 'task': testcases,
127
124
  'keywords': keywords, 'keyword': keywords,
128
125
  'userkeywords': keywords, 'userkeyword': keywords}
129
126
 
@@ -138,9 +135,8 @@ class RowTokenizer(object):
138
135
  elif index == 0 and value.startswith('*'):
139
136
  self._table = self._start_table(value)
140
137
  heading = True
141
- for value, token in self._tokenize(value, index, commented,
142
- separator, heading):
143
- yield value, token
138
+ yield from self._tokenize(value, index, commented,
139
+ separator, heading)
144
140
  self._table.end_row()
145
141
 
146
142
  def _start_table(self, header):
@@ -155,25 +151,22 @@ class RowTokenizer(object):
155
151
  elif heading:
156
152
  yield value, HEADING
157
153
  else:
158
- for value, token in self._table.tokenize(value, index):
159
- yield value, token
154
+ yield from self._table.tokenize(value, index)
160
155
 
161
156
 
162
- class RowSplitter(object):
157
+ class RowSplitter:
163
158
  _space_splitter = re.compile('( {2,})')
164
- _pipe_splitter = re.compile('((?:^| +)\|(?: +|$))')
159
+ _pipe_splitter = re.compile(r'((?:^| +)\|(?: +|$))')
165
160
 
166
161
  def split(self, row):
167
162
  splitter = (row.startswith('| ') and self._split_from_pipes
168
163
  or self._split_from_spaces)
169
- for value in splitter(row):
170
- yield value
164
+ yield from splitter(row)
171
165
  yield '\n'
172
166
 
173
167
  def _split_from_spaces(self, row):
174
168
  yield '' # Start with (pseudo)separator similarly as with pipes
175
- for value in self._space_splitter.split(row):
176
- yield value
169
+ yield from self._space_splitter.split(row)
177
170
 
178
171
  def _split_from_pipes(self, row):
179
172
  _, separator, rest = self._pipe_splitter.split(row, 1)
@@ -185,7 +178,7 @@ class RowSplitter(object):
185
178
  yield rest
186
179
 
187
180
 
188
- class Tokenizer(object):
181
+ class Tokenizer:
189
182
  _tokens = None
190
183
 
191
184
  def __init__(self):
@@ -216,11 +209,11 @@ class Comment(Tokenizer):
216
209
  class Setting(Tokenizer):
217
210
  _tokens = (SETTING, ARGUMENT)
218
211
  _keyword_settings = ('suitesetup', 'suiteprecondition', 'suiteteardown',
219
- 'suitepostcondition', 'testsetup', 'testprecondition',
220
- 'testteardown', 'testpostcondition', 'testtemplate')
212
+ 'suitepostcondition', 'testsetup', 'tasksetup', 'testprecondition',
213
+ 'testteardown','taskteardown', 'testpostcondition', 'testtemplate', 'tasktemplate')
221
214
  _import_settings = ('library', 'resource', 'variables')
222
215
  _other_settings = ('documentation', 'metadata', 'forcetags', 'defaulttags',
223
- 'testtimeout')
216
+ 'testtimeout','tasktimeout')
224
217
  _custom_tokenizer = None
225
218
 
226
219
  def __init__(self, template_setter=None):
@@ -292,7 +285,7 @@ class KeywordCall(Tokenizer):
292
285
  return GherkinTokenizer().tokenize(value, KEYWORD)
293
286
 
294
287
 
295
- class GherkinTokenizer(object):
288
+ class GherkinTokenizer:
296
289
  _gherkin_prefix = re.compile('^(Given|When|Then|And) ', re.IGNORECASE)
297
290
 
298
291
  def tokenize(self, value, token):
@@ -320,7 +313,7 @@ class ForLoop(Tokenizer):
320
313
  return token
321
314
 
322
315
 
323
- class _Table(object):
316
+ class _Table:
324
317
  _tokenizer_class = None
325
318
 
326
319
  def __init__(self, prev_tokenizer=None):
@@ -333,8 +326,7 @@ class _Table(object):
333
326
  self._tokenizer = self._prev_tokenizer
334
327
  yield value, SYNTAX
335
328
  else:
336
- for value_and_token in self._tokenize(value, index):
337
- yield value_and_token
329
+ yield from self._tokenize(value, index)
338
330
  self._prev_values_on_row.append(value)
339
331
 
340
332
  def _continues(self, value, index):
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for Ruby 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
 
@@ -43,23 +43,22 @@ class RubyLexer(ExtendedRegexLexer):
43
43
 
44
44
  def heredoc_callback(self, match, ctx):
45
45
  # okay, this is the hardest part of parsing Ruby...
46
- # match: 1 = <<-?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
46
+ # match: 1 = <<[-~]?, 2 = quote? 3 = name 4 = quote? 5 = rest of line
47
47
 
48
48
  start = match.start(1)
49
- yield start, Operator, match.group(1) # <<-?
49
+ yield start, Operator, match.group(1) # <<[-~]?
50
50
  yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
51
51
  yield match.start(3), String.Delimiter, match.group(3) # heredoc name
52
52
  yield match.start(4), String.Heredoc, match.group(4) # quote again
53
53
 
54
54
  heredocstack = ctx.__dict__.setdefault('heredocstack', [])
55
55
  outermost = not bool(heredocstack)
56
- heredocstack.append((match.group(1) == '<<-', match.group(3)))
56
+ heredocstack.append((match.group(1) in ('<<-', '<<~'), match.group(3)))
57
57
 
58
58
  ctx.pos = match.start(5)
59
59
  ctx.end = match.end(5)
60
60
  # this may find other heredocs
61
- for i, t, v in self.get_tokens_unprocessed(context=ctx):
62
- yield i, t, v
61
+ yield from self.get_tokens_unprocessed(context=ctx)
63
62
  ctx.pos = match.end()
64
63
 
65
64
  if outermost:
@@ -109,16 +108,17 @@ class RubyLexer(ExtendedRegexLexer):
109
108
  (r'\:@{0,2}[a-zA-Z_]\w*[!?]?', String.Symbol),
110
109
  (words(RUBY_OPERATORS, prefix=r'\:@{0,2}'), String.Symbol),
111
110
  (r":'(\\\\|\\'|[^'])*'", String.Symbol),
112
- (r"'(\\\\|\\'|[^'])*'", String.Single),
113
111
  (r':"', String.Symbol, 'simple-sym'),
114
112
  (r'([a-zA-Z_]\w*)(:)(?!:)',
115
113
  bygroups(String.Symbol, Punctuation)), # Since Ruby 1.9
116
- (r'"', String.Double, 'simple-string'),
114
+ (r'"', String.Double, 'simple-string-double'),
115
+ (r"'", String.Single, 'simple-string-single'),
117
116
  (r'(?<!\.)`', String.Backtick, 'simple-backtick'),
118
117
  ]
119
118
 
120
- # double-quoted string and symbol
121
- for name, ttype, end in ('string', String.Double, '"'), \
119
+ # quoted string and symbol
120
+ for name, ttype, end in ('string-double', String.Double, '"'), \
121
+ ('string-single', String.Single, "'"),\
122
122
  ('sym', String.Symbol, '"'), \
123
123
  ('backtick', String.Backtick, '`'):
124
124
  states['simple-'+name] = [
@@ -247,10 +247,10 @@ class RubyLexer(ExtendedRegexLexer):
247
247
  Name.Builtin),
248
248
  (r'__(FILE|LINE)__\b', Name.Builtin.Pseudo),
249
249
  # normal heredocs
250
- (r'(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
250
+ (r'(?<!\w)(<<[-~]?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)',
251
251
  heredoc_callback),
252
252
  # empty string heredocs
253
- (r'(<<-?)("|\')()(\2)(.*?\n)', heredoc_callback),
253
+ (r'(<<[-~]?)("|\')()(\2)(.*?\n)', heredoc_callback),
254
254
  (r'__END__', Comment.Preproc, 'end-part'),
255
255
  # multiline regex (after keywords or assignments)
256
256
  (r'(?:^|(?<=[=<>~!:])|'
@@ -403,8 +403,8 @@ class RubyConsoleLexer(Lexer):
403
403
  aliases = ['rbcon', 'irb']
404
404
  mimetypes = ['text/x-ruby-shellsession']
405
405
 
406
- _prompt_re = re.compile('irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
407
- '|>> |\?> ')
406
+ _prompt_re = re.compile(r'irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] '
407
+ r'|>> |\?> ')
408
408
 
409
409
  def get_tokens_unprocessed(self, text):
410
410
  rblexer = RubyLexer(**self.options)
@@ -421,16 +421,14 @@ class RubyConsoleLexer(Lexer):
421
421
  curcode += line[end:]
422
422
  else:
423
423
  if curcode:
424
- for item in do_insertions(
425
- insertions, rblexer.get_tokens_unprocessed(curcode)):
426
- yield item
424
+ yield from do_insertions(
425
+ insertions, rblexer.get_tokens_unprocessed(curcode))
427
426
  curcode = ''
428
427
  insertions = []
429
428
  yield match.start(), Generic.Output, line
430
429
  if curcode:
431
- for item in do_insertions(
432
- insertions, rblexer.get_tokens_unprocessed(curcode)):
433
- yield item
430
+ yield from do_insertions(
431
+ insertions, rblexer.get_tokens_unprocessed(curcode))
434
432
 
435
433
 
436
434
  class FancyLexer(RegexLexer):
@@ -498,11 +496,11 @@ class FancyLexer(RegexLexer):
498
496
  (r'[a-zA-Z](\w|[-+?!=*/^><%])*:', Name.Function),
499
497
  # operators, must be below functions
500
498
  (r'[-+*/~,<>=&!?%^\[\].$]+', Operator),
501
- ('[A-Z]\w*', Name.Constant),
502
- ('@[a-zA-Z_]\w*', Name.Variable.Instance),
503
- ('@@[a-zA-Z_]\w*', Name.Variable.Class),
499
+ (r'[A-Z]\w*', Name.Constant),
500
+ (r'@[a-zA-Z_]\w*', Name.Variable.Instance),
501
+ (r'@@[a-zA-Z_]\w*', Name.Variable.Class),
504
502
  ('@@?', Operator),
505
- ('[a-zA-Z_]\w*', Name),
503
+ (r'[a-zA-Z_]\w*', Name),
506
504
  # numbers - / checks are necessary to avoid mismarking regexes,
507
505
  # see comment in RubyLexer
508
506
  (r'(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?',