pygments.rb 2.0.0.rc3 → 2.3.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 (286) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +13 -1
  3. data/.gitignore +0 -1
  4. data/.rubocop.yml +16 -0
  5. data/CHANGELOG.adoc +19 -0
  6. data/README.adoc +1 -3
  7. data/Rakefile +0 -14
  8. data/bench.rb +11 -6
  9. data/lib/pygments/lexer.rb +84 -62
  10. data/lib/pygments/mentos.py +7 -49
  11. data/lib/pygments/popen.rb +133 -173
  12. data/lib/pygments/version.rb +1 -1
  13. data/lib/pygments.rb +15 -6
  14. data/pygments.rb.gemspec +16 -11
  15. data/test/test_pygments.rb +19 -40
  16. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/AUTHORS +13 -1
  17. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/INSTALLER +0 -0
  18. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/LICENSE +1 -1
  19. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/METADATA +8 -9
  20. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +524 -0
  21. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/REQUESTED +0 -0
  22. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/WHEEL +0 -0
  23. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/entry_points.txt +0 -0
  24. data/vendor/pygments-main/{Pygments-2.7.3.dist-info → Pygments-2.10.0.dist-info}/top_level.txt +0 -0
  25. data/vendor/pygments-main/bin/pygmentize +1 -1
  26. data/vendor/pygments-main/pygments/__init__.py +2 -3
  27. data/vendor/pygments-main/pygments/__main__.py +1 -2
  28. data/vendor/pygments-main/pygments/cmdline.py +179 -159
  29. data/vendor/pygments-main/pygments/console.py +1 -2
  30. data/vendor/pygments-main/pygments/filter.py +1 -2
  31. data/vendor/pygments-main/pygments/filters/__init__.py +1 -2
  32. data/vendor/pygments-main/pygments/formatter.py +1 -2
  33. data/vendor/pygments-main/pygments/formatters/__init__.py +2 -3
  34. data/vendor/pygments-main/pygments/formatters/_mapping.py +2 -2
  35. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -2
  36. data/vendor/pygments-main/pygments/formatters/html.py +53 -25
  37. data/vendor/pygments-main/pygments/formatters/img.py +24 -10
  38. data/vendor/pygments-main/pygments/formatters/irc.py +1 -2
  39. data/vendor/pygments-main/pygments/formatters/latex.py +8 -9
  40. data/vendor/pygments-main/pygments/formatters/other.py +7 -10
  41. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +83 -0
  42. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -2
  43. data/vendor/pygments-main/pygments/formatters/svg.py +5 -4
  44. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -2
  45. data/vendor/pygments-main/pygments/formatters/terminal256.py +24 -3
  46. data/vendor/pygments-main/pygments/lexer.py +7 -6
  47. data/vendor/pygments-main/pygments/lexers/__init__.py +2 -3
  48. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +1 -2
  49. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +1 -2
  50. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +16 -12
  51. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +56 -16
  52. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +401 -0
  53. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +1 -2
  54. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +1 -2
  55. data/vendor/pygments-main/pygments/lexers/_mapping.py +73 -54
  56. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +1 -2
  57. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +2 -3
  58. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +439 -386
  59. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +1 -2
  60. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -2
  61. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +1 -2
  62. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -2
  63. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +1 -2
  64. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +91 -55
  65. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -2
  66. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +1 -2
  67. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +1 -2
  68. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -2
  69. data/vendor/pygments-main/pygments/lexers/actionscript.py +9 -10
  70. data/vendor/pygments-main/pygments/lexers/agile.py +1 -2
  71. data/vendor/pygments-main/pygments/lexers/algebra.py +1 -2
  72. data/vendor/pygments-main/pygments/lexers/ambient.py +3 -4
  73. data/vendor/pygments-main/pygments/lexers/amdgpu.py +53 -0
  74. data/vendor/pygments-main/pygments/lexers/ampl.py +1 -2
  75. data/vendor/pygments-main/pygments/lexers/apdlexer.py +448 -0
  76. data/vendor/pygments-main/pygments/lexers/apl.py +7 -5
  77. data/vendor/pygments-main/pygments/lexers/archetype.py +2 -3
  78. data/vendor/pygments-main/pygments/lexers/arrow.py +1 -2
  79. data/vendor/pygments-main/pygments/lexers/asc.py +51 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +87 -60
  81. data/vendor/pygments-main/pygments/lexers/automation.py +8 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +1 -2
  83. data/vendor/pygments-main/pygments/lexers/basic.py +3 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +3 -4
  85. data/vendor/pygments-main/pygments/lexers/boa.py +4 -5
  86. data/vendor/pygments-main/pygments/lexers/business.py +3 -4
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +61 -36
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +103 -5
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +1 -2
  90. data/vendor/pygments-main/pygments/lexers/cddl.py +190 -0
  91. data/vendor/pygments-main/pygments/lexers/chapel.py +52 -29
  92. data/vendor/pygments-main/pygments/lexers/clean.py +7 -8
  93. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -2
  94. data/vendor/pygments-main/pygments/lexers/configs.py +139 -48
  95. data/vendor/pygments-main/pygments/lexers/console.py +1 -2
  96. data/vendor/pygments-main/pygments/lexers/crystal.py +53 -79
  97. data/vendor/pygments-main/pygments/lexers/csound.py +3 -4
  98. data/vendor/pygments-main/pygments/lexers/css.py +11 -8
  99. data/vendor/pygments-main/pygments/lexers/d.py +3 -4
  100. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -2
  101. data/vendor/pygments-main/pygments/lexers/data.py +2 -3
  102. data/vendor/pygments-main/pygments/lexers/devicetree.py +2 -3
  103. data/vendor/pygments-main/pygments/lexers/diff.py +1 -2
  104. data/vendor/pygments-main/pygments/lexers/dotnet.py +7 -8
  105. data/vendor/pygments-main/pygments/lexers/dsls.py +3 -4
  106. data/vendor/pygments-main/pygments/lexers/dylan.py +1 -2
  107. data/vendor/pygments-main/pygments/lexers/ecl.py +4 -6
  108. data/vendor/pygments-main/pygments/lexers/eiffel.py +2 -3
  109. data/vendor/pygments-main/pygments/lexers/elm.py +1 -2
  110. data/vendor/pygments-main/pygments/lexers/email.py +1 -2
  111. data/vendor/pygments-main/pygments/lexers/erlang.py +2 -3
  112. data/vendor/pygments-main/pygments/lexers/esoteric.py +1 -2
  113. data/vendor/pygments-main/pygments/lexers/ezhil.py +1 -2
  114. data/vendor/pygments-main/pygments/lexers/factor.py +3 -4
  115. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -2
  116. data/vendor/pygments-main/pygments/lexers/felix.py +1 -2
  117. data/vendor/pygments-main/pygments/lexers/floscript.py +2 -3
  118. data/vendor/pygments-main/pygments/lexers/forth.py +2 -3
  119. data/vendor/pygments-main/pygments/lexers/fortran.py +9 -7
  120. data/vendor/pygments-main/pygments/lexers/foxpro.py +1 -2
  121. data/vendor/pygments-main/pygments/lexers/freefem.py +1 -2
  122. data/vendor/pygments-main/pygments/lexers/functional.py +1 -2
  123. data/vendor/pygments-main/pygments/lexers/futhark.py +111 -0
  124. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +36 -0
  125. data/vendor/pygments-main/pygments/lexers/gdscript.py +1 -2
  126. data/vendor/pygments-main/pygments/lexers/go.py +3 -4
  127. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +1 -2
  128. data/vendor/pygments-main/pygments/lexers/graph.py +1 -2
  129. data/vendor/pygments-main/pygments/lexers/graphics.py +4 -5
  130. data/vendor/pygments-main/pygments/lexers/graphviz.py +58 -0
  131. data/vendor/pygments-main/pygments/lexers/gsql.py +92 -0
  132. data/vendor/pygments-main/pygments/lexers/haskell.py +5 -6
  133. data/vendor/pygments-main/pygments/lexers/haxe.py +4 -5
  134. data/vendor/pygments-main/pygments/lexers/hdl.py +2 -6
  135. data/vendor/pygments-main/pygments/lexers/hexdump.py +1 -2
  136. data/vendor/pygments-main/pygments/lexers/html.py +7 -8
  137. data/vendor/pygments-main/pygments/lexers/idl.py +1 -2
  138. data/vendor/pygments-main/pygments/lexers/igor.py +1 -2
  139. data/vendor/pygments-main/pygments/lexers/inferno.py +1 -2
  140. data/vendor/pygments-main/pygments/lexers/installers.py +3 -4
  141. data/vendor/pygments-main/pygments/lexers/int_fiction.py +1 -2
  142. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -3
  143. data/vendor/pygments-main/pygments/lexers/j.py +2 -3
  144. data/vendor/pygments-main/pygments/lexers/javascript.py +170 -156
  145. data/vendor/pygments-main/pygments/lexers/jslt.py +94 -0
  146. data/vendor/pygments-main/pygments/lexers/julia.py +136 -185
  147. data/vendor/pygments-main/pygments/lexers/jvm.py +433 -307
  148. data/vendor/pygments-main/pygments/lexers/kuin.py +299 -0
  149. data/vendor/pygments-main/pygments/lexers/lisp.py +25 -23
  150. data/vendor/pygments-main/pygments/lexers/make.py +3 -4
  151. data/vendor/pygments-main/pygments/lexers/markup.py +13 -16
  152. data/vendor/pygments-main/pygments/lexers/math.py +1 -2
  153. data/vendor/pygments-main/pygments/lexers/matlab.py +2666 -93
  154. data/vendor/pygments-main/pygments/lexers/meson.py +155 -0
  155. data/vendor/pygments-main/pygments/lexers/mime.py +7 -23
  156. data/vendor/pygments-main/pygments/lexers/ml.py +8 -9
  157. data/vendor/pygments-main/pygments/lexers/modeling.py +1 -2
  158. data/vendor/pygments-main/pygments/lexers/modula2.py +3 -4
  159. data/vendor/pygments-main/pygments/lexers/monte.py +1 -2
  160. data/vendor/pygments-main/pygments/lexers/mosel.py +1 -2
  161. data/vendor/pygments-main/pygments/lexers/ncl.py +1 -2
  162. data/vendor/pygments-main/pygments/lexers/nimrod.py +2 -3
  163. data/vendor/pygments-main/pygments/lexers/nit.py +1 -2
  164. data/vendor/pygments-main/pygments/lexers/nix.py +1 -2
  165. data/vendor/pygments-main/pygments/lexers/oberon.py +1 -2
  166. data/vendor/pygments-main/pygments/lexers/objective.py +6 -7
  167. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -2
  168. data/vendor/pygments-main/pygments/lexers/other.py +1 -2
  169. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -2
  170. data/vendor/pygments-main/pygments/lexers/parsers.py +26 -27
  171. data/vendor/pygments-main/pygments/lexers/pascal.py +1 -2
  172. data/vendor/pygments-main/pygments/lexers/pawn.py +2 -5
  173. data/vendor/pygments-main/pygments/lexers/perl.py +1 -2
  174. data/vendor/pygments-main/pygments/lexers/php.py +3 -4
  175. data/vendor/pygments-main/pygments/lexers/pointless.py +1 -2
  176. data/vendor/pygments-main/pygments/lexers/pony.py +1 -2
  177. data/vendor/pygments-main/pygments/lexers/praat.py +1 -2
  178. data/vendor/pygments-main/pygments/lexers/procfile.py +43 -0
  179. data/vendor/pygments-main/pygments/lexers/prolog.py +3 -4
  180. data/vendor/pygments-main/pygments/lexers/promql.py +2 -3
  181. data/vendor/pygments-main/pygments/lexers/python.py +38 -17
  182. data/vendor/pygments-main/pygments/lexers/qvt.py +1 -2
  183. data/vendor/pygments-main/pygments/lexers/r.py +1 -2
  184. data/vendor/pygments-main/pygments/lexers/rdf.py +1 -2
  185. data/vendor/pygments-main/pygments/lexers/rebol.py +1 -2
  186. data/vendor/pygments-main/pygments/lexers/resource.py +2 -3
  187. data/vendor/pygments-main/pygments/lexers/ride.py +1 -2
  188. data/vendor/pygments-main/pygments/lexers/rnc.py +2 -3
  189. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -2
  190. data/vendor/pygments-main/pygments/lexers/robotframework.py +1 -2
  191. data/vendor/pygments-main/pygments/lexers/ruby.py +31 -25
  192. data/vendor/pygments-main/pygments/lexers/rust.py +10 -12
  193. data/vendor/pygments-main/pygments/lexers/sas.py +1 -2
  194. data/vendor/pygments-main/pygments/lexers/scdoc.py +1 -2
  195. data/vendor/pygments-main/pygments/lexers/scripting.py +12 -13
  196. data/vendor/pygments-main/pygments/lexers/sgf.py +1 -2
  197. data/vendor/pygments-main/pygments/lexers/shell.py +15 -17
  198. data/vendor/pygments-main/pygments/lexers/sieve.py +1 -2
  199. data/vendor/pygments-main/pygments/lexers/slash.py +1 -2
  200. data/vendor/pygments-main/pygments/lexers/smalltalk.py +1 -2
  201. data/vendor/pygments-main/pygments/lexers/smithy.py +79 -0
  202. data/vendor/pygments-main/pygments/lexers/smv.py +2 -3
  203. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -2
  204. data/vendor/pygments-main/pygments/lexers/solidity.py +1 -2
  205. data/vendor/pygments-main/pygments/lexers/special.py +44 -30
  206. data/vendor/pygments-main/pygments/lexers/sql.py +8 -13
  207. data/vendor/pygments-main/pygments/lexers/stata.py +1 -2
  208. data/vendor/pygments-main/pygments/lexers/supercollider.py +4 -5
  209. data/vendor/pygments-main/pygments/lexers/tcl.py +4 -5
  210. data/vendor/pygments-main/pygments/lexers/teal.py +88 -0
  211. data/vendor/pygments-main/pygments/lexers/templates.py +34 -35
  212. data/vendor/pygments-main/pygments/lexers/teraterm.py +2 -3
  213. data/vendor/pygments-main/pygments/lexers/testing.py +2 -3
  214. data/vendor/pygments-main/pygments/lexers/text.py +1 -2
  215. data/vendor/pygments-main/pygments/lexers/textedit.py +3 -4
  216. data/vendor/pygments-main/pygments/lexers/textfmts.py +1 -2
  217. data/vendor/pygments-main/pygments/lexers/theorem.py +11 -7
  218. data/vendor/pygments-main/pygments/lexers/thingsdb.py +118 -0
  219. data/vendor/pygments-main/pygments/lexers/tnt.py +26 -17
  220. data/vendor/pygments-main/pygments/lexers/trafficscript.py +2 -3
  221. data/vendor/pygments-main/pygments/lexers/typoscript.py +1 -2
  222. data/vendor/pygments-main/pygments/lexers/unicon.py +1 -2
  223. data/vendor/pygments-main/pygments/lexers/urbi.py +3 -4
  224. data/vendor/pygments-main/pygments/lexers/usd.py +1 -2
  225. data/vendor/pygments-main/pygments/lexers/varnish.py +2 -3
  226. data/vendor/pygments-main/pygments/lexers/verification.py +1 -2
  227. data/vendor/pygments-main/pygments/lexers/web.py +1 -2
  228. data/vendor/pygments-main/pygments/lexers/webassembly.py +120 -0
  229. data/vendor/pygments-main/pygments/lexers/webidl.py +1 -2
  230. data/vendor/pygments-main/pygments/lexers/webmisc.py +5 -5
  231. data/vendor/pygments-main/pygments/lexers/whiley.py +1 -2
  232. data/vendor/pygments-main/pygments/lexers/x10.py +2 -3
  233. data/vendor/pygments-main/pygments/lexers/xorg.py +1 -2
  234. data/vendor/pygments-main/pygments/lexers/yang.py +1 -2
  235. data/vendor/pygments-main/pygments/lexers/zig.py +1 -2
  236. data/vendor/pygments-main/pygments/modeline.py +1 -2
  237. data/vendor/pygments-main/pygments/plugin.py +2 -3
  238. data/vendor/pygments-main/pygments/regexopt.py +2 -3
  239. data/vendor/pygments-main/pygments/scanner.py +1 -2
  240. data/vendor/pygments-main/pygments/sphinxext.py +1 -2
  241. data/vendor/pygments-main/pygments/style.py +4 -5
  242. data/vendor/pygments-main/pygments/styles/__init__.py +5 -2
  243. data/vendor/pygments-main/pygments/styles/abap.py +1 -2
  244. data/vendor/pygments-main/pygments/styles/algol.py +1 -2
  245. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -2
  246. data/vendor/pygments-main/pygments/styles/arduino.py +1 -2
  247. data/vendor/pygments-main/pygments/styles/autumn.py +1 -2
  248. data/vendor/pygments-main/pygments/styles/borland.py +1 -2
  249. data/vendor/pygments-main/pygments/styles/bw.py +1 -2
  250. data/vendor/pygments-main/pygments/styles/colorful.py +1 -2
  251. data/vendor/pygments-main/pygments/styles/default.py +1 -2
  252. data/vendor/pygments-main/pygments/styles/emacs.py +1 -2
  253. data/vendor/pygments-main/pygments/styles/friendly.py +2 -2
  254. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  255. data/vendor/pygments-main/pygments/styles/gruvbox.py +107 -0
  256. data/vendor/pygments-main/pygments/styles/igor.py +1 -2
  257. data/vendor/pygments-main/pygments/styles/inkpot.py +1 -2
  258. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -2
  259. data/vendor/pygments-main/pygments/styles/manni.py +1 -2
  260. data/vendor/pygments-main/pygments/styles/material.py +118 -0
  261. data/vendor/pygments-main/pygments/styles/monokai.py +1 -2
  262. data/vendor/pygments-main/pygments/styles/murphy.py +1 -2
  263. data/vendor/pygments-main/pygments/styles/native.py +2 -2
  264. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -2
  265. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -2
  266. data/vendor/pygments-main/pygments/styles/pastie.py +1 -2
  267. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -2
  268. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +1 -2
  269. data/vendor/pygments-main/pygments/styles/rrt.py +1 -2
  270. data/vendor/pygments-main/pygments/styles/sas.py +1 -2
  271. data/vendor/pygments-main/pygments/styles/solarized.py +4 -2
  272. data/vendor/pygments-main/pygments/styles/stata_dark.py +1 -2
  273. data/vendor/pygments-main/pygments/styles/stata_light.py +1 -2
  274. data/vendor/pygments-main/pygments/styles/tango.py +1 -2
  275. data/vendor/pygments-main/pygments/styles/trac.py +1 -2
  276. data/vendor/pygments-main/pygments/styles/vim.py +1 -2
  277. data/vendor/pygments-main/pygments/styles/vs.py +1 -2
  278. data/vendor/pygments-main/pygments/styles/xcode.py +1 -2
  279. data/vendor/pygments-main/pygments/styles/zenburn.py +80 -0
  280. data/vendor/pygments-main/pygments/token.py +1 -2
  281. data/vendor/pygments-main/pygments/unistring.py +1 -2
  282. data/vendor/pygments-main/pygments/util.py +2 -5
  283. metadata +48 -23
  284. data/cache-lexers.rb +0 -9
  285. data/lexers +0 -0
  286. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +0 -482
