pygments.rb 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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))