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 Dylan 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
 
@@ -32,27 +32,27 @@ class DylanLexer(RegexLexer):
32
32
 
33
33
  flags = re.IGNORECASE
34
34
 
35
- builtins = set((
35
+ builtins = {
36
36
  'subclass', 'abstract', 'block', 'concrete', 'constant', 'class',
37
37
  'compiler-open', 'compiler-sideways', 'domain', 'dynamic',
38
38
  'each-subclass', 'exception', 'exclude', 'function', 'generic',
39
39
  'handler', 'inherited', 'inline', 'inline-only', 'instance',
40
40
  'interface', 'import', 'keyword', 'library', 'macro', 'method',
41
41
  'module', 'open', 'primary', 'required', 'sealed', 'sideways',
42
- 'singleton', 'slot', 'thread', 'variable', 'virtual'))
42
+ 'singleton', 'slot', 'thread', 'variable', 'virtual'}
43
43
 
44
- keywords = set((
44
+ keywords = {
45
45
  'above', 'afterwards', 'begin', 'below', 'by', 'case', 'cleanup',
46
46
  'create', 'define', 'else', 'elseif', 'end', 'export', 'finally',
47
47
  'for', 'from', 'if', 'in', 'let', 'local', 'otherwise', 'rename',
48
48
  'select', 'signal', 'then', 'to', 'unless', 'until', 'use', 'when',
49
- 'while'))
49
+ 'while'}
50
50
 
51
- operators = set((
51
+ operators = {
52
52
  '~', '+', '-', '*', '|', '^', '=', '==', '~=', '~==', '<', '<=',
53
- '>', '>=', '&', '|'))
53
+ '>', '>=', '&', '|'}
54
54
 
55
- functions = set((
55
+ functions = {
56
56
  'abort', 'abs', 'add', 'add!', 'add-method', 'add-new', 'add-new!',
57
57
  'all-superclasses', 'always', 'any?', 'applicable-method?', 'apply',
58
58
  'aref', 'aref-setter', 'as', 'as-lowercase', 'as-lowercase!',
@@ -86,7 +86,7 @@ class DylanLexer(RegexLexer):
86
86
  'subtype?', 'table-protocol', 'tail', 'tail-setter', 'third',
87
87
  'third-setter', 'truncate', 'truncate/', 'type-error-expected-type',
88
88
  'type-error-value', 'type-for-copy', 'type-union', 'union', 'values',
89
- 'vector', 'zero?'))
89
+ 'vector', 'zero?'}
90
90
 
91
91
  valid_name = '\\\\?[\\w!&*<>|^$%@\\-+~?/=]+'
92
92
 
@@ -179,10 +179,10 @@ class DylanLexer(RegexLexer):
179
179
  (valid_name + ':', Keyword),
180
180
 
181
181
  # class names
182
- (r'<' + valid_name + '>', Name.Class),
182
+ ('<' + valid_name + '>', Name.Class),
183
183
 
184
184
  # define variable forms.
185
- (r'\*' + valid_name + '\*', Name.Variable.Global),
185
+ (r'\*' + valid_name + r'\*', Name.Variable.Global),
186
186
 
187
187
  # define constant forms.
188
188
  (r'\$' + valid_name, Name.Constant),
@@ -260,7 +260,7 @@ class DylanConsoleLexer(Lexer):
260
260
  mimetypes = ['text/x-dylan-console']
261
261
 
262
262
  _line_re = re.compile('.*?\n')
263
- _prompt_re = re.compile('\?| ')
263
+ _prompt_re = re.compile(r'\?| ')
264
264
 
265
265
  def get_tokens_unprocessed(self, text):
266
266
  dylexer = DylanLexer(**self.options)
@@ -277,13 +277,11 @@ class DylanConsoleLexer(Lexer):
277
277
  curcode += line[end:]
278
278
  else:
279
279
  if curcode:
280
- for item in do_insertions(insertions,
281
- dylexer.get_tokens_unprocessed(curcode)):
282
- yield item
280
+ yield from do_insertions(insertions,
281
+ dylexer.get_tokens_unprocessed(curcode))
283
282
  curcode = ''
284
283
  insertions = []
285
284
  yield match.start(), Generic.Output, line
286
285
  if curcode:
287
- for item in do_insertions(insertions,
288
- dylexer.get_tokens_unprocessed(curcode)):
289
- yield item
286
+ yield from do_insertions(insertions,
287
+ dylexer.get_tokens_unprocessed(curcode))
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for the ECL 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
 
@@ -21,7 +21,7 @@ __all__ = ['ECLLexer']
21
21
  class ECLLexer(RegexLexer):
22
22
  """
23
23
  Lexer for the declarative big-data `ECL
24
- <http://hpccsystems.com/community/docs/ecl-language-reference/html>`_
24
+ <https://hpccsystems.com/training/documentation/ecl-language-reference/html>`_
25
25
  language.
26
26
 
27
27
  .. versionadded:: 1.5
@@ -123,3 +123,17 @@ class ECLLexer(RegexLexer):
123
123
  (r'[^"\']+', String),
124
124
  ],
125
125
  }
126
+
127
+ def analyse_text(text):
128
+ """This is very difficult to guess relative to other business languages.
129
+ <- in conjuction with BEGIN/END seems relatively rare though."""
130
+ result = 0
131
+
132
+ if '<-' in text:
133
+ result += 0.01
134
+ if 'BEGIN' in text:
135
+ result += 0.01
136
+ if 'END' in text:
137
+ result += 0.01
138
+
139
+ return result
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the Eiffel 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
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexer for the Elm 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
 
@@ -27,7 +27,7 @@ class ElmLexer(RegexLexer):
27
27
  filenames = ['*.elm']
28
28
  mimetypes = ['text/x-elm']
29
29
 
30
- validName = r'[a-z_][a-zA-Z_\']*'
30
+ validName = r'[a-z_][a-zA-Z0-9_\']*'
31
31
 
32
32
  specialName = r'^main '
33
33
 
@@ -40,7 +40,7 @@ class ElmLexer(RegexLexer):
40
40
  reservedWords = words((
41
41
  'alias', 'as', 'case', 'else', 'if', 'import', 'in',
42
42
  'let', 'module', 'of', 'port', 'then', 'type', 'where',
43
- ), suffix=r'\b')
43
+ ), suffix=r'\b')
44
44
 
45
45
  tokens = {
46
46
  'root': [
@@ -68,7 +68,7 @@ class ElmLexer(RegexLexer):
68
68
  (reservedWords, Keyword.Reserved),
69
69
 
70
70
  # Types
71
- (r'[A-Z]\w*', Keyword.Type),
71
+ (r'[A-Z][a-zA-Z0-9_]*', Keyword.Type),
72
72
 
73
73
  # Main
74
74
  (specialName, Keyword.Reserved),
@@ -77,7 +77,7 @@ class ElmLexer(RegexLexer):
77
77
  (words((builtinOps), prefix=r'\(', suffix=r'\)'), Name.Function),
78
78
 
79
79
  # Infix Operators
80
- (words((builtinOps)), Name.Function),
80
+ (words(builtinOps), Name.Function),
81
81
 
82
82
  # Numbers
83
83
  include('numbers'),
@@ -0,0 +1,151 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.email
4
+ ~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexer for the raw E-mail.
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, DelegatingLexer, bygroups
13
+ from pygments.lexers.mime import MIMELexer
14
+ from pygments.token import Text, Keyword, Name, String, Number, Comment
15
+ from pygments.util import get_bool_opt
16
+
17
+ __all__ = ["EmailLexer"]
18
+
19
+
20
+ class EmailHeaderLexer(RegexLexer):
21
+ """
22
+ Sub-lexer for raw E-mail. This lexer only process header part of e-mail.
23
+
24
+ .. versionadded:: 2.5
25
+ """
26
+
27
+ def __init__(self, **options):
28
+ super().__init__(**options)
29
+ self.highlight_x = get_bool_opt(options, "highlight-X-header", False)
30
+
31
+ def get_x_header_tokens(self, match):
32
+ if self.highlight_x:
33
+ # field
34
+ yield match.start(1), Name.Tag, match.group(1)
35
+
36
+ # content
37
+ default_actions = self.get_tokens_unprocessed(
38
+ match.group(2), stack=("root", "header"))
39
+ yield from default_actions
40
+ else:
41
+ # lowlight
42
+ yield match.start(1), Comment.Special, match.group(1)
43
+ yield match.start(2), Comment.Multiline, match.group(2)
44
+
45
+ tokens = {
46
+ "root": [
47
+ (r"^(?:[A-WYZ]|X400)[\w\-]*:", Name.Tag, "header"),
48
+ (r"^(X-(?:\w[\w\-]*:))([\s\S]*?\n)(?![ \t])", get_x_header_tokens),
49
+ ],
50
+ "header": [
51
+ # folding
52
+ (r"\n[ \t]", Text.Whitespace),
53
+ (r"\n(?![ \t])", Text.Whitespace, "#pop"),
54
+
55
+ # keywords
56
+ (r"\bE?SMTPS?\b", Keyword),
57
+ (r"\b(?:HE|EH)LO\b", Keyword),
58
+
59
+ # mailbox
60
+ (r"[\w\.\-\+=]+@[\w\.\-]+", Name.Label),
61
+ (r"<[\w\.\-\+=]+@[\w\.\-]+>", Name.Label),
62
+
63
+ # domain
64
+ (r"\b(\w[\w\.-]*\.[\w\.-]*\w[a-zA-Z]+)\b", Name.Function),
65
+
66
+ # IPv4
67
+ (
68
+ r"(?<=\b)(?:(?:25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(?:25[0"
69
+ r"-5]|2[0-4][0-9]|1?[0-9][0-9]?)(?=\b)",
70
+ Number.Integer,
71
+ ),
72
+
73
+ # IPv6
74
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,7}:(?!\b)", Number.Hex),
75
+ (r"(?<=\b):((:[0-9a-fA-F]{1,4}){1,7}|:)(?=\b)", Number.Hex),
76
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}(?=\b)", Number.Hex),
77
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}(?=\b)", Number.Hex),
78
+ (r"(?<=\b)[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})(?=\b)", Number.Hex),
79
+ (r"(?<=\b)fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}(?=\b)", Number.Hex),
80
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}(?=\b)", Number.Hex),
81
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}(?=\b)",
82
+ Number.Hex),
83
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}(?=\b)",
84
+ Number.Hex),
85
+ (r"(?<=\b)([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}(?=\b)",
86
+ Number.Hex),
87
+ (
88
+ r"(?<=\b)::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}"
89
+ r"[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}"
90
+ r"[0-9])(?=\b)",
91
+ Number.Hex,
92
+ ),
93
+ (
94
+ r"(?<=\b)([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-"
95
+ r"9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-"
96
+ r"9])(?=\b)",
97
+ Number.Hex,
98
+ ),
99
+
100
+ # Date time
101
+ (
102
+ r"(?:(Sun|Mon|Tue|Wed|Thu|Fri|Sat),\s+)?(0[1-9]|[1-2]?[0-9]|3["
103
+ r"01])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+("
104
+ r"19[0-9]{2}|[2-9][0-9]{3})\s+(2[0-3]|[0-1][0-9]):([0-5][0-9])"
105
+ r"(?::(60|[0-5][0-9]))?(?:\.\d{1,5})?\s+([-\+][0-9]{2}[0-5][0-"
106
+ r"9]|\(?(?:UTC?|GMT|(?:E|C|M|P)(?:ST|ET|DT)|[A-IK-Z])\)?)",
107
+ Name.Decorator,
108
+ ),
109
+
110
+ # RFC-2047 encoded string
111
+ (
112
+ r"(=\?)([\w-]+)(\?)([BbQq])(\?)([\[\w!\"#$%&\'()*+,-./:;<=>@[\\"
113
+ r"\]^_`{|}~]+)(\?=)",
114
+ bygroups(
115
+ String.Affix,
116
+ Name.Constant,
117
+ String.Affix,
118
+ Keyword.Constant,
119
+ String.Affix,
120
+ Number.Hex,
121
+ String.Affix
122
+ )
123
+ ),
124
+
125
+ # others
126
+ (r'[\s]+', Text.Whitespace),
127
+ (r'[\S]', Text),
128
+ ],
129
+ }
130
+
131
+
132
+ class EmailLexer(DelegatingLexer):
133
+ """
134
+ Lexer for raw E-mail.
135
+
136
+ Additional options accepted:
137
+
138
+ `highlight-X-header`
139
+ Highlight the fields of ``X-`` user-defined email header. (default:
140
+ ``False``).
141
+
142
+ .. versionadded:: 2.5
143
+ """
144
+
145
+ name = "E-mail"
146
+ aliases = ["email", "eml"]
147
+ filenames = ["*.eml"]
148
+ mimetypes = ["message/rfc822"]
149
+
150
+ def __init__(self, **options):
151
+ super().__init__(EmailHeaderLexer, MIMELexer, Comment, **options)
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for Erlang.
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
 
@@ -163,7 +163,7 @@ class ErlangShellLexer(Lexer):
163
163
  filenames = ['*.erl-sh']
164
164
  mimetypes = ['text/x-erl-shellsession']
165
165
 
166
- _prompt_re = re.compile(r'\d+>(?=\s|\Z)')
166
+ _prompt_re = re.compile(r'(?:\([\w@_.]+\))?\d+>(?=\s|\Z)')
167
167
 
168
168
  def get_tokens_unprocessed(self, text):
169
169
  erlexer = ErlangLexer(**self.options)
@@ -180,9 +180,8 @@ class ErlangShellLexer(Lexer):
180
180
  curcode += line[end:]
181
181
  else:
182
182
  if curcode:
183
- for item in do_insertions(insertions,
184
- erlexer.get_tokens_unprocessed(curcode)):
185
- yield item
183
+ yield from do_insertions(insertions,
184
+ erlexer.get_tokens_unprocessed(curcode))
186
185
  curcode = ''
187
186
  insertions = []
188
187
  if line.startswith('*'):
@@ -190,9 +189,8 @@ class ErlangShellLexer(Lexer):
190
189
  else:
191
190
  yield match.start(), Generic.Output, line
192
191
  if curcode:
193
- for item in do_insertions(insertions,
194
- erlexer.get_tokens_unprocessed(curcode)):
195
- yield item
192
+ yield from do_insertions(insertions,
193
+ erlexer.get_tokens_unprocessed(curcode))
196
194
 
197
195
 
198
196
  def gen_elixir_string_rules(name, symbol, token):
@@ -207,10 +205,10 @@ def gen_elixir_string_rules(name, symbol, token):
207
205
  return states
208
206
 
209
207
 
210
- def gen_elixir_sigstr_rules(term, token, interpol=True):
208
+ def gen_elixir_sigstr_rules(term, term_class, token, interpol=True):
211
209
  if interpol:
212
210
  return [
213
- (r'[^#%s\\]+' % (term,), token),
211
+ (r'[^#%s\\]+' % (term_class,), token),
214
212
  include('escapes'),
215
213
  (r'\\.', token),
216
214
  (r'%s[a-zA-Z]*' % (term,), token, '#pop'),
@@ -218,7 +216,7 @@ def gen_elixir_sigstr_rules(term, token, interpol=True):
218
216
  ]
219
217
  else:
220
218
  return [
221
- (r'[^%s\\]+' % (term,), token),
219
+ (r'[^%s\\]+' % (term_class,), token),
222
220
  (r'\\.', token),
223
221
  (r'%s[a-zA-Z]*' % (term,), token, '#pop'),
224
222
  ]
@@ -233,7 +231,7 @@ class ElixirLexer(RegexLexer):
233
231
 
234
232
  name = 'Elixir'
235
233
  aliases = ['elixir', 'ex', 'exs']
236
- filenames = ['*.ex', '*.exs']
234
+ filenames = ['*.ex', '*.eex', '*.exs']
237
235
  mimetypes = ['text/x-elixir']
238
236
 
239
237
  KEYWORD = ('fn', 'do', 'end', 'after', 'else', 'rescue', 'catch')
@@ -291,14 +289,14 @@ class ElixirLexer(RegexLexer):
291
289
  def gen_elixir_sigil_rules():
292
290
  # all valid sigil terminators (excluding heredocs)
293
291
  terminators = [
294
- (r'\{', r'\}', 'cb'),
295
- (r'\[', r'\]', 'sb'),
296
- (r'\(', r'\)', 'pa'),
297
- (r'<', r'>', 'ab'),
298
- (r'/', r'/', 'slas'),
299
- (r'\|', r'\|', 'pipe'),
300
- ('"', '"', 'quot'),
301
- ("'", "'", 'apos'),
292
+ (r'\{', r'\}', '}', 'cb'),
293
+ (r'\[', r'\]', r'\]', 'sb'),
294
+ (r'\(', r'\)', ')', 'pa'),
295
+ ('<', '>', '>', 'ab'),
296
+ ('/', '/', '/', 'slas'),
297
+ (r'\|', r'\|', '|', 'pipe'),
298
+ ('"', '"', '"', 'quot'),
299
+ ("'", "'", "'", 'apos'),
302
300
  ]
303
301
 
304
302
  # heredocs have slightly different rules
@@ -328,14 +326,15 @@ class ElixirLexer(RegexLexer):
328
326
  include('heredoc_no_interpol'),
329
327
  ]
330
328
 
331
- for lterm, rterm, name in terminators:
329
+ for lterm, rterm, rterm_class, name in terminators:
332
330
  states['sigils'] += [
333
331
  (r'~[a-z]' + lterm, token, name + '-intp'),
334
332
  (r'~[A-Z]' + lterm, token, name + '-no-intp'),
335
333
  ]
336
- states[name + '-intp'] = gen_elixir_sigstr_rules(rterm, token)
334
+ states[name + '-intp'] = \
335
+ gen_elixir_sigstr_rules(rterm, rterm_class, token)
337
336
  states[name + '-no-intp'] = \
338
- gen_elixir_sigstr_rules(rterm, token, interpol=False)
337
+ gen_elixir_sigstr_rules(rterm, rterm_class, token, interpol=False)
339
338
 
340
339
  return states
341
340
 
@@ -344,7 +343,7 @@ class ElixirLexer(RegexLexer):
344
343
  op1_re = "|".join(re.escape(s) for s in OPERATORS1)
345
344
  ops_re = r'(?:%s|%s|%s)' % (op3_re, op2_re, op1_re)
346
345
  punctuation_re = "|".join(re.escape(s) for s in PUNCTUATION)
347
- alnum = '\w'
346
+ alnum = r'\w'
348
347
  name_re = r'(?:\.\.\.|[a-z_]%s*[!?]?)' % alnum
349
348
  modname_re = r'[A-Z]%(alnum)s*(?:\.[A-Z]%(alnum)s*)*' % {'alnum': alnum}
350
349
  complex_name_re = r'(?:%s|%s|%s)' % (name_re, modname_re, ops_re)
@@ -495,7 +494,7 @@ class ElixirConsoleLexer(Lexer):
495
494
  aliases = ['iex']
496
495
  mimetypes = ['text/x-elixir-shellsession']
497
496
 
498
- _prompt_re = re.compile('(iex|\.{3})(\(\d+\))?> ')
497
+ _prompt_re = re.compile(r'(iex|\.{3})((?:\([\w@_.]+\))?\d+|\(\d+\))?> ')
499
498
 
500
499
  def get_tokens_unprocessed(self, text):
501
500
  exlexer = ElixirLexer(**self.options)
@@ -505,7 +504,7 @@ class ElixirConsoleLexer(Lexer):
505
504
  insertions = []
506
505
  for match in line_re.finditer(text):
507
506
  line = match.group()
508
- if line.startswith(u'** '):
507
+ if line.startswith('** '):
509
508
  in_error = True
510
509
  insertions.append((len(curcode),
511
510
  [(0, Generic.Error, line[:-1])]))
@@ -520,14 +519,12 @@ class ElixirConsoleLexer(Lexer):
520
519
  curcode += line[end:]
521
520
  else:
522
521
  if curcode:
523
- for item in do_insertions(
524
- insertions, exlexer.get_tokens_unprocessed(curcode)):
525
- yield item
522
+ yield from do_insertions(
523
+ insertions, exlexer.get_tokens_unprocessed(curcode))
526
524
  curcode = ''
527
525
  insertions = []
528
526
  token = Generic.Error if in_error else Generic.Output
529
527
  yield match.start(), token, line
530
528
  if curcode:
531
- for item in do_insertions(
532
- insertions, exlexer.get_tokens_unprocessed(curcode)):
533
- yield item
529
+ yield from do_insertions(
530
+ insertions, exlexer.get_tokens_unprocessed(curcode))