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
  Just export lexer classes previously contained in this module.
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 configuration file 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
 
@@ -13,14 +13,16 @@ import re
13
13
 
14
14
  from pygments.lexer import RegexLexer, default, words, bygroups, include, using
15
15
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
16
- Number, Punctuation, Whitespace, Literal
16
+ Number, Punctuation, Whitespace, Literal, Generic
17
17
  from pygments.lexers.shell import BashLexer
18
+ from pygments.lexers.data import JsonLexer
18
19
 
19
20
  __all__ = ['IniLexer', 'RegeditLexer', 'PropertiesLexer', 'KconfigLexer',
20
21
  'Cfengine3Lexer', 'ApacheConfLexer', 'SquidConfLexer',
21
22
  'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer',
22
23
  'TerraformLexer', 'TermcapLexer', 'TerminfoLexer',
23
- 'PkgConfigLexer', 'PacmanConfLexer']
24
+ 'PkgConfigLexer', 'PacmanConfLexer', 'AugeasLexer', 'TOMLLexer',
25
+ 'SingularityLexer']
24
26
 
25
27
 
26
28
  class IniLexer(RegexLexer):
@@ -154,7 +156,7 @@ class KconfigLexer(RegexLexer):
154
156
  name = 'Kconfig'
155
157
  aliases = ['kconfig', 'menuconfig', 'linux-config', 'kernel-config']
156
158
  # Adjust this if new kconfig file names appear in your environment