@@ -0,0 +1,299 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ pygments.lexers.kuin
4
+ ~~~~~~~~~~~~~~~~~~~~
5
+
6
+ Lexers for the Kuin language.
7
+ """
8
+
9
+ from pygments.lexer import RegexLexer, include, using, inherit, this, bygroups, words
10
+ from pygments.token import Text, Comment, Operator, Keyword, Name, String, Number, Punctuation
11
+
12
+ __all__ = ['KuinLexer']
13
+
14
+ class KuinLexer(RegexLexer):
15
+ """
16
+ For `Kuin <https://github.com/kuina/Kuin>`_ source code
17
+
18
+ .. versionadded:: 2.9
19
+ """
20
+ name = 'Kuin'
21
+ aliases = ['kuin']
22
+ filenames = ['*.kn']
23
+
24
+ tokens = {
25
+ 'root': [
26
+ include('statement'),
27
+ ],
28
+ 'statement': [
29
+ # Whitespace / Comment
30
+ include('whitespace'),
31
+
32
+ # Block-statement
33
+ (r'(\+?[ \t]*\*?[ \t]*\bfunc)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)', bygroups(Keyword, using(this), Name.Function), 'func_'),
34
+ (r'\b(class)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)', bygroups(Keyword, using(this), Name.Class), 'class_'),
35
+ (r'\b(enum)([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*)', bygroups(Keyword, using(this), Name.Constant), 'enum_'),
36
+ (r'\b(block)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'block_'),
37
+ (r'\b(ifdef)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'ifdef_'),
38
+ (r'\b(if)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'if_'),
39
+ (r'\b(switch)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'switch_'),
40
+ (r'\b(while)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'while_'),
41
+ (r'\b(for)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'for_'),
42
+ (r'\b(foreach)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'foreach_'),
43
+ (r'\b(try)\b(?:([ \t]+(?:\n\s*\|)*[ \t]*)([a-zA-Z_][0-9a-zA-Z_]*))?', bygroups(Keyword, using(this), Name.Other), 'try_'),
44
+
45
+ # Line-statement
46
+ (r'\b(do)\b', Keyword, 'do'),
47
+ (r'(\+?[ \t]*\bvar)\b', Keyword, 'var'),
48
+ (r'\b(const)\b', Keyword, 'const'),
49
+ (r'\b(ret)\b', Keyword, 'ret'),
50
+ (r'\b(throw)\b', Keyword, 'throw'),
51
+ (r'\b(alias)\b', Keyword, 'alias'),
52
+ (r'\b(assert)\b', Keyword, 'assert'),
53
+ (r'\|', Text, 'continued_line'),
54
+ (r'[ \t]*\n', Text),
55
+ ],
56
+
57
+ # Whitespace / Comment
58
+ 'whitespace': [
59
+ (r'^[ \t]*;.*', Comment.Single),
60
+ (r'[ \t]+(?![; \t])', Text),
61
+ (r'\{', Comment.Multiline, 'multiline_comment'),
62
+ ],
63
+ 'multiline_comment': [
64
+ (r'\{', Comment.Multiline, 'multiline_comment'),
65
+ (r'(?:\s*;.*|[^{}\n]+)', Comment.Multiline),
66
+ (r'\n', Comment.Multiline),
67
+ (r'\}', Comment.Multiline, '#pop'),
68
+ ],
69
+
70
+ # Block-statement
71
+ 'func_': [
72
+ include('expr'),
73
+ (r'\n', Text, 'func'),
74
+ ],
75
+ 'func': [
76
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(func)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
77
+ include('statement'),
78
+ ],
79
+ 'class_': [
80
+ include('expr'),
81
+ (r'\n', Text, 'class'),
82
+ ],
83
+ 'class': [
84
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(class)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
85
+ include('statement'),
86
+ ],
87
+ 'enum_': [
88
+ include('expr'),
89
+ (r'\n', Text, 'enum'),
90
+ ],
91
+ 'enum': [
92
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(enum)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
93
+ include('expr'),
94
+ (r'\n', Text),
95
+ ],
96
+ 'block_': [
97
+ include('expr'),
98
+ (r'\n', Text, 'block'),
99
+ ],
100
+ 'block': [
101
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(block)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
102
+ include('statement'),
103
+ include('break'),
104
+ include('skip'),
105
+ ],
106
+ 'ifdef_': [
107
+ include('expr'),
108
+ (r'\n', Text, 'ifdef'),
109
+ ],
110
+ 'ifdef': [
111
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(ifdef)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
112
+ (words(('rls', 'dbg'), prefix=r'\b', suffix=r'\b'), Keyword.Constant, 'ifdef_sp'),
113
+ include('statement'),
114
+ include('break'),
115
+ include('skip'),
116
+ ],
117
+ 'ifdef_sp': [
118
+ include('expr'),
119
+ (r'\n', Text, '#pop'),
120
+ ],
121
+ 'if_': [
122
+ include('expr'),
123
+ (r'\n', Text, 'if'),
124
+ ],
125
+ 'if': [
126
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(if)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
127
+ (words(('elif', 'else'), prefix=r'\b', suffix=r'\b'), Keyword, 'if_sp'),
128
+ include('statement'),
129
+ include('break'),
130
+ include('skip'),
131
+ ],
132
+ 'if_sp': [
133
+ include('expr'),
134
+ (r'\n', Text, '#pop'),
135
+ ],
136
+ 'switch_': [
137
+ include('expr'),
138
+ (r'\n', Text, 'switch'),
139
+ ],
140
+ 'switch': [
141
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(switch)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
142
+ (words(('case', 'default', 'to'), prefix=r'\b', suffix=r'\b'), Keyword, 'switch_sp'),
143
+ include('statement'),
144
+ include('break'),
145
+ include('skip'),
146
+ ],
147
+ 'switch_sp': [
148
+ include('expr'),
149
+ (r'\n', Text, '#pop'),
150
+ ],
151
+ 'while_': [
152
+ include('expr'),
153
+ (r'\n', Text, 'while'),
154
+ ],
155
+ 'while': [
156
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(while)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
157
+ include('statement'),
158
+ include('break'),
159
+ include('skip'),
160
+ ],
161
+ 'for_': [
162
+ include('expr'),
163
+ (r'\n', Text, 'for'),
164
+ ],
165
+ 'for': [
166
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(for)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
167
+ include('statement'),
168
+ include('break'),
169
+ include('skip'),
170
+ ],
171
+ 'foreach_': [
172
+ include('expr'),
173
+ (r'\n', Text, 'foreach'),
174
+ ],
175
+ 'foreach': [
176
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(foreach)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
177
+ include('statement'),
178
+ include('break'),
179
+ include('skip'),
180
+ ],
181
+ 'try_': [
182
+ include('expr'),
183
+ (r'\n', Text, 'try'),
184
+ ],
185
+ 'try': [
186
+ (r'\b(end)([ \t]+(?:\n\s*\|)*[ \t]*)(try)\b', bygroups(Keyword, using(this), Keyword), '#pop:2'),
187
+ (words(('catch', 'finally', 'to'), prefix=r'\b', suffix=r'\b'), Keyword, 'try_sp'),
188
+ include('statement'),
189
+ include('break'),
190
+ include('skip'),
191
+ ],
192
+ 'try_sp': [
193
+ include('expr'),
194
+ (r'\n', Text, '#pop'),
195
+ ],
196
+
197
+ # Line-statement
198
+ 'break': [
199
+ (r'\b(break)\b([ \t]+)([a-zA-Z_][0-9a-zA-Z_]*)', bygroups(Keyword, using(this), Name.Other)),
200
+ ],
201
+ 'skip': [
202
+ (r'\b(skip)\b([ \t]+)([a-zA-Z_][0-9a-zA-Z_]*)', bygroups(Keyword, using(this), Name.Other)),
203
+ ],
204
+ 'alias': [
205
+ include('expr'),
206
+ (r'\n', Text, '#pop'),
207
+ ],
208
+ 'assert': [
209
+ include('expr'),
210
+ (r'\n', Text, '#pop'),
211
+ ],
212
+ 'const': [
213
+ include('expr'),
214
+ (r'\n', Text, '#pop'),
215
+ ],
216
+ 'do': [
217
+ include('expr'),
218
+ (r'\n', Text, '#pop'),
219
+ ],
220
+ 'ret': [
221
+ include('expr'),
222
+ (r'\n', Text, '#pop'),
223
+ ],
224
+ 'throw': [
225
+ include('expr'),
226
+ (r'\n', Text, '#pop'),
227
+ ],
228
+ 'var': [
229
+ include('expr'),
230
+ (r'\n', Text, '#pop'),
231
+ ],
232
+ 'continued_line': [
233
+ include('expr'),
234
+ (r'\n', Text, '#pop'),
235
+ ],
236
+
237
+ 'expr': [
238
+ # Whitespace / Comment
239
+ include('whitespace'),
240
+
241
+ # Punctuation
242
+ (r'\(', Punctuation,),
243
+ (r'\)', Punctuation,),
244
+ (r'\[', Punctuation,),
245
+ (r'\]', Punctuation,),
246
+ (r',', Punctuation),
247
+
248
+ # Keyword
249
+ (words((
250
+ 'true', 'false', 'null', 'inf'
251
+ ), prefix=r'\b', suffix=r'\b'), Keyword.Constant),
252
+ (words((
253
+ 'me'
254
+ ), prefix=r'\b', suffix=r'\b'), Keyword),
255
+ (words((
256
+ 'bit16', 'bit32', 'bit64', 'bit8', 'bool',
257
+ 'char', 'class', 'dict', 'enum', 'float', 'func',
258
+ 'int', 'list', 'queue', 'stack'
259
+ ), prefix=r'\b', suffix=r'\b'), Keyword.Type),
260
+
261
+ # Number
262
+ (r'\b[0-9]\.[0-9]+(?!\.)(:?e[\+-][0-9]+)?\b', Number.Float),
263
+ (r'\b2#[01]+(?:b(?:8|16|32|64))?\b', Number.Bin),
264
+ (r'\b8#[0-7]+(?:b(?:8|16|32|64))?\b', Number.Oct),
265
+ (r'\b16#[0-9A-F]+(?:b(?:8|16|32|64))?\b', Number.Hex),
266
+ (r'\b[0-9]+(?:b(?:8|16|32|64))?\b', Number.Decimal),
267
+
268
+ # String / Char
269
+ (r'"', String.Double, 'string'),
270
+ (r"'(?:\\.|.)+?'", String.Char),
271
+
272
+ # Operator
273
+ (r'(?:\.|\$(?:>|<)?)', Operator),
274
+ (r'(?:\^)', Operator),
275
+ (r'(?:\+|-|!|##?)', Operator),
276
+ (r'(?:\*|/|%)', Operator),
277
+ (r'(?:~)', Operator),
278
+ (r'(?:(?:=|<>)(?:&|\$)?|<=?|>=?)', Operator),
279
+ (r'(?:&)', Operator),
280
+ (r'(?:\|)', Operator),
281
+ (r'(?:\?)', Operator),
282
+ (r'(?::(?::|\+|-|\*|/|%|\^|~)?)', Operator),
283
+
284
+ # Identifier
285
+ (r"\b([a-zA-Z_][0-9a-zA-Z_]*)(?=@)\b", Name),
286
+ (r"(@)?\b([a-zA-Z_][0-9a-zA-Z_]*)\b", bygroups(Name.Other, Name.Variable)),
287
+ ],
288
+
289
+ # String
290
+ 'string': [
291
+ (r'(?:\\[^{\n]|[^"\\])+', String.Double),
292
+ (r'\\\{', String.Double, 'toStrInString'),
293
+ (r'"', String.Double, '#pop'),
294
+ ],
295
+ 'toStrInString': [
296
+ include('expr'),
297
+ (r'\}', String.Double, '#pop'),
298
+ ],
299
+ }
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.lisp
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Lispy languages.
7
6
 
8
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -119,7 +118,7 @@ class SchemeLexer(RegexLexer):
119
118
  # (r'(#e|#i|#b|#o|#d|#x)[\d.]+', Number),
120
119
 
121
120
  # strings, symbols and characters
122
- (r'"(\\\\|\\"|[^"])*"', String),
121
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
123
122
  (r"'" + valid_name, String.Symbol),
124
123
  (r"#\\([()/'\"._!§$%& ?=+-]|[a-zA-Z0-9]+)", String.Char),
125
124
 
@@ -403,7 +402,7 @@ class HyLexer(RegexLexer):
403
402
  (r'0[xX][a-fA-F0-9]+', Number.Hex),
404
403
 
405
404
  # strings, symbols and characters
406
- (r'"(\\\\|\\"|[^"])*"', String),
405
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
407
406
  (r"'" + valid_name, String.Symbol),
408
407
  (r"\\(.|[a-z]+)", String.Char),
409
408
  (r'^(\s*)([rRuU]{,2}"""(?:.|\n)*?""")', bygroups(Text, String.Doc)),
@@ -1490,7 +1489,7 @@ class NewLispLexer(RegexLexer):
1490
1489
  (r'\s+', Text),
1491
1490
 
1492
1491
  # strings, symbols and characters
1493
- (r'"(\\\\|\\"|[^"])*"', String),
1492
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
1494
1493
 
1495
1494
  # braces
1496
1495
  (r'\{', String, "bracestring"),
@@ -1537,7 +1536,7 @@ class EmacsLispLexer(RegexLexer):
1537
1536
  .. versionadded:: 2.1
1538
1537
  """
