pygments.rb 1.2.1 → 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 (381) 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 -6
  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 +11 -21
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments/lexer.rb +5 -5
  15. data/lib/pygments/mentos.py +23 -110
  16. data/lib/pygments/popen.rb +148 -229
  17. data/lib/pygments/version.rb +2 -2
  18. data/lib/pygments.rb +10 -11
  19. data/pygments.rb.gemspec +12 -10
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +21 -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 +38 -29
  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 +9 -8
  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 +68 -41
  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 +28 -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 +1 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +74 -29
  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 +440 -76
  81. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  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 +5 -5
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +17 -2
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +67 -42
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +7 -7
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +23 -13
  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 +187 -36
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +3 -4
  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 +144 -62
  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 +46 -19
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +21 -13
  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 +62 -5
  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 +48 -21
  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 +1 -1
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +19 -8
  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 +60 -45
  140. data/vendor/pygments-main/pygments/lexers/julia.py +44 -46
  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 +1 -1
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -1
  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 +22 -22
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +260 -148
  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 -227
  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 +76 -72
  184. data/vendor/pygments-main/pygments/lexers/sas.py +1 -1
  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 +162 -42
  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 +3 -3
  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 -44
  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 +102 -121
  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 +4 -11
  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 +3 -3
  214. data/vendor/pygments-main/pygments/lexers/verification.py +13 -10
  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 +31 -28
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +5 -5
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +5 -4
  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 +1 -1
  224. data/vendor/pygments-main/pygments/plugin.py +4 -2
  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 +10 -4
  230. data/vendor/pygments-main/pygments/styles/abap.py +1 -1
  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 +1 -1
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +1 -1
  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.py → stata_light.py} +14 -15
  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 +15 -92
  267. metadata +68 -136
  268. data/CHANGELOG.md +0 -111
  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 -1186
  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 -354
  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 -166
  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 -728
  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 -101
  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/requirements.txt +0 -5
  331. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  332. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  333. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  334. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  335. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  336. data/vendor/pygments-main/scripts/pylintrc +0 -301
  337. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  338. data/vendor/pygments-main/setup.cfg +0 -10
  339. data/vendor/pygments-main/setup.py +0 -77
  340. data/vendor/pygments-main/tox.ini +0 -7
  341. data/vendor/simplejson/.gitignore +0 -10
  342. data/vendor/simplejson/.travis.yml +0 -5
  343. data/vendor/simplejson/CHANGES.txt +0 -291
  344. data/vendor/simplejson/LICENSE.txt +0 -19
  345. data/vendor/simplejson/MANIFEST.in +0 -5
  346. data/vendor/simplejson/README.rst +0 -19
  347. data/vendor/simplejson/conf.py +0 -179
  348. data/vendor/simplejson/index.rst +0 -628
  349. data/vendor/simplejson/scripts/make_docs.py +0 -18
  350. data/vendor/simplejson/setup.py +0 -104
  351. data/vendor/simplejson/simplejson/__init__.py +0 -510
  352. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  353. data/vendor/simplejson/simplejson/decoder.py +0 -425
  354. data/vendor/simplejson/simplejson/encoder.py +0 -567
  355. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  356. data/vendor/simplejson/simplejson/scanner.py +0 -77
  357. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  358. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  359. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  360. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  361. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  362. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  363. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  364. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  365. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  366. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  367. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  368. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  369. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  370. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  371. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  372. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  373. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  374. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  375. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  376. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  377. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  378. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  379. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  380. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  381. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for various template engines' markup.
7
7
 
8
- :copyright: Copyright 2006-2017 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
 
@@ -187,13 +187,13 @@ class SmartyLexer(RegexLexer):
187
187
 
188
188
  def analyse_text(text):
189
189
  rv = 0.0
190
- if re.search('\{if\s+.*?\}.*?\{/if\}', text):
190
+ if re.search(r'\{if\s+.*?\}.*?\{/if\}', text):
191
191
  rv += 0.15
192
- if re.search('\{include\s+file=.*?\}', text):
192
+ if re.search(r'\{include\s+file=.*?\}', text):
193
193
  rv += 0.15
194
- if re.search('\{foreach\s+.*?\}.*?\{/foreach\}', text):
194
+ if re.search(r'\{foreach\s+.*?\}.*?\{/foreach\}', text):
195
195
  rv += 0.15
196
- if re.search('\{\$.*?\}', text):
196
+ if re.search(r'\{\$.*?\}', text):
197
197
  rv += 0.01
198
198
  return rv
199
199
 
@@ -226,7 +226,7 @@ class VelocityLexer(RegexLexer):
226
226
  'directiveparams'),
227
227
  (r'(#\{?)(' + identifier + r')(\}|\b)',
228
228
  bygroups(Comment.Preproc, Name.Function, Comment.Preproc)),
229
- (r'\$\{?', Punctuation, 'variable')
229
+ (r'\$!?\{?', Punctuation, 'variable')
230
230
  ],
231
231
  'variable': [
232
232
  (identifier, Name.Variable),
@@ -249,7 +249,7 @@ class VelocityLexer(RegexLexer):
249
249
  (r'\]', Operator, '#pop')
250
250
  ],