157
- filenames = ['Kconfig', '*Config.in*', 'external.in*',
159
+ filenames = ['Kconfig*', '*Config.in*', 'external.in*',
158
160
  'standard-modules.in']
159
161
  mimetypes = ['text/x-kconfig']
160
162
  # No re.MULTILINE, indentation-aware help text needs line-by-line handling
@@ -299,11 +301,10 @@ class ApacheConfLexer(RegexLexer):
299
301
  tokens = {
300
302
  'root': [
301
303
  (r'\s+', Text),
302
- (r'(#.*?)$', Comment),
303
- (r'(<[^\s>]+)(?:(\s+)(.*?))?(>)',
304
+ (r'#(.*\\\n)+.*$|(#.*?)$', Comment),
305
+ (r'(<[^\s>]+)(?:(\s+)(.*))?(>)',
304
306
  bygroups(Name.Tag, Text, String, Name.Tag)),
305
- (r'([a-z]\w*)(\s+)',
306
- bygroups(Name.Builtin, Text), 'value'),
307
+ (r'[a-z]\w*', Name.Builtin, 'value'),
307
308
  (r'\.+', Text),
308
309
  ],
309
310
  'value': [
@@ -313,12 +314,12 @@ class ApacheConfLexer(RegexLexer):
313
314
  (r'[^\S\n]+', Text),
314
315
  (r'\d+\.\d+\.\d+\.\d+(?:/\d+)?', Number),
315
316
  (r'\d+', Number),
316
- (r'/([a-z0-9][\w./-]+)', String.Other),
317
+ (r'/([*a-z0-9][*\w./-]+)', String.Other),
317
318
  (r'(on|off|none|any|all|double|email|dns|min|minimal|'
318
319
  r'os|productonly|full|emerg|alert|crit|error|warn|'
319
320
  r'notice|info|debug|registry|script|inetd|standalone|'
320
321
  r'user|group)\b', Keyword),
321
- (r'"([^"\\]*(?:\\.[^"\\]*)*)"', String.Double),
322
+ (r'"([^"\\]*(?:\\(.|\n)[^"\\]*)*)"', String.Double),
322
323
  (r'[^\s"\\]+', Text)
323
324
  ],
324
325
  }
@@ -462,7 +463,7 @@ class NginxConfLexer(RegexLexer):
462
463
  """
463
464
  name = 'Nginx configuration file'
464
465
  aliases = ['nginx']
465
- filenames = []
466
+ filenames = ['nginx.conf']
466
467
  mimetypes = ['text/x-nginx-conf']
467
468
 
468
469
  tokens = {
@@ -539,20 +540,27 @@ class DockerLexer(RegexLexer):
539
540
  filenames = ['Dockerfile', '*.docker']
540
541
  mimetypes = ['text/x-dockerfile-config']
541
542
 
542
- _keywords = (r'(?:FROM|MAINTAINER|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|'
543
- r'VOLUME|WORKDIR)')
544
-
543
+ _keywords = (r'(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)')
544
+ _bash_keywords = (r'(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)')
545
+ _lb = r'(?:\s*\\?\s*)' # dockerfile line break regex
545
546
  flags = re.IGNORECASE | re.MULTILINE
546
547
 
547
548
  tokens = {
548
549
  'root': [
549
- (r'^(ONBUILD)(\s+)(%s)\b' % (_keywords,),
550
- bygroups(Name.Keyword, Whitespace, Keyword)),
551
- (r'^(%s)\b(.*)' % (_keywords,), bygroups(Keyword, String)),
552
550
  (r'#.*', Comment),
553
- (r'RUN', Keyword), # Rest of line falls through
551
+ (r'(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?',
552
+ bygroups(Keyword, Text, String, Text, Keyword, Text, String)),
553
+ (r'(ONBUILD)(%s)' % (_lb,), bygroups(Keyword, using(BashLexer))),
554
+ (r'(HEALTHCHECK)((%s--\w+=\w+%s)*)' % (_lb, _lb),
555
+ bygroups(Keyword, using(BashLexer))),
556
+ (r'(VOLUME|ENTRYPOINT|CMD|SHELL)(%s)(\[.*?\])' % (_lb,),
557
+ bygroups(Keyword, using(BashLexer), using(JsonLexer))),
558
+ (r'(LABEL|ENV|ARG)((%s\w+=\w+%s)*)' % (_lb, _lb),
559
+ bygroups(Keyword, using(BashLexer))),
560
+ (r'(%s|VOLUME)\b(.*)' % (_keywords), bygroups(Keyword, String)),
561
+ (r'(%s)' % (_bash_keywords,), Keyword),
554
562
  (r'(.*\\\n)*.+', using(BashLexer)),
555
- ],
563
+ ]
556
564
  }
557
565
 
558
566
 
@@ -568,30 +576,35 @@ class TerraformLexer(RegexLexer):
568
576
  filenames = ['*.tf']
569
577
  mimetypes = ['application/x-tf', 'application/x-terraform']
570
578
 
579
+ embedded_keywords = ('ingress', 'egress', 'listener', 'default',
580
+ 'connection', 'alias', 'terraform', 'tags', 'vars',
581
+ 'config', 'lifecycle', 'timeouts')
582
+
571
583
  tokens = {
572
584
  'root': [
573
- include('string'),
574
- include('punctuation'),
575
- include('curly'),
576
- include('basic'),
577
- include('whitespace'),
578
- (r'[0-9]+', Number),
585
+ include('string'),
586
+ include('punctuation'),
587
+ include('curly'),
588
+ include('basic'),
589
+ include('whitespace'),
590
+ (r'[0-9]+', Number),
579
591
  ],
580
592
  'basic': [
581
- (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
582
- (r'\s*/\*', Comment.Multiline, 'comment'),
583
- (r'\s*#.*\n', Comment.Single),
584
- (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
585
- (words(('variable', 'resource', 'provider', 'provisioner', 'module'),
586
- prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'),
587
- (words(('ingress', 'egress', 'listener', 'default', 'connection'),
588
- prefix=r'\b', suffix=r'\b'), Keyword.Declaration),
589
- ('\$\{', String.Interpol, 'var_builtin'),
593
+ (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type),
594
+ (r'\s*/\*', Comment.Multiline, 'comment'),
595
+ (r'\s*#.*\n', Comment.Single),
596
+ (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)),
597
+ (words(('variable', 'resource', 'provider', 'provisioner', 'module',
598
+ 'backend', 'data', 'output'), prefix=r'\b', suffix=r'\b'),
599
+ Keyword.Reserved, 'function'),
600
+ (words(embedded_keywords, prefix=r'\b', suffix=r'\b'),
601
+ Keyword.Declaration),
602
+ (r'\$\{', String.Interpol, 'var_builtin'),
590
603
  ],
591
604
  'function': [
592
- (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)),
593
- include('punctuation'),
594
- include('curly'),
605
+ (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)),
606
+ include('punctuation'),
607
+ include('curly'),
595
608
  ],
596
609
  'var_builtin': [
597
610
  (r'\$\{', String.Interpol, '#push'),
@@ -831,3 +844,141 @@ class PacmanConfLexer(RegexLexer):
831
844
  (r'.', Text),
832
845
  ],
833
846
  }
847
+
848
+
849
+ class AugeasLexer(RegexLexer):
850
+ """
851
+ Lexer for `Augeas <http://augeas.net>`_.
852
+
853
+ .. versionadded:: 2.4
854
+ """
855
+ name = 'Augeas'
856
+ aliases = ['augeas']
857
+ filenames = ['*.aug']
858
+
859
+ tokens = {
860
+ 'root': [
861
+ (r'(module)(\s*)([^\s=]+)', bygroups(Keyword.Namespace, Text, Name.Namespace)),
862
+ (r'(let)(\s*)([^\s=]+)', bygroups(Keyword.Declaration, Text, Name.Variable)),
863
+ (r'(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)', bygroups(Name.Builtin, Text)),
864
+ (r'(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))', bygroups(Punctuation, Name.Variable, Punctuation, Keyword.Type, Punctuation)),
865
+ (r'\(\*', Comment.Multiline, 'comment'),
866
+ (r'[*+\-.;=?|]', Operator),
867
+ (r'[()\[\]{}]', Operator),
868
+ (r'"', String.Double, 'string'),
869
+ (r'\/', String.Regex, 'regex'),
870
+ (r'([A-Z]\w*)(\.)(\w+)', bygroups(Name.Namespace, Punctuation, Name.Variable)),
871
+ (r'.', Name.Variable),
872
+ (r'\s', Text),
873
+ ],
874
+ 'string': [
875
+ (r'\\.', String.Escape),
876
+ (r'[^"]', String.Double),
877
+ (r'"', String.Double, '#pop'),
878
+ ],
879
+ 'regex': [
880
+ (r'\\.', String.Escape),
881
+ (r'[^/]', String.Regex),
882
+ (r'\/', String.Regex, '#pop'),
883
+ ],
884
+ 'comment': [
885
+ (r'[^*)]', Comment.Multiline),
886
+ (r'\(\*', Comment.Multiline, '#push'),
887
+ (r'\*\)', Comment.Multiline, '#pop'),
888
+ (r'[)*]', Comment.Multiline)
889
+ ],
890
+ }
891
+
892
+
893
+ class TOMLLexer(RegexLexer):
894
+ """
895
+ Lexer for `TOML <https://github.com/toml-lang/toml>`_, a simple language
896
+ for config files.
897
+
898
+ .. versionadded:: 2.4
899
+ """
900
+
901
+ name = 'TOML'
902
+ aliases = ['toml']
903
+ filenames = ['*.toml', 'Pipfile', 'poetry.lock']
904
+
905
+ tokens = {
906
+ 'root': [
907
+
908
+ # Basics, comments, strings
909
+ (r'\s+', Text),
910
+ (r'#.*?$', Comment.Single),
911
+ # Basic string
912
+ (r'"(\\\\|\\"|[^"])*"', String),
913
+ # Literal string
914
+ (r'\'\'\'(.*)\'\'\'', String),
915
+ (r'\'[^\']*\'', String),
916
+ (r'(true|false)$', Keyword.Constant),
917
+ (r'[a-zA-Z_][\w\-]*', Name),
918
+
919
+ (r'\[.*?\]$', Keyword),
920
+ # Datetime
921
+ # TODO this needs to be expanded, as TOML is rather flexible:
922
+ # https://github.com/toml-lang/toml#offset-date-time
923
+ (r'\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})', Number.Integer),
924
+
925
+ # Numbers
926
+ (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
927
+ (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
928
+ # Handle +-inf, +-infinity, +-nan
929
+ (r'[+-]?(?:(inf(?:inity)?)|nan)', Number.Float),
930
+ (r'[+-]?\d+', Number.Integer),
931
+
932
+ # Punctuation
933
+ (r'[]{}:(),;[]', Punctuation),
934
+ (r'\.', Punctuation),
935
+
936
+ # Operators
937
+ (r'=', Operator)
938
+
939
+ ]
940
+ }
941
+
942
+
943
+ class SingularityLexer(RegexLexer):
944
+ """
945
+ Lexer for `Singularity definition files
946
+ <https://www.sylabs.io/guides/3.0/user-guide/definition_files.html>`_.
947
+
948
+ .. versionadded:: 2.6
949
+ """
950
+
951
+ name = 'Singularity'
952
+ aliases = ['singularity']
953
+ filenames = ['*.def', 'Singularity']
954
+ flags = re.IGNORECASE | re.MULTILINE | re.DOTALL
955
+
956
+ _headers = r'^(\s*)(bootstrap|from|osversion|mirrorurl|include|registry|namespace|includecmd)(:)'
957
+ _section = r'^%(?:pre|post|setup|environment|help|labels|test|runscript|files|startscript)\b'
958
+ _appsect = r'^%app(?:install|help|run|labels|env|test|files)\b'
959
+
960
+ tokens = {
961
+ 'root': [
962
+ (_section, Generic.Heading, 'script'),
963
+ (_appsect, Generic.Heading, 'script'),
964
+ (_headers, bygroups(Text, Keyword, Text)),
965
+ (r'\s*#.*?\n', Comment),
966
+ (r'\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\b', Number),
967
+ (r'(?!^\s*%).', Text),
968
+ ],
969
+ 'script': [
970
+ (r'(.+?(?=^\s*%))|(.*)', using(BashLexer), '#pop'),
971
+ ],
972
+ }
973
+
974
+ def analyse_text(text):
975
+ """This is a quite simple script file, but there are a few keywords
976
+ which seem unique to this language."""
977
+ result = 0
978
+ if re.search(r'\b(?:osversion|includecmd|mirrorurl)\b', text, re.IGNORECASE):
979
+ result += 0.5
980
+
981
+ if re.search(SingularityLexer._section[1:], text):
982
+ result += 0.49
983
+
984
+ return result
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for misc console output.
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,25 +5,22 @@
5
5
 
6
6
  Lexer for Crystal.
7
7
 
8
- :copyright: Copyright 2006-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
 
12
12
  import re
13
13
 
14
- from pygments.lexer import Lexer, RegexLexer, ExtendedRegexLexer, include, \
15
- bygroups, default, LexerContext, do_insertions, words
14
+ from pygments.lexer import ExtendedRegexLexer, include, \
15
+ bygroups, default, LexerContext, words
16
16
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
17
- Number, Punctuation, Error, Generic
18
- from pygments.util import shebang_matches
17
+ Number, Punctuation, Error
19
18
 
20
19
  __all__ = ['CrystalLexer']
21
20
 
22
21
  line_re = re.compile('.*?\n')
23
22
 
24
23
 
25
-
26
-
27
24
  CRYSTAL_OPERATORS = [
28
25
  '!=', '!~', '!', '%', '&&', '&', '**', '*', '+', '-', '/', '<=>', '<<', '<=', '<',
29
26
  '===', '==', '=~', '=', '>=', '>>', '>', '[]=', '[]?', '[]', '^', '||', '|', '~'
@@ -33,6 +30,8 @@ CRYSTAL_OPERATORS = [
33
30
  class CrystalLexer(ExtendedRegexLexer):
34
31
  """
35
32
  For `Crystal <http://crystal-lang.org>`_ source code.
33
+
34
+ .. versionadded:: 2.2
36
35
  """
37
36
 
38
37
  name = 'Crystal'
@@ -48,9 +47,9 @@ class CrystalLexer(ExtendedRegexLexer):
48
47
 
49
48
  start = match.start(1)
50
49
  yield start, Operator, match.group(1) # <<-?
51
- yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
52
- yield match.start(3), String.Delimiter, match.group(3) # heredoc name
53
- yield match.start(4), String.Heredoc, match.group(4) # quote again
50
+ yield match.start(2), String.Heredoc, match.group(2) # quote ", ', `
51
+ yield match.start(3), String.Delimiter, match.group(3) # heredoc name
52
+ yield match.start(4), String.Heredoc, match.group(4) # quote again
54
53
 
55
54
  heredocstack = ctx.__dict__.setdefault('heredocstack', [])
56
55
  outermost = not bool(heredocstack)
@@ -59,8 +58,7 @@ class CrystalLexer(ExtendedRegexLexer):
59
58
  ctx.pos = match.start(5)
60
59
  ctx.end = match.end(5)
61
60
  # this may find other heredocs
62
- for i, t, v in self.get_tokens_unprocessed(context=ctx):
63
- yield i, t, v
61
+ yield from self.get_tokens_unprocessed(context=ctx)
64
62
  ctx.pos = match.end()
65
63
 
66
64
  if outermost:
@@ -136,7 +134,7 @@ class CrystalLexer(ExtendedRegexLexer):
136
134
  ('\\(', '\\)', '()', 'pa'), \
137
135
  ('<', '>', '<>', 'ab'):
138
136
  states[name+'-intp-string'] = [
139
- (r'\\[' + lbrace + ']', String.Other),
137
+ (r'\\' + lbrace, String.Other),
140
138
  (lbrace, String.Other, '#push'),
141
139
  (rbrace, String.Other, '#pop'),
142
140
  include('string-intp-escaped'),
@@ -211,17 +209,21 @@ class CrystalLexer(ExtendedRegexLexer):
211
209
  # macros
212
210
  (words('''
213
211
  debugger record pp assert_responds_to spawn parallel
214
- getter setter property delegate def_hash def_equals def_equals_and_hash forward_missing_to
212
+ getter setter property delegate def_hash def_equals def_equals_and_hash
213
+ forward_missing_to
215
214
  '''.split(), suffix=r'\b'), Name.Builtin.Pseudo),
216
215
  (r'getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b', Name.Builtin.Pseudo),
217
216
  # builtins
218
217
  # http://crystal-lang.org/api/toplevel.html
219
218
  (words('''
220
219
  Object Value Struct Reference Proc Class Nil Symbol Enum Void
221
- Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float Float32 Float64 Char String
220
+ Bool Number Int Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64
221
+ Float Float32 Float64 Char String
222
222
  Pointer Slice Range Exception Regex
223
- Mutex StaticArray Array Hash Set Tuple Deque Box Process File Dir Time Channel Concurrent Scheduler
224
- abort at_exit caller delay exit fork future get_stack_top gets lazy loop main p print printf puts
223
+ Mutex StaticArray Array Hash Set Tuple Deque Box Process File
224
+ Dir Time Channel Concurrent Scheduler
225
+ abort at_exit caller delay exit fork future get_stack_top gets
226
+ lazy loop main p print printf puts
225
227
  raise rand read_line sleep sprintf system with_color
226
228
  '''.split(), prefix=r'(?<!\.)', suffix=r'\b'), Name.Builtin),
227
229
  # normal heredocs
@@ -274,12 +276,16 @@ class CrystalLexer(ExtendedRegexLexer):
274
276
  bygroups(Number.Hex, Text, Operator)),
275
277
  (r'(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
276
278
  bygroups(Number.Bin, Text, Operator)),
277
- # 3 separate expressions for floats because any of the 3 optional parts makes it a float
278
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?[f][0-9]+)?)(\s*)([/?])?',
279
+ # 3 separate expressions for floats because any of the 3 optional
280
+ # parts makes it a float
281
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?'
282
+ r'(?:_?f[0-9]+)?)(\s*)([/?])?',
279
283
  bygroups(Number.Float, Text, Operator)),
280
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?[f][0-9]+)?)(\s*)([/?])?',
284
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)'
285
+ r'(?:_?f[0-9]+)?)(\s*)([/?])?',
281
286
  bygroups(Number.Float, Text, Operator)),
282
- (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?[f][0-9]+))(\s*)([/?])?',
287
+ (r'((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?'
288
+ r'(?:_?f[0-9]+))(\s*)([/?])?',
283
289
  bygroups(Number.Float, Text, Operator)),
284
290
  (r'(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?',
285
291
  bygroups(Number.Integer, Text, Operator)),
@@ -301,7 +307,8 @@ class CrystalLexer(ExtendedRegexLexer):
301
307
  (r'\{%', String.Interpol, 'in-macro-control'),
302
308
  (r'\{\{', String.Interpol, 'in-macro-expr'),
303
309
  # attributes
304
- (r'(@\[)(\s*)([A-Z]\w*)', bygroups(Operator, Text, Name.Decorator), 'in-attr'),
310
+ (r'(@\[)(\s*)([A-Z]\w*)',
311
+ bygroups(Operator, Text, Name.Decorator), 'in-attr'),
305
312
  # this is needed because Crystal attributes can look
306
313
  # like keywords (class) or like this: ` ?!?
307
314
  (words(CRYSTAL_OPERATORS, prefix=r'(\.|::)'),
@@ -325,7 +332,8 @@ class CrystalLexer(ExtendedRegexLexer):
325
332
  ],
326
333
  'classname': [
327
334
  (r'[A-Z_]\w*', Name.Class),
328
- (r'(\()(\s*)([A-Z_]\w*)(\s*)(\))', bygroups(Punctuation, Text, Name.Class, Text, Punctuation)),
335
+ (r'(\()(\s*)([A-Z_]\w*)(\s*)(\))',
336
+ bygroups(Punctuation, Text, Name.Class, Text, Punctuation)),
329
337
  default('#pop')
330
338
  ],
331
339
  'in-intp': [