1539
1538
  name = 'EmacsLisp'
1540
- aliases = ['emacs', 'elisp', 'emacs-lisp']
1539
+ aliases = ['emacs-lisp', 'elisp', 'emacs']
1541
1540
  filenames = ['*.el']
1542
1541
  mimetypes = ['text/x-elisp', 'application/x-elisp']
1543
1542
 
@@ -2383,7 +2382,7 @@ class CPSALexer(SchemeLexer):
2383
2382
  # (r'(#e|#i|#b|#o|#d|#x)[\d.]+', Number),
2384
2383
 
2385
2384
  # strings, symbols and characters
2386
- (r'"(\\\\|\\"|[^"])*"', String),
2385
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
2387
2386
  (r"'" + valid_name, String.Symbol),
2388
2387
  (r"#\\([()/'\"._!§$%& ?=+-]|[a-zA-Z0-9]+)", String.Char),
2389
2388
 
@@ -2596,7 +2595,7 @@ class XtlangLexer(RegexLexer):
2596
2595
  (r'(#b|#o|#x)[\d.]+', Number),
2597
2596
 
2598
2597
  # strings
2599
- (r'"(\\\\|\\"|[^"])*"', String),
2598
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
2600
2599
 
2601
2600
  # true/false constants
2602
2601
  (r'(#t|#f)', Name.Constant),