251
251
  'funcparams': [
252
- (r'\$\{?', Punctuation, 'variable'),
252
+ (r'\$!?\{?', Punctuation, 'variable'),
253
253
  (r'\s+', Text),
254
254
  (r'[,:]', Punctuation),
255
255
  (r'"(\\\\|\\"|[^"])*"', String.Double),
@@ -274,7 +274,7 @@ class VelocityLexer(RegexLexer):
274
274
  rv += 0.15
275
275
  if re.search(r'#\{?foreach\}?\(.+?\).*?#\{?end\}?', text):
276
276
  rv += 0.15
277
- if re.search(r'\$\{?[a-zA-Z_]\w*(\([^)]*\))?'
277
+ if re.search(r'\$!?\{?[a-zA-Z_]\w*(\([^)]*\))?'
278
278
  r'(\.\w+(\([^)]*\))?)*\}?', text):
279
279
  rv += 0.01
280
280
  return rv
@@ -293,8 +293,7 @@ class VelocityHtmlLexer(DelegatingLexer):
293
293
  mimetypes = ['text/html+velocity']
294
294
 
295
295
  def __init__(self, **options):
296
- super(VelocityHtmlLexer, self).__init__(HtmlLexer, VelocityLexer,
297
- **options)
296
+ super().__init__(HtmlLexer, VelocityLexer, **options)
298
297
 
299
298
 
300
299
  class VelocityXmlLexer(DelegatingLexer):
@@ -310,8 +309,7 @@ class VelocityXmlLexer(DelegatingLexer):
310
309
  mimetypes = ['application/xml+velocity']
311
310
 
312
311
  def __init__(self, **options):
313
- super(VelocityXmlLexer, self).__init__(XmlLexer, VelocityLexer,
314
- **options)
312
+ super().__init__(XmlLexer, VelocityLexer, **options)
315
313
 
316
314
  def analyse_text(text):
317
315
  rv = VelocityLexer.analyse_text(text) - 0.01
@@ -323,7 +321,7 @@ class VelocityXmlLexer(DelegatingLexer):
323
321
  class DjangoLexer(RegexLexer):
324
322
  """
325
323
  Generic `django <http://www.djangoproject.com/documentation/templates/>`_
326
- and `jinja <http://wsgiarea.pocoo.org/jinja/>`_ template lexer.
324
+ and `jinja <https://jinja.pocoo.org/jinja/>`_ template lexer.
327
325
 
328
326
  It just highlights django/jinja code between the preprocessor directives,
329
327
  other data is left untouched by the lexer.
@@ -340,7 +338,7 @@ class DjangoLexer(RegexLexer):
340
338
  (r'[^{]+', Other),
341
339
  (r'\{\{', Comment.Preproc, 'var'),
342
340
  # jinja/django comments
343
- (r'\{[*#].*?[*#]\}', Comment),
341
+ (r'\{#.*?#\}', Comment),
344
342
  # django comments
345
343
  (r'(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)'
346
344
  r'(\{%)(-?\s*)(endcomment)(\s*-?)(%\})',
@@ -375,7 +373,7 @@ class DjangoLexer(RegexLexer):
375
373
  (r'\.\w+', Name.Variable),
376
374
  (r':?"(\\\\|\\"|[^"])*"', String.Double),
377
375
  (r":?'(\\\\|\\'|[^'])*'", String.Single),
378
- (r'([{}()\[\]+\-*/,:~]|[><=]=?)', Operator),
376
+ (r'([{}()\[\]+\-*/%,:~]|[><=]=?|!=)', Operator),
379
377
  (r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|"
380
378
  r"0[xX][0-9a-fA-F]+[Ll]?", Number),
381
379
  ],
@@ -421,18 +419,18 @@ class MyghtyLexer(RegexLexer):
421
419
  tokens = {
422
420
  'root': [
423
421
  (r'\s+', Text),
424
- (r'(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)',
422
+ (r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
425
423
  bygroups(Name.Tag, Text, Name.Function, Name.Tag,
426
424
  using(this), Name.Tag)),
427
- (r'(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)',
425
+ (r'(?s)(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)',
428
426
  bygroups(Name.Tag, Name.Function, Name.Tag,
429
427
  using(PythonLexer), Name.Tag)),
430
428
  (r'(<&[^|])(.*?)(,.*?)?(&>)',
431
429
  bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
432
- (r'(<&\|)(.*?)(,.*?)?(&>)(?s)',
430
+ (r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
433
431
  bygroups(Name.Tag, Name.Function, using(PythonLexer), Name.Tag)),
434
432
  (r'</&>', Name.Tag),
435
- (r'(<%!?)(.*?)(%>)(?s)',
433
+ (r'(?s)(<%!?)(.*?)(%>)',
436
434
  bygroups(Name.Tag, using(PythonLexer), Name.Tag)),
437
435
  (r'(?<=^)#[^\n]*(\n|\Z)', Comment),
438
436
  (r'(?<=^)(%)([^\n]*)(\n|\Z)',
@@ -464,8 +462,7 @@ class MyghtyHtmlLexer(DelegatingLexer):
464
462
  mimetypes = ['text/html+myghty']
465
463
 
466
464
  def __init__(self, **options):
467
- super(MyghtyHtmlLexer, self).__init__(HtmlLexer, MyghtyLexer,
468
- **options)
465
+ super().__init__(HtmlLexer, MyghtyLexer, **options)
469
466
 
470
467
 
471
468
  class MyghtyXmlLexer(DelegatingLexer):
@@ -481,8 +478,7 @@ class MyghtyXmlLexer(DelegatingLexer):
481
478
  mimetypes = ['application/xml+myghty']
482
479
 
483
480
  def __init__(self, **options):
484
- super(MyghtyXmlLexer, self).__init__(XmlLexer, MyghtyLexer,
485
- **options)
481
+ super().__init__(XmlLexer, MyghtyLexer, **options)
486
482
 
487
483
 
488
484
  class MyghtyJavascriptLexer(DelegatingLexer):
@@ -500,8 +496,7 @@ class MyghtyJavascriptLexer(DelegatingLexer):
500
496
  'text/javascript+mygthy']
501
497
 
502
498
  def __init__(self, **options):
503
- super(MyghtyJavascriptLexer, self).__init__(JavascriptLexer,
504
- MyghtyLexer, **options)
499
+ super().__init__(JavascriptLexer, MyghtyLexer, **options)
505
500
 
506
501
 
507
502
  class MyghtyCssLexer(DelegatingLexer):
@@ -517,8 +512,7 @@ class MyghtyCssLexer(DelegatingLexer):
517
512
  mimetypes = ['text/css+myghty']
518
513
 
519
514
  def __init__(self, **options):
520
- super(MyghtyCssLexer, self).__init__(CssLexer, MyghtyLexer,
521
- **options)
515
+ super().__init__(CssLexer, MyghtyLexer, **options)
522
516
 
523
517
 
524
518
  class MasonLexer(RegexLexer):
@@ -538,20 +532,19 @@ class MasonLexer(RegexLexer):
538
532
  tokens = {
539
533
  'root': [
540
534
  (r'\s+', Text),
541
- (r'(<%doc>)(.*?)(</%doc>)(?s)',
535
+ (r'(?s)(<%doc>)(.*?)(</%doc>)',
542
536
  bygroups(Name.Tag, Comment.Multiline, Name.Tag)),
543
- (r'(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)(?s)',
537
+ (r'(?s)(<%(?:def|method))(\s*)(.*?)(>)(.*?)(</%\2\s*>)',
544
538
  bygroups(Name.Tag, Text, Name.Function, Name.Tag,
545
539
  using(this), Name.Tag)),
546
- (r'(<%\w+)(.*?)(>)(.*?)(</%\2\s*>)(?s)',
547
- bygroups(Name.Tag, Name.Function, Name.Tag,
548
- using(PerlLexer), Name.Tag)),
549
- (r'(<&[^|])(.*?)(,.*?)?(&>)(?s)',
540
+ (r'(?s)(<%(\w+)(.*?)(>))(.*?)(</%\2\s*>)',
541
+ bygroups(Name.Tag, None, None, None, using(PerlLexer), Name.Tag)),
542
+ (r'(?s)(<&[^|])(.*?)(,.*?)?(&>)',
550
543
  bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
551
- (r'(<&\|)(.*?)(,.*?)?(&>)(?s)',
544
+ (r'(?s)(<&\|)(.*?)(,.*?)?(&>)',
552
545
  bygroups(Name.Tag, Name.Function, using(PerlLexer), Name.Tag)),
553
546
  (r'</&>', Name.Tag),
554
- (r'(<%!?)(.*?)(%>)(?s)',
547
+ (r'(?s)(<%!?)(.*?)(%>)',
555
548
  bygroups(Name.Tag, using(PerlLexer), Name.Tag)),
556
549
  (r'(?<=^)#[^\n]*(\n|\Z)', Comment),
557
550
  (r'(?<=^)(%)([^\n]*)(\n|\Z)',
@@ -571,7 +564,7 @@ class MasonLexer(RegexLexer):
571
564
 
572
565
  def analyse_text(text):
573
566
  result = 0.0
574
- if re.search(r'</%(class|doc|init)%>', text) is not None:
567
+ if re.search(r'</%(class|doc|init)>', text) is not None:
575
568
  result = 1.0
576
569
  elif re.search(r'<&.+&>', text, re.DOTALL) is not None:
577
570
  result = 0.11
@@ -607,7 +600,7 @@ class MakoLexer(RegexLexer):
607
600
  (r'(</%)([\w.:]+)(>)',
608
601
  bygroups(Comment.Preproc, Name.Builtin, Comment.Preproc)),
609
602
  (r'<%(?=([\w.:]+))', Comment.Preproc, 'ondeftags'),
610
- (r'(<%(?:!?))(.*?)(%>)(?s)',
603
+ (r'(?s)(<%(?:!?))(.*?)(%>)',
611
604
  bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
612
605
  (r'(\$\{)(.*?)(\})',
613
606
  bygroups(Comment.Preproc, using(PythonLexer), Comment.Preproc)),
@@ -659,8 +652,7 @@ class MakoHtmlLexer(DelegatingLexer):
659
652
  mimetypes = ['text/html+mako']
660
653
 
661
654
  def __init__(self, **options):
662
- super(MakoHtmlLexer, self).__init__(HtmlLexer, MakoLexer,
663
- **options)
655
+ super().__init__(HtmlLexer, MakoLexer, **options)
664
656
 
665
657
 
666
658
  class MakoXmlLexer(DelegatingLexer):
@@ -676,8 +668,7 @@ class MakoXmlLexer(DelegatingLexer):
676
668
  mimetypes = ['application/xml+mako']
677
669
 
678
670
  def __init__(self, **options):
679
- super(MakoXmlLexer, self).__init__(XmlLexer, MakoLexer,
680
- **options)
671
+ super().__init__(XmlLexer, MakoLexer, **options)
681
672
 
682
673
 
683
674
  class MakoJavascriptLexer(DelegatingLexer):
@@ -695,8 +686,7 @@ class MakoJavascriptLexer(DelegatingLexer):
695
686
  'text/javascript+mako']
696
687
 
697
688
  def __init__(self, **options):
698
- super(MakoJavascriptLexer, self).__init__(JavascriptLexer,
699
- MakoLexer, **options)
689
+ super().__init__(JavascriptLexer, MakoLexer, **options)
700
690
 
701
691
 
702
692
  class MakoCssLexer(DelegatingLexer):
@@ -712,8 +702,7 @@ class MakoCssLexer(DelegatingLexer):
712
702
  mimetypes = ['text/css+mako']
713
703
 
714
704
  def __init__(self, **options):
715
- super(MakoCssLexer, self).__init__(CssLexer, MakoLexer,
716
- **options)
705
+ super().__init__(CssLexer, MakoLexer, **options)
717
706
 
718
707
 
719
708
  # Genshi and Cheetah lexers courtesy of Matt Good.
@@ -759,7 +748,7 @@ class CheetahLexer(RegexLexer):
759
748
  # TODO support other Python syntax like $foo['bar']
760
749
  (r'(\$)([a-zA-Z_][\w.]*\w)',
761
750
  bygroups(Comment.Preproc, using(CheetahPythonLexer))),
762
- (r'(\$\{!?)(.*?)(\})(?s)',
751
+ (r'(?s)(\$\{!?)(.*?)(\})',
763
752
  bygroups(Comment.Preproc, using(CheetahPythonLexer),
764
753
  Comment.Preproc)),
765
754
  (r'''(?sx)
@@ -786,8 +775,7 @@ class CheetahHtmlLexer(DelegatingLexer):
786
775
  mimetypes = ['text/html+cheetah', 'text/html+spitfire']
787
776
 
788
777
  def __init__(self, **options):
789
- super(CheetahHtmlLexer, self).__init__(HtmlLexer, CheetahLexer,
790
- **options)
778
+ super().__init__(HtmlLexer, CheetahLexer, **options)
791
779
 
792
780
 
793
781
  class CheetahXmlLexer(DelegatingLexer):
@@ -801,8 +789,7 @@ class CheetahXmlLexer(DelegatingLexer):
801
789
  mimetypes = ['application/xml+cheetah', 'application/xml+spitfire']
802
790
 
803
791
  def __init__(self, **options):
804
- super(CheetahXmlLexer, self).__init__(XmlLexer, CheetahLexer,
805
- **options)
792
+ super().__init__(XmlLexer, CheetahLexer, **options)
806
793
 
807
794
 
808
795
  class CheetahJavascriptLexer(DelegatingLexer):
@@ -822,8 +809,7 @@ class CheetahJavascriptLexer(DelegatingLexer):
822
809
  'text/javascript+spitfire']
823
810
 
824
811
  def __init__(self, **options):
825
- super(CheetahJavascriptLexer, self).__init__(JavascriptLexer,
826
- CheetahLexer, **options)
812
+ super().__init__(JavascriptLexer, CheetahLexer, **options)
827
813
 
828
814
 
829
815
  class GenshiTextLexer(RegexLexer):
@@ -937,14 +923,13 @@ class HtmlGenshiLexer(DelegatingLexer):
937
923
  mimetypes = ['text/html+genshi']
938
924
 
939
925
  def __init__(self, **options):
940
- super(HtmlGenshiLexer, self).__init__(HtmlLexer, GenshiMarkupLexer,
941
- **options)
926
+ super().__init__(HtmlLexer, GenshiMarkupLexer, **options)
942
927
 
943
928
  def analyse_text(text):
944
929
  rv = 0.0
945
- if re.search('\$\{.*?\}', text) is not None:
930
+ if re.search(r'\$\{.*?\}', text) is not None:
946
931
  rv += 0.2
947
- if re.search('py:(.*?)=["\']', text) is not None:
932
+ if re.search(r'py:(.*?)=["\']', text) is not None:
948
933
  rv += 0.2
949
934
  return rv + HtmlLexer.analyse_text(text) - 0.01
950
935
 
@@ -962,14 +947,13 @@ class GenshiLexer(DelegatingLexer):
962
947
  mimetypes = ['application/x-genshi', 'application/x-kid']
963
948
 
964
949
  def __init__(self, **options):
965
- super(GenshiLexer, self).__init__(XmlLexer, GenshiMarkupLexer,
966
- **options)
950
+ super().__init__(XmlLexer, GenshiMarkupLexer, **options)
967
951
 
968
952
  def analyse_text(text):
969
953
  rv = 0.0
970
- if re.search('\$\{.*?\}', text) is not None:
954
+ if re.search(r'\$\{.*?\}', text) is not None:
971
955
  rv += 0.2
972
- if re.search('py:(.*?)=["\']', text) is not None:
956
+ if re.search(r'py:(.*?)=["\']', text) is not None:
973
957
  rv += 0.2
974
958
  return rv + XmlLexer.analyse_text(text) - 0.01
975
959
 
@@ -988,9 +972,7 @@ class JavascriptGenshiLexer(DelegatingLexer):
988
972
  'text/javascript+genshi']
989
973
 
990
974
  def __init__(self, **options):
991
- super(JavascriptGenshiLexer, self).__init__(JavascriptLexer,
992
- GenshiTextLexer,
993
- **options)
975
+ super().__init__(JavascriptLexer, GenshiTextLexer, **options)
994
976
 
995
977
  def analyse_text(text):
996
978
  return GenshiLexer.analyse_text(text) - 0.05
@@ -1007,8 +989,7 @@ class CssGenshiLexer(DelegatingLexer):
1007
989
  mimetypes = ['text/css+genshi']
1008
990
 
1009
991
  def __init__(self, **options):
1010
- super(CssGenshiLexer, self).__init__(CssLexer, GenshiTextLexer,
1011
- **options)
992
+ super().__init__(CssLexer, GenshiTextLexer, **options)
1012
993
 
1013
994
  def analyse_text(text):
1014
995
  return GenshiLexer.analyse_text(text) - 0.05
@@ -1029,7 +1010,7 @@ class RhtmlLexer(DelegatingLexer):
1029
1010
  mimetypes = ['text/html+ruby']
1030
1011
 
1031
1012
  def __init__(self, **options):
1032
- super(RhtmlLexer, self).__init__(HtmlLexer, ErbLexer, **options)
1013
+ super().__init__(HtmlLexer, ErbLexer, **options)
1033
1014
 
1034
1015
  def analyse_text(text):
1035
1016
  rv = ErbLexer.analyse_text(text) - 0.01
@@ -1051,7 +1032,7 @@ class XmlErbLexer(DelegatingLexer):
1051
1032
  mimetypes = ['application/xml+ruby']
1052
1033
 
1053
1034
  def __init__(self, **options):
1054
- super(XmlErbLexer, self).__init__(XmlLexer, ErbLexer, **options)
1035
+ super().__init__(XmlLexer, ErbLexer, **options)
1055
1036
 
1056
1037
  def analyse_text(text):
1057
1038
  rv = ErbLexer.analyse_text(text) - 0.01
@@ -1071,7 +1052,7 @@ class CssErbLexer(DelegatingLexer):
1071
1052
  mimetypes = ['text/css+ruby']
1072
1053
 
1073
1054
  def __init__(self, **options):
1074
- super(CssErbLexer, self).__init__(CssLexer, ErbLexer, **options)
1055
+ super().__init__(CssLexer, ErbLexer, **options)
1075
1056
 
1076
1057
  def analyse_text(text):
1077
1058
  return ErbLexer.analyse_text(text) - 0.05
@@ -1091,8 +1072,7 @@ class JavascriptErbLexer(DelegatingLexer):
1091
1072
  'text/javascript+ruby']
1092
1073
 
1093
1074
  def __init__(self, **options):
1094
- super(JavascriptErbLexer, self).__init__(JavascriptLexer, ErbLexer,
1095
- **options)
1075
+ super().__init__(JavascriptLexer, ErbLexer, **options)
1096
1076
 
1097
1077
  def analyse_text(text):
1098
1078
  return ErbLexer.analyse_text(text) - 0.05
@@ -1115,7 +1095,7 @@ class HtmlPhpLexer(DelegatingLexer):
1115
1095
  'application/x-httpd-php4', 'application/x-httpd-php5']
1116
1096
 
1117
1097
  def __init__(self, **options):
1118
- super(HtmlPhpLexer, self).__init__(HtmlLexer, PhpLexer, **options)
1098
+ super().__init__(HtmlLexer, PhpLexer, **options)
1119
1099
 
1120
1100
  def analyse_text(text):
1121
1101
  rv = PhpLexer.analyse_text(text) - 0.01
@@ -1135,7 +1115,7 @@ class XmlPhpLexer(DelegatingLexer):
1135
1115
  mimetypes = ['application/xml+php']
1136
1116
 
1137
1117
  def __init__(self, **options):
1138
- super(XmlPhpLexer, self).__init__(XmlLexer, PhpLexer, **options)
1118
+ super().__init__(XmlLexer, PhpLexer, **options)
1139
1119
 
1140
1120
  def analyse_text(text):
1141
1121
  rv = PhpLexer.analyse_text(text) - 0.01
@@ -1155,7 +1135,7 @@ class CssPhpLexer(DelegatingLexer):
1155
1135
  mimetypes = ['text/css+php']
1156
1136
 
1157
1137
  def __init__(self, **options):
1158
- super(CssPhpLexer, self).__init__(CssLexer, PhpLexer, **options)
1138
+ super().__init__(CssLexer, PhpLexer, **options)
1159
1139
 
1160
1140
  def analyse_text(text):
1161
1141
  return PhpLexer.analyse_text(text) - 0.05
@@ -1175,8 +1155,7 @@ class JavascriptPhpLexer(DelegatingLexer):
1175
1155
  'text/javascript+php']
1176
1156
 
1177
1157
  def __init__(self, **options):
1178
- super(JavascriptPhpLexer, self).__init__(JavascriptLexer, PhpLexer,
1179
- **options)
1158
+ super().__init__(JavascriptLexer, PhpLexer, **options)
1180
1159
 
1181
1160
  def analyse_text(text):
1182
1161
  return PhpLexer.analyse_text(text)
@@ -1196,7 +1175,7 @@ class HtmlSmartyLexer(DelegatingLexer):
1196
1175
  mimetypes = ['text/html+smarty']
1197
1176
 
1198
1177
  def __init__(self, **options):
1199
- super(HtmlSmartyLexer, self).__init__(HtmlLexer, SmartyLexer, **options)
1178
+ super().__init__(HtmlLexer, SmartyLexer, **options)
1200
1179
 
1201
1180
  def analyse_text(text):
1202
1181
  rv = SmartyLexer.analyse_text(text) - 0.01
@@ -1217,7 +1196,7 @@ class XmlSmartyLexer(DelegatingLexer):
1217
1196
  mimetypes = ['application/xml+smarty']
1218
1197
 
1219
1198
  def __init__(self, **options):
1220
- super(XmlSmartyLexer, self).__init__(XmlLexer, SmartyLexer, **options)
1199
+ super().__init__(XmlLexer, SmartyLexer, **options)
1221
1200
 
1222
1201
  def analyse_text(text):
1223
1202
  rv = SmartyLexer.analyse_text(text) - 0.01
@@ -1238,7 +1217,7 @@ class CssSmartyLexer(DelegatingLexer):
1238
1217
  mimetypes = ['text/css+smarty']
1239
1218
 
1240
1219
  def __init__(self, **options):
1241
- super(CssSmartyLexer, self).__init__(CssLexer, SmartyLexer, **options)
1220
+ super().__init__(CssLexer, SmartyLexer, **options)
1242
1221
 
1243
1222
  def analyse_text(text):
1244
1223
  return SmartyLexer.analyse_text(text) - 0.05
@@ -1258,8 +1237,7 @@ class JavascriptSmartyLexer(DelegatingLexer):
1258
1237
  'text/javascript+smarty']
1259
1238
 
1260
1239
  def __init__(self, **options):
1261
- super(JavascriptSmartyLexer, self).__init__(JavascriptLexer, SmartyLexer,
1262
- **options)
1240
+ super().__init__(JavascriptLexer, SmartyLexer, **options)
1263
1241
 
1264
1242
  def analyse_text(text):
1265
1243
  return SmartyLexer.analyse_text(text) - 0.05
@@ -1279,7 +1257,7 @@ class HtmlDjangoLexer(DelegatingLexer):
1279
1257
  mimetypes = ['text/html+django', 'text/html+jinja']
1280
1258
 
1281
1259
  def __init__(self, **options):
1282
- super(HtmlDjangoLexer, self).__init__(HtmlLexer, DjangoLexer, **options)
1260
+ super().__init__(HtmlLexer, DjangoLexer, **options)
1283
1261
 
1284
1262
  def analyse_text(text):
1285
1263
  rv = DjangoLexer.analyse_text(text) - 0.01
@@ -1300,7 +1278,7 @@ class XmlDjangoLexer(DelegatingLexer):
1300
1278
  mimetypes = ['application/xml+django', 'application/xml+jinja']
1301
1279
 
1302
1280
  def __init__(self, **options):
1303
- super(XmlDjangoLexer, self).__init__(XmlLexer, DjangoLexer, **options)
1281
+ super().__init__(XmlLexer, DjangoLexer, **options)
1304
1282
 
1305
1283
  def analyse_text(text):
1306
1284
  rv = DjangoLexer.analyse_text(text) - 0.01
@@ -1321,7 +1299,7 @@ class CssDjangoLexer(DelegatingLexer):
1321
1299
  mimetypes = ['text/css+django', 'text/css+jinja']
1322
1300
 
1323
1301
  def __init__(self, **options):
1324
- super(CssDjangoLexer, self).__init__(CssLexer, DjangoLexer, **options)
1302
+ super().__init__(CssLexer, DjangoLexer, **options)
1325
1303
 
1326
1304
  def analyse_text(text):
1327
1305
  return DjangoLexer.analyse_text(text) - 0.05
@@ -1345,8 +1323,7 @@ class JavascriptDjangoLexer(DelegatingLexer):
1345
1323
  'text/javascript+jinja']
1346
1324
 
1347
1325
  def __init__(self, **options):
1348
- super(JavascriptDjangoLexer, self).__init__(JavascriptLexer, DjangoLexer,
1349
- **options)
1326
+ super().__init__(JavascriptLexer, DjangoLexer, **options)
1350
1327
 
1351
1328
  def analyse_text(text):
1352
1329
  return DjangoLexer.analyse_text(text) - 0.05
@@ -1389,7 +1366,7 @@ class JspLexer(DelegatingLexer):
1389
1366
  mimetypes = ['application/x-jsp']
1390
1367
 
1391
1368
  def __init__(self, **options):
1392
- super(JspLexer, self).__init__(XmlLexer, JspRootLexer, **options)
1369
+ super().__init__(XmlLexer, JspRootLexer, **options)
1393
1370
 
1394
1371
  def analyse_text(text):
1395
1372
  rv = JavaLexer.analyse_text(text) - 0.01
@@ -1452,6 +1429,10 @@ class EvoqueLexer(RegexLexer):
1452
1429
  ],
1453
1430
  }
1454
1431
 
1432
+ def analyse_text(text):
1433
+ """Evoque templates use $evoque, which is unique."""
1434
+ if '$evoque' in text:
1435
+ return 1
1455
1436
 
1456
1437
  class EvoqueHtmlLexer(DelegatingLexer):
1457
1438
  """
@@ -1466,8 +1447,10 @@ class EvoqueHtmlLexer(DelegatingLexer):
1466
1447
  mimetypes = ['text/html+evoque']
1467
1448
 
1468
1449
  def __init__(self, **options):
1469
- super(EvoqueHtmlLexer, self).__init__(HtmlLexer, EvoqueLexer,
1470
- **options)
1450
+ super().__init__(HtmlLexer, EvoqueLexer, **options)
1451
+
1452
+ def analyse_text(text):
1453
+ return EvoqueLexer.analyse_text(text)
1471
1454
 
1472
1455
 
1473
1456
  class EvoqueXmlLexer(DelegatingLexer):
@@ -1483,8 +1466,10 @@ class EvoqueXmlLexer(DelegatingLexer):
1483
1466
  mimetypes = ['application/xml+evoque']
1484
1467
 
1485
1468
  def __init__(self, **options):
1486
- super(EvoqueXmlLexer, self).__init__(XmlLexer, EvoqueLexer,
1487
- **options)
1469
+ super().__init__(XmlLexer, EvoqueLexer, **options)
1470
+
1471
+ def analyse_text(text):
1472
+ return EvoqueLexer.analyse_text(text)
1488
1473
 
1489
1474
 
1490
1475
  class ColdfusionLexer(RegexLexer):
@@ -1591,8 +1576,7 @@ class ColdfusionHtmlLexer(DelegatingLexer):
1591
1576
  mimetypes = ['application/x-coldfusion']
1592
1577
 
1593
1578
  def __init__(self, **options):
1594
- super(ColdfusionHtmlLexer, self).__init__(HtmlLexer, ColdfusionMarkupLexer,
1595
- **options)
1579
+ super().__init__(HtmlLexer, ColdfusionMarkupLexer, **options)
1596
1580
 
1597
1581
 
1598
1582
  class ColdfusionCFCLexer(DelegatingLexer):
@@ -1607,8 +1591,7 @@ class ColdfusionCFCLexer(DelegatingLexer):
1607
1591
  mimetypes = []
1608
1592
 
1609
1593
  def __init__(self, **options):
1610
- super(ColdfusionCFCLexer, self).__init__(ColdfusionHtmlLexer, ColdfusionLexer,
1611
- **options)
1594
+ super().__init__(ColdfusionHtmlLexer, ColdfusionLexer, **options)
1612
1595
 
1613
1596
 
1614
1597
  class SspLexer(DelegatingLexer):
@@ -1623,11 +1606,11 @@ class SspLexer(DelegatingLexer):
1623
1606
  mimetypes = ['application/x-ssp']
1624
1607
 
1625
1608
  def __init__(self, **options):
1626
- super(SspLexer, self).__init__(XmlLexer, JspRootLexer, **options)
1609
+ super().__init__(XmlLexer, JspRootLexer, **options)
1627
1610
 
1628
1611
  def analyse_text(text):
1629
1612
  rv = 0.0
1630
- if re.search('val \w+\s*:', text):
1613
+ if re.search(r'val \w+\s*:', text):
1631
1614
  rv += 0.6
1632
1615
  if looks_like_xml(text):
1633
1616
  rv += 0.2
@@ -1670,8 +1653,7 @@ class TeaTemplateLexer(DelegatingLexer):
1670
1653
  mimetypes = ['text/x-tea']
1671
1654
 
1672
1655
  def __init__(self, **options):
1673
- super(TeaTemplateLexer, self).__init__(XmlLexer,
1674
- TeaTemplateRootLexer, **options)
1656
+ super().__init__(XmlLexer, TeaTemplateRootLexer, **options)
1675
1657
 
1676
1658
  def analyse_text(text):
1677
1659
  rv = TeaLangLexer.analyse_text(text) - 0.01
@@ -1701,7 +1683,7 @@ class LassoHtmlLexer(DelegatingLexer):
1701
1683
  'application/x-httpd-lasso[89]']
1702
1684
 
1703
1685
  def __init__(self, **options):
1704
- super(LassoHtmlLexer, self).__init__(HtmlLexer, LassoLexer, **options)
1686
+ super().__init__(HtmlLexer, LassoLexer, **options)
1705
1687
 
1706
1688
  def analyse_text(text):
1707
1689
  rv = LassoLexer.analyse_text(text) - 0.01
@@ -1725,7 +1707,7 @@ class LassoXmlLexer(DelegatingLexer):
1725
1707
  mimetypes = ['application/xml+lasso']
1726
1708
 
1727
1709
  def __init__(self, **options):
1728
- super(LassoXmlLexer, self).__init__(XmlLexer, LassoLexer, **options)
1710
+ super().__init__(XmlLexer, LassoLexer, **options)
1729
1711
 
1730
1712
  def analyse_text(text):
1731
1713
  rv = LassoLexer.analyse_text(text) - 0.01
@@ -1749,7 +1731,7 @@ class LassoCssLexer(DelegatingLexer):
1749
1731
 
1750
1732
  def __init__(self, **options):
1751
1733
  options['requiredelimiters'] = True
1752
- super(LassoCssLexer, self).__init__(CssLexer, LassoLexer, **options)
1734
+ super().__init__(CssLexer, LassoLexer, **options)
1753
1735
 
1754
1736
  def analyse_text(text):
1755
1737
  rv = LassoLexer.analyse_text(text) - 0.05
@@ -1777,8 +1759,7 @@ class LassoJavascriptLexer(DelegatingLexer):
1777
1759
 
1778
1760
  def __init__(self, **options):
1779
1761
  options['requiredelimiters'] = True
1780
- super(LassoJavascriptLexer, self).__init__(JavascriptLexer, LassoLexer,
1781
- **options)
1762
+ super().__init__(JavascriptLexer, LassoLexer, **options)
1782
1763
 
1783
1764
  def analyse_text(text):
1784
1765
  rv = LassoLexer.analyse_text(text) - 0.05
@@ -1802,27 +1783,27 @@ class HandlebarsLexer(RegexLexer):
1802
1783
  'root': [
1803
1784
  (r'[^{]+', Other),
1804
1785
 
1786
+ # Comment start {{! }} or {{!--
1805
1787
  (r'\{\{!.*\}\}', Comment),
1806
1788
 
1789
+ # HTML Escaping open {{{expression
1807
1790
  (r'(\{\{\{)(\s*)', bygroups(Comment.Special, Text), 'tag'),
1791
+
1792
+ # {{blockOpen {{#blockOpen {{/blockClose with optional tilde ~
1793
+ (r'(\{\{)([#~/]+)([^\s}]*)',
1794
+ bygroups(Comment.Preproc, Number.Attribute, Number.Attribute), 'tag'),
1808
1795
  (r'(\{\{)(\s*)', bygroups(Comment.Preproc, Text), 'tag'),
1809
1796
  ],
1810
1797
 
1811
1798
  'tag': [
1812
1799
  (r'\s+', Text),
1800
+ # HTML Escaping close }}}
1813
1801
  (r'\}\}\}', Comment.Special, '#pop'),
1814
- (r'\}\}', Comment.Preproc, '#pop'),
1815
-
1816
- # Handlebars
1817
- (r'([#/]*)(each|if|unless|else|with|log|in(line)?)', bygroups(Keyword,
1818
- Keyword)),
1819
- (r'#\*inline', Keyword),
1820
-
1821
- # General {{#block}}
1822
- (r'([#/])([\w-]+)', bygroups(Name.Function, Name.Function)),
1802
+ # blockClose}}, includes optional tilde ~
1803
+ (r'(~?)(\}\})', bygroups(Number, Comment.Preproc), '#pop'),
1823
1804
 
1824
1805
  # {{opt=something}}
1825
- (r'([\w-]+)(=)', bygroups(Name.Attribute, Operator)),
1806
+ (r'([^\s}]+)(=)', bygroups(Name.Attribute, Operator)),
1826
1807
 
1827
1808
  # Partials {{> ...}}
1828
1809
  (r'(>)(\s*)(@partial-block)', bygroups(Keyword, Text, Keyword)),
@@ -1845,7 +1826,7 @@ class HandlebarsLexer(RegexLexer):
1845
1826
  include('generic'),
1846
1827
  ],
1847
1828
  'variable': [
1848
- (r'[a-zA-Z][\w-]*', Name.Variable),
1829
+ (r'[()/@a-zA-Z][\w-]*', Name.Variable),
1849
1830
  (r'\.[\w-]+', Name.Variable),
1850
1831
  (r'(this\/|\.\/|(\.\.\/)+)[\w-]+', Name.Variable),
1851
1832
  ],
@@ -1875,7 +1856,7 @@ class HandlebarsHtmlLexer(DelegatingLexer):
1875
1856
  mimetypes = ['text/html+handlebars', 'text/x-handlebars-template']
1876
1857
 
1877
1858
  def __init__(self, **options):
1878
- super(HandlebarsHtmlLexer, self).__init__(HtmlLexer, HandlebarsLexer, **options)
1859
+ super().__init__(HtmlLexer, HandlebarsLexer, **options)
1879
1860
 
1880
1861
 
1881
1862
  class YamlJinjaLexer(DelegatingLexer):
@@ -1894,7 +1875,7 @@ class YamlJinjaLexer(DelegatingLexer):
1894
1875
  mimetypes = ['text/x-yaml+jinja', 'text/x-sls']
1895
1876
 
1896
1877
  def __init__(self, **options):
1897
- super(YamlJinjaLexer, self).__init__(YamlLexer, DjangoLexer, **options)
1878
+ super().__init__(YamlLexer, DjangoLexer, **options)
1898
1879
 
1899
1880
 
1900
1881
  class LiquidLexer(RegexLexer):
@@ -1955,7 +1936,7 @@ class LiquidLexer(RegexLexer):
1955
1936
 
1956
1937
  'output': [
1957
1938
  include('whitespace'),
1958
- ('\}\}', Punctuation, '#pop'), # end of output
1939
+ (r'\}\}', Punctuation, '#pop'), # end of output
1959
1940
 
1960
1941
  (r'\|', Punctuation, 'filters')
1961
1942
  ],
@@ -2200,7 +2181,7 @@ class TwigHtmlLexer(DelegatingLexer):
2200
2181
  mimetypes = ['text/html+twig']
2201
2182
 
2202
2183
  def __init__(self, **options):
2203
- super(TwigHtmlLexer, self).__init__(HtmlLexer, TwigLexer, **options)
2184
+ super().__init__(HtmlLexer, TwigLexer, **options)
2204
2185
 
2205
2186
 
2206
2187
  class Angular2Lexer(RegexLexer):
@@ -2235,9 +2216,9 @@ class Angular2Lexer(RegexLexer):
2235
2216
 
2236
2217
  # *ngIf="..."; #f="ngForm"
2237
2218
  (r'([*#])([\w:.-]+)(\s*)(=)(\s*)',
2238
- bygroups(Punctuation, Name.Attribute, Punctuation, Operator), 'attr'),
2219
+ bygroups(Punctuation, Name.Attribute, Text, Operator, Text), 'attr'),
2239
2220
  (r'([*#])([\w:.-]+)(\s*)',
2240
- bygroups(Punctuation, Name.Attribute, Punctuation)),
2221
+ bygroups(Punctuation, Name.Attribute, Text)),
2241
2222
  ],
2242
2223
 
2243
2224
  'ngExpression': [
@@ -2280,4 +2261,4 @@ class Angular2HtmlLexer(DelegatingLexer):
2280
2261
  filenames = ['*.ng2']
2281
2262
 
2282
2263
  def __init__(self, **options):
2283
- super(Angular2HtmlLexer, self).__init__(HtmlLexer, Angular2Lexer, **options)
2264
+ super().__init__(HtmlLexer, Angular2Lexer, **options)