@@ -2632,23 +2631,22 @@ class FennelLexer(RegexLexer):
2632
2631
  aliases = ['fennel', 'fnl']
2633
2632
  filenames = ['*.fnl']
2634
2633
 
2635
- # these two lists are taken from fennel-mode.el:
2636
- # https://gitlab.com/technomancy/fennel-mode
2637
- # this list is current as of Fennel version 0.6.0.
2634
+ # this list is current as of Fennel version 0.10.0.
2638
2635
  special_forms = (
2639
- 'require-macros', 'eval-compiler', 'doc', 'lua', 'hashfn',
2640
- 'macro', 'macros', 'import-macros', 'pick-args', 'pick-values',
2641
- 'macroexpand', 'macrodebug', 'do', 'values', 'if', 'when',
2642
- 'each', 'for', 'fn', 'lambda', 'λ', 'partial', 'while',
2643
- 'set', 'global', 'var', 'local', 'let', 'tset', 'set-forcibly!',
2644
- 'doto', 'match', 'or', 'and', 'true', 'false', 'nil', 'not',
2645
- 'not=', '.', '+', '..', '^', '-', '*', '%', '/', '>',
2646
- '<', '>=', '<=', '=', '...', ':', '->', '->>', '-?>',
2647
- '-?>>', 'rshift', 'lshift', 'bor', 'band', 'bnot', 'bxor',
2648
- 'with-open', 'length'
2636
+ '#', '%', '*', '+', '-', '->', '->>', '-?>', '-?>>', '.', '..',
2637
+ '/', '//', ':', '<', '<=', '=', '>', '>=', '?.', '^', 'accumulate',
2638
+ 'and', 'band', 'bnot', 'bor', 'bxor', 'collect', 'comment', 'do', 'doc',
2639
+ 'doto', 'each', 'eval-compiler', 'for', 'hashfn', 'icollect', 'if',
2640
+ 'import-macros', 'include', 'length', 'let', 'lshift', 'lua',
2641
+ 'macrodebug', 'match', 'not', 'not=', 'or', 'partial', 'pick-args',
2642
+ 'pick-values', 'quote', 'require-macros', 'rshift', 'set',
2643
+ 'set-forcibly!', 'tset', 'values', 'when', 'while', 'with-open', '~='
2644
+ )
2645
+
2646
+ declarations = (
2647
+ 'fn', 'global', 'lambda', 'local', 'macro', 'macros', 'var', 'λ'
2649
2648
  )
2650
2649
 
2651
- # Might be nicer to use the list from _lua_builtins.py but it's unclear how?
2652
2650
  builtins = (
2653
2651
  '_G', '_VERSION', 'arg', 'assert', 'bit32', 'collectgarbage',
2654
2652
  'coroutine', 'debug', 'dofile', 'error', 'getfenv',
@@ -2672,7 +2670,9 @@ class FennelLexer(RegexLexer):
2672
2670
  (r'-?\d+\.\d+', Number.Float),
2673
2671
  (r'-?\d+', Number.Integer),
2674
2672
 
2675
- (r'"(\\\\|\\"|\\|[^"\\])*"', String),
2673
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
2674
+
2675
+ (r'(true|false|nil)', Name.Constant),
2676
2676
 
2677
2677
  # these are technically strings, but it's worth visually
2678
2678
  # distinguishing them because their intent is different
@@ -2681,6 +2681,8 @@ class FennelLexer(RegexLexer):
2681
2681
 
2682
2682
  # special forms are keywords
2683
2683
  (words(special_forms, suffix=' '), Keyword),
2684
+ # these are ... even more special!
2685
+ (words(declarations, suffix=' '), Keyword.Declaration),
2684
2686
  # lua standard library are builtins
2685
2687
  (words(builtins, suffix=' '), Name.Builtin),
2686
2688
  # special-case the vararg symbol
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.make
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for Makefiles and similar.
7
6
 
8
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -92,8 +91,8 @@ class BaseMakefileLexer(RegexLexer):
92
91
  (r'([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)',
93
92
  bygroups(Name.Variable, Text, Operator, Text, using(BashLexer))),
94
93
  # strings
95
- (r'(?s)"(\\\\|\\.|[^"\\])*"', String.Double),
96
- (r"(?s)'(\\\\|\\.|[^'\\])*'", String.Single),
94
+ (r'"(\\\\|\\[^\\]|[^"\\])*"', String.Double),
95
+ (r"'(\\\\|\\[^\\]|[^'\\])*'", String.Single),
97
96
  # targets
98
97
  (r'([^\n:]+)(:+)([ \t]*)', bygroups(Name.Function, Operator, Text),
99
98
  'block-header'),
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.markup
4
3
  ~~~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Lexers for non-HTML markup languages.
7
6
 
8
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10
 
@@ -122,7 +121,7 @@ class RstLexer(RegexLexer):
122
121
  .. versionadded:: 0.8
123
122
  """
124
123
  name = 'reStructuredText'
125
- aliases = ['rst', 'rest', 'restructuredtext']
124
+ aliases = ['restructuredtext', 'rst', 'rest']
126
125
  filenames = ['*.rst', '*.rest']
127
126
  mimetypes = ["text/x-rst", "text/prs.fallenstein.rst"]
128
127
  flags = re.MULTILINE
@@ -502,8 +501,8 @@ class MarkdownLexer(RegexLexer):
502
501
 
503
502
  .. versionadded:: 2.2
504
503
  """
505
- name = 'markdown'
506
- aliases = ['md']
504
+ name = 'Markdown'
505
+ aliases = ['markdown', 'md']
507
506
  filenames = ['*.md', '*.markdown']
508
507
  mimetypes = ["text/x-markdown"]
509
508
  flags = re.MULTILINE
@@ -558,11 +557,9 @@ class MarkdownLexer(RegexLexer):
558
557
  # quote
559
558
  (r'^(\s*>\s)(.+\n)', bygroups(Keyword, Generic.Emph)),
560
559
  # code block fenced by 3 backticks
561
- (r'^(\s*```\n(.+\n)+\s*```$)', String.Backtick),
560
+ (r'^(\s*```\n[\w\W]*?^\s*```$\n)', String.Backtick),
562
561
  # code block with language
563
- (r'^(\s*```)(\w+)(\n)([\w\W]*?)(^\s*```$)', _handle_codeblock),
564
- # code block indented with 4 spaces or 1 tab
565
- (r'(\n\n)((\ {4}|\t)(.+\n)+)', bygroups(Text, String.Backtick)),
562
+ (r'^(\s*```)(\w+)(\n)([\w\W]*?)(^\s*```$\n)', _handle_codeblock),
566
563
 
567
564
  include('inline'),
568
565
  ],
@@ -570,19 +567,19 @@ class MarkdownLexer(RegexLexer):
570
567
  # escape
571
568
  (r'\\.', Text),
572
569
  # inline code
573
- (r'([^`])(`[^`\n]+`)', bygroups(Text, String.Backtick)),
570
+ (r'([^`]?)(`[^`\n]+`)', bygroups(Text, String.Backtick)),
574
571
  # warning: the following rules eat outer tags.
575
572
  # eg. **foo _bar_ baz** => foo and baz are not recognized as bold
576
573
  # bold fenced by '**'
577
- (r'(\*\*[^* \n][^*\n]*\*\*)', bygroups(Generic.Strong)),
578
- # # bold fenced by '__'
579
- (r'(\_\_[^_ \n][^_\n]*\_\_)', bygroups(Generic.Strong)),
574
+ (r'([^\*]?)(\*\*[^* \n][^*\n]*\*\*)', bygroups(Text, Generic.Strong)),
575
+ # bold fenced by '__'
576
+ (r'([^_]?)(__[^_ \n][^_\n]*__)', bygroups(Text, Generic.Strong)),
580
577
  # italics fenced by '*'
581
- (r'(\*[^* \n][^*\n]*\*)', bygroups(Generic.Emph)),
578
+ (r'([^\*]?)(\*[^* \n][^*\n]*\*)', bygroups(Text, Generic.Emph)),
582
579
  # italics fenced by '_'
583
- (r'(\_[^_ \n][^_\n]*\_)', bygroups(Generic.Emph)),
580
+ (r'([^_]?)(_[^_ \n][^_\n]*_)', bygroups(Text, Generic.Emph)),
584
581
  # strikethrough
585
- (r'([^~]*)(~~[^~]+~~)', bygroups(Text, Generic.Deleted)),
582
+ (r'([^~]?)(~~[^~ \n][^~\n]*~~)', bygroups(Text, Generic.Deleted)),
586
583
  # mentions and topics (twitter and github stuff)
587
584
  (r'[@#][\w/:]+', Name.Entity),
588
585
  # (image?) links eg: ![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)
@@ -1,11 +1,10 @@
1
- # -*- coding: utf-8 -*-
2
1
  """
3
2
  pygments.lexers.math
4
3
  ~~~~~~~~~~~~~~~~~~~~
5
4
 
6
5
  Just export lexers that were contained in this module.
7
6
 
8
- :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
9
8
  :license: BSD, see LICENSE for details.
10
9
  """
11
10