pygments.rb 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +13 -0
  3. data/.github/workflows/ci.yml +28 -0
  4. data/.github/workflows/release.yml +24 -0
  5. data/.gitignore +5 -5
  6. data/CHANGELOG.adoc +128 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +160 -0
  10. data/Rakefile +13 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +10 -11
  15. data/lib/pygments/lexer.rb +5 -5
  16. data/lib/pygments/mentos.py +23 -110
  17. data/lib/pygments/popen.rb +148 -229
  18. data/lib/pygments/version.rb +2 -2
  19. data/pygments.rb.gemspec +12 -11
  20. data/test/test_pygments.rb +46 -104
  21. data/vendor/pygments-main/{AUTHORS → Pygments-2.7.3.dist-info/AUTHORS} +23 -3
  22. data/vendor/pygments-main/Pygments-2.7.3.dist-info/INSTALLER +1 -0
  23. data/vendor/pygments-main/{LICENSE → Pygments-2.7.3.dist-info/LICENSE} +1 -1
  24. data/vendor/pygments-main/Pygments-2.7.3.dist-info/METADATA +49 -0
  25. data/vendor/pygments-main/Pygments-2.7.3.dist-info/RECORD +482 -0
  26. data/vendor/pygments-main/Pygments-2.7.3.dist-info/REQUESTED +0 -0
  27. data/vendor/pygments-main/Pygments-2.7.3.dist-info/WHEEL +5 -0
  28. data/vendor/pygments-main/Pygments-2.7.3.dist-info/entry_points.txt +3 -0
  29. data/vendor/pygments-main/Pygments-2.7.3.dist-info/top_level.txt +1 -0
  30. data/vendor/pygments-main/bin/pygmentize +8 -0
  31. data/vendor/pygments-main/pygments/__init__.py +6 -11
  32. data/vendor/pygments-main/pygments/__main__.py +18 -0
  33. data/vendor/pygments-main/pygments/cmdline.py +94 -41
  34. data/vendor/pygments-main/pygments/console.py +6 -9
  35. data/vendor/pygments-main/pygments/filter.py +4 -6
  36. data/vendor/pygments-main/pygments/filters/__init__.py +609 -21
  37. data/vendor/pygments-main/pygments/formatter.py +4 -4
  38. data/vendor/pygments-main/pygments/formatters/__init__.py +42 -6
  39. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -3
  40. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  41. data/vendor/pygments-main/pygments/formatters/html.py +223 -135
  42. data/vendor/pygments-main/pygments/formatters/img.py +102 -38
  43. data/vendor/pygments-main/pygments/formatters/irc.py +39 -39
  44. data/vendor/pygments-main/pygments/formatters/latex.py +56 -26
  45. data/vendor/pygments-main/pygments/formatters/other.py +12 -8
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +29 -29
  47. data/vendor/pygments-main/pygments/formatters/svg.py +38 -4
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +25 -31
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +22 -12
  50. data/vendor/pygments-main/pygments/lexer.py +41 -39
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +62 -15
  52. data/vendor/pygments-main/pygments/lexers/_asy_builtins.py +5 -5
  53. data/vendor/pygments-main/pygments/lexers/_cl_builtins.py +15 -15
  54. data/vendor/pygments-main/pygments/lexers/_cocoa_builtins.py +11 -12
  55. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +1717 -1338
  56. data/vendor/pygments-main/pygments/lexers/_lasso_builtins.py +8 -1
  57. data/vendor/pygments-main/pygments/lexers/_lua_builtins.py +2 -4
  58. data/vendor/pygments-main/pygments/lexers/_mapping.py +79 -33
  59. data/vendor/pygments-main/pygments/lexers/_mql_builtins.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/_mysql_builtins.py +1282 -0
  61. data/vendor/pygments-main/pygments/lexers/_openedge_builtins.py +1 -1
  62. data/vendor/pygments-main/pygments/lexers/_php_builtins.py +17 -20
  63. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +73 -16
  64. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +2 -2
  65. data/vendor/pygments-main/pygments/lexers/_sourcemod_builtins.py +1 -3
  66. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +151 -125
  67. data/vendor/pygments-main/pygments/lexers/_stata_builtins.py +6 -4
  68. data/vendor/pygments-main/pygments/lexers/_tsql_builtins.py +1 -1
  69. data/vendor/pygments-main/pygments/lexers/_usd_builtins.py +113 -0
  70. data/vendor/pygments-main/pygments/lexers/_vbscript_builtins.py +280 -0
  71. data/vendor/pygments-main/pygments/lexers/_vim_builtins.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/actionscript.py +8 -3
  73. data/vendor/pygments-main/pygments/lexers/agile.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/algebra.py +20 -1
  75. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/ampl.py +3 -3
  77. data/vendor/pygments-main/pygments/lexers/apl.py +15 -15
  78. data/vendor/pygments-main/pygments/lexers/archetype.py +3 -3
  79. data/vendor/pygments-main/pygments/lexers/arrow.py +117 -0
  80. data/vendor/pygments-main/pygments/lexers/asm.py +445 -70
  81. data/vendor/pygments-main/pygments/lexers/automation.py +3 -3
  82. data/vendor/pygments-main/pygments/lexers/bare.py +104 -0
  83. data/vendor/pygments-main/pygments/lexers/basic.py +166 -4
  84. data/vendor/pygments-main/pygments/lexers/bibtex.py +13 -9
  85. data/vendor/pygments-main/pygments/lexers/boa.py +102 -0
  86. data/vendor/pygments-main/pygments/lexers/business.py +69 -36
  87. data/vendor/pygments-main/pygments/lexers/c_cpp.py +137 -45
  88. data/vendor/pygments-main/pygments/lexers/c_like.py +68 -43
  89. data/vendor/pygments-main/pygments/lexers/capnproto.py +20 -21
  90. data/vendor/pygments-main/pygments/lexers/chapel.py +25 -14
  91. data/vendor/pygments-main/pygments/lexers/clean.py +135 -244
  92. data/vendor/pygments-main/pygments/lexers/compiled.py +1 -1
  93. data/vendor/pygments-main/pygments/lexers/configs.py +188 -37
  94. data/vendor/pygments-main/pygments/lexers/console.py +1 -1
  95. data/vendor/pygments-main/pygments/lexers/crystal.py +31 -23
  96. data/vendor/pygments-main/pygments/lexers/csound.py +288 -187
  97. data/vendor/pygments-main/pygments/lexers/css.py +18 -16
  98. data/vendor/pygments-main/pygments/lexers/d.py +10 -5
  99. data/vendor/pygments-main/pygments/lexers/dalvik.py +1 -1
  100. data/vendor/pygments-main/pygments/lexers/data.py +240 -97
  101. data/vendor/pygments-main/pygments/lexers/devicetree.py +109 -0
  102. data/vendor/pygments-main/pygments/lexers/diff.py +4 -4
  103. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -24
  104. data/vendor/pygments-main/pygments/lexers/dsls.py +147 -65
  105. data/vendor/pygments-main/pygments/lexers/dylan.py +16 -18
  106. data/vendor/pygments-main/pygments/lexers/ecl.py +16 -2
  107. data/vendor/pygments-main/pygments/lexers/eiffel.py +1 -1
  108. data/vendor/pygments-main/pygments/lexers/elm.py +5 -5
  109. data/vendor/pygments-main/pygments/lexers/email.py +151 -0
  110. data/vendor/pygments-main/pygments/lexers/erlang.py +29 -32
  111. data/vendor/pygments-main/pygments/lexers/esoteric.py +54 -25
  112. data/vendor/pygments-main/pygments/lexers/ezhil.py +24 -15
  113. data/vendor/pygments-main/pygments/lexers/factor.py +1 -1
  114. data/vendor/pygments-main/pygments/lexers/fantom.py +1 -1
  115. data/vendor/pygments-main/pygments/lexers/felix.py +1 -1
  116. data/vendor/pygments-main/pygments/lexers/floscript.py +83 -0
  117. data/vendor/pygments-main/pygments/lexers/forth.py +41 -40
  118. data/vendor/pygments-main/pygments/lexers/fortran.py +5 -4
  119. data/vendor/pygments-main/pygments/lexers/foxpro.py +2 -2
  120. data/vendor/pygments-main/pygments/lexers/freefem.py +898 -0
  121. data/vendor/pygments-main/pygments/lexers/functional.py +1 -1
  122. data/vendor/pygments-main/pygments/lexers/gdscript.py +346 -0
  123. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  124. data/vendor/pygments-main/pygments/lexers/grammar_notation.py +63 -6
  125. data/vendor/pygments-main/pygments/lexers/graph.py +14 -9
  126. data/vendor/pygments-main/pygments/lexers/graphics.py +272 -25
  127. data/vendor/pygments-main/pygments/lexers/haskell.py +52 -22
  128. data/vendor/pygments-main/pygments/lexers/haxe.py +6 -6
  129. data/vendor/pygments-main/pygments/lexers/hdl.py +176 -86
  130. data/vendor/pygments-main/pygments/lexers/hexdump.py +18 -12
  131. data/vendor/pygments-main/pygments/lexers/html.py +31 -19
  132. data/vendor/pygments-main/pygments/lexers/idl.py +20 -9
  133. data/vendor/pygments-main/pygments/lexers/igor.py +244 -112
  134. data/vendor/pygments-main/pygments/lexers/inferno.py +2 -2
  135. data/vendor/pygments-main/pygments/lexers/installers.py +1 -1
  136. data/vendor/pygments-main/pygments/lexers/int_fiction.py +40 -15
  137. data/vendor/pygments-main/pygments/lexers/iolang.py +2 -2
  138. data/vendor/pygments-main/pygments/lexers/j.py +3 -3
  139. data/vendor/pygments-main/pygments/lexers/javascript.py +100 -66
  140. data/vendor/pygments-main/pygments/lexers/julia.py +46 -48
  141. data/vendor/pygments-main/pygments/lexers/jvm.py +265 -165
  142. data/vendor/pygments-main/pygments/lexers/lisp.py +882 -804
  143. data/vendor/pygments-main/pygments/lexers/make.py +10 -6
  144. data/vendor/pygments-main/pygments/lexers/markup.py +213 -43
  145. data/vendor/pygments-main/pygments/lexers/math.py +1 -1
  146. data/vendor/pygments-main/pygments/lexers/matlab.py +98 -41
  147. data/vendor/pygments-main/pygments/lexers/mime.py +226 -0
  148. data/vendor/pygments-main/pygments/lexers/ml.py +198 -9
  149. data/vendor/pygments-main/pygments/lexers/modeling.py +26 -18
  150. data/vendor/pygments-main/pygments/lexers/modula2.py +25 -6
  151. data/vendor/pygments-main/pygments/lexers/monte.py +4 -3
  152. data/vendor/pygments-main/pygments/lexers/mosel.py +448 -0
  153. data/vendor/pygments-main/pygments/lexers/ncl.py +85 -244
  154. data/vendor/pygments-main/pygments/lexers/nimrod.py +4 -4
  155. data/vendor/pygments-main/pygments/lexers/nit.py +1 -1
  156. data/vendor/pygments-main/pygments/lexers/nix.py +1 -1
  157. data/vendor/pygments-main/pygments/lexers/oberon.py +17 -1
  158. data/vendor/pygments-main/pygments/lexers/objective.py +16 -16
  159. data/vendor/pygments-main/pygments/lexers/ooc.py +1 -1
  160. data/vendor/pygments-main/pygments/lexers/other.py +1 -1
  161. data/vendor/pygments-main/pygments/lexers/parasail.py +1 -1
  162. data/vendor/pygments-main/pygments/lexers/parsers.py +23 -58
  163. data/vendor/pygments-main/pygments/lexers/pascal.py +23 -23
  164. data/vendor/pygments-main/pygments/lexers/pawn.py +30 -24
  165. data/vendor/pygments-main/pygments/lexers/perl.py +276 -160
  166. data/vendor/pygments-main/pygments/lexers/php.py +64 -10
  167. data/vendor/pygments-main/pygments/lexers/pointless.py +71 -0
  168. data/vendor/pygments-main/pygments/lexers/pony.py +94 -0
  169. data/vendor/pygments-main/pygments/lexers/praat.py +38 -30
  170. data/vendor/pygments-main/pygments/lexers/prolog.py +36 -36
  171. data/vendor/pygments-main/pygments/lexers/promql.py +183 -0
  172. data/vendor/pygments-main/pygments/lexers/python.py +439 -226
  173. data/vendor/pygments-main/pygments/lexers/qvt.py +6 -6
  174. data/vendor/pygments-main/pygments/lexers/r.py +13 -275
  175. data/vendor/pygments-main/pygments/lexers/rdf.py +232 -39
  176. data/vendor/pygments-main/pygments/lexers/rebol.py +8 -8
  177. data/vendor/pygments-main/pygments/lexers/resource.py +2 -2
  178. data/vendor/pygments-main/pygments/lexers/ride.py +139 -0
  179. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  180. data/vendor/pygments-main/pygments/lexers/roboconf.py +1 -1
  181. data/vendor/pygments-main/pygments/lexers/robotframework.py +23 -31
  182. data/vendor/pygments-main/pygments/lexers/ruby.py +22 -24
  183. data/vendor/pygments-main/pygments/lexers/rust.py +86 -71
  184. data/vendor/pygments-main/pygments/lexers/sas.py +7 -7
  185. data/vendor/pygments-main/pygments/lexers/scdoc.py +83 -0
  186. data/vendor/pygments-main/pygments/lexers/scripting.py +75 -13
  187. data/vendor/pygments-main/pygments/lexers/sgf.py +61 -0
  188. data/vendor/pygments-main/pygments/lexers/shell.py +175 -51
  189. data/vendor/pygments-main/pygments/lexers/sieve.py +69 -0
  190. data/vendor/pygments-main/pygments/lexers/slash.py +185 -0
  191. data/vendor/pygments-main/pygments/lexers/smalltalk.py +2 -2
  192. data/vendor/pygments-main/pygments/lexers/smv.py +30 -26
  193. data/vendor/pygments-main/pygments/lexers/snobol.py +1 -1
  194. data/vendor/pygments-main/pygments/lexers/solidity.py +92 -0
  195. data/vendor/pygments-main/pygments/lexers/special.py +5 -3
  196. data/vendor/pygments-main/pygments/lexers/sql.py +333 -177
  197. data/vendor/pygments-main/pygments/lexers/stata.py +107 -42
  198. data/vendor/pygments-main/pygments/lexers/supercollider.py +6 -1
  199. data/vendor/pygments-main/pygments/lexers/tcl.py +1 -1
  200. data/vendor/pygments-main/pygments/lexers/templates.py +144 -132
  201. data/vendor/pygments-main/pygments/lexers/teraterm.py +335 -0
  202. data/vendor/pygments-main/pygments/lexers/testing.py +6 -6
  203. data/vendor/pygments-main/pygments/lexers/text.py +2 -1
  204. data/vendor/pygments-main/pygments/lexers/textedit.py +4 -4
  205. data/vendor/pygments-main/pygments/lexers/textfmts.py +146 -13
  206. data/vendor/pygments-main/pygments/lexers/theorem.py +69 -53
  207. data/vendor/pygments-main/pygments/lexers/tnt.py +263 -0
  208. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  209. data/vendor/pygments-main/pygments/lexers/typoscript.py +8 -14
  210. data/vendor/pygments-main/pygments/lexers/unicon.py +412 -0
  211. data/vendor/pygments-main/pygments/lexers/urbi.py +14 -1
  212. data/vendor/pygments-main/pygments/lexers/usd.py +90 -0
  213. data/vendor/pygments-main/pygments/lexers/varnish.py +5 -5
  214. data/vendor/pygments-main/pygments/lexers/verification.py +15 -12
  215. data/vendor/pygments-main/pygments/lexers/web.py +1 -1
  216. data/vendor/pygments-main/pygments/lexers/webidl.py +299 -0
  217. data/vendor/pygments-main/pygments/lexers/webmisc.py +50 -38
  218. data/vendor/pygments-main/pygments/lexers/whiley.py +11 -12
  219. data/vendor/pygments-main/pygments/lexers/x10.py +1 -1
  220. data/vendor/pygments-main/pygments/lexers/xorg.py +37 -0
  221. data/vendor/pygments-main/pygments/lexers/yang.py +104 -0
  222. data/vendor/pygments-main/pygments/lexers/zig.py +124 -0
  223. data/vendor/pygments-main/pygments/modeline.py +6 -5
  224. data/vendor/pygments-main/pygments/plugin.py +14 -18
  225. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  226. data/vendor/pygments-main/pygments/scanner.py +2 -2
  227. data/vendor/pygments-main/pygments/sphinxext.py +2 -4
  228. data/vendor/pygments-main/pygments/style.py +61 -24
  229. data/vendor/pygments-main/pygments/styles/__init__.py +13 -5
  230. data/vendor/pygments-main/pygments/styles/abap.py +29 -0
  231. data/vendor/pygments-main/pygments/styles/algol.py +1 -1
  232. data/vendor/pygments-main/pygments/styles/algol_nu.py +1 -1
  233. data/vendor/pygments-main/pygments/styles/arduino.py +2 -2
  234. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  235. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  236. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  237. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  238. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  239. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  240. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  241. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  242. data/vendor/pygments-main/pygments/styles/igor.py +1 -1
  243. data/vendor/pygments-main/pygments/styles/inkpot.py +67 -0
  244. data/vendor/pygments-main/pygments/styles/lovelace.py +1 -1
  245. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  246. data/vendor/pygments-main/pygments/styles/monokai.py +4 -3
  247. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  248. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  249. data/vendor/pygments-main/pygments/styles/paraiso_dark.py +1 -1
  250. data/vendor/pygments-main/pygments/styles/paraiso_light.py +1 -1
  251. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  252. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  253. data/vendor/pygments-main/pygments/styles/rainbow_dash.py +89 -0
  254. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  255. data/vendor/pygments-main/pygments/styles/sas.py +3 -0
  256. data/vendor/pygments-main/pygments/styles/solarized.py +134 -0
  257. data/vendor/pygments-main/pygments/styles/stata_dark.py +41 -0
  258. data/vendor/pygments-main/pygments/styles/stata_light.py +39 -0
  259. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  260. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  261. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  262. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  263. data/vendor/pygments-main/pygments/styles/xcode.py +1 -1
  264. data/vendor/pygments-main/pygments/token.py +1 -1
  265. data/vendor/pygments-main/pygments/unistring.py +47 -108
  266. data/vendor/pygments-main/pygments/util.py +19 -95
  267. metadata +71 -137
  268. data/CHANGELOG.md +0 -98
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.c +0 -2581
  272. data/test/test_data.py +0 -514
  273. data/test/test_data_generated +0 -2582
  274. data/vendor/custom_lexers/github.py +0 -565
  275. data/vendor/pygments-main/CHANGES +0 -1163
  276. data/vendor/pygments-main/MANIFEST.in +0 -6
  277. data/vendor/pygments-main/Makefile +0 -65
  278. data/vendor/pygments-main/README.rst +0 -39
  279. data/vendor/pygments-main/REVISION +0 -1
  280. data/vendor/pygments-main/TODO +0 -12
  281. data/vendor/pygments-main/doc/Makefile +0 -153
  282. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  284. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  285. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  286. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  287. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  293. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  294. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  295. data/vendor/pygments-main/doc/conf.py +0 -241
  296. data/vendor/pygments-main/doc/docs/api.rst +0 -331
  297. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  298. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  299. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
  300. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  301. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  302. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  303. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  304. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  305. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  306. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  307. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
  308. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  309. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  310. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  311. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  312. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  313. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  314. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  315. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  316. data/vendor/pygments-main/doc/download.rst +0 -41
  317. data/vendor/pygments-main/doc/faq.rst +0 -139
  318. data/vendor/pygments-main/doc/index.rst +0 -54
  319. data/vendor/pygments-main/doc/languages.rst +0 -154
  320. data/vendor/pygments-main/doc/make.bat +0 -190
  321. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  322. data/vendor/pygments-main/external/autopygmentize +0 -84
  323. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  324. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  325. data/vendor/pygments-main/external/moin-parser.py +0 -112
  326. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  327. data/vendor/pygments-main/external/rst-directive.py +0 -82
  328. data/vendor/pygments-main/pygmentize +0 -8
  329. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  330. data/vendor/pygments-main/pygments/styles/stata.py +0 -37
  331. data/vendor/pygments-main/requirements.txt +0 -5
  332. data/vendor/pygments-main/scripts/check_sources.py +0 -211
  333. data/vendor/pygments-main/scripts/debug_lexer.py +0 -246
  334. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +0 -33
  335. data/vendor/pygments-main/scripts/epydoc.css +0 -280
  336. data/vendor/pygments-main/scripts/find_error.py +0 -1
  337. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  338. data/vendor/pygments-main/scripts/pylintrc +0 -301
  339. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  340. data/vendor/pygments-main/setup.cfg +0 -10
  341. data/vendor/pygments-main/setup.py +0 -77
  342. data/vendor/pygments-main/tox.ini +0 -7
  343. data/vendor/simplejson/.gitignore +0 -10
  344. data/vendor/simplejson/.travis.yml +0 -5
  345. data/vendor/simplejson/CHANGES.txt +0 -291
  346. data/vendor/simplejson/LICENSE.txt +0 -19
  347. data/vendor/simplejson/MANIFEST.in +0 -5
  348. data/vendor/simplejson/README.rst +0 -19
  349. data/vendor/simplejson/conf.py +0 -179
  350. data/vendor/simplejson/index.rst +0 -628
  351. data/vendor/simplejson/scripts/make_docs.py +0 -18
  352. data/vendor/simplejson/setup.py +0 -104
  353. data/vendor/simplejson/simplejson/__init__.py +0 -510
  354. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  355. data/vendor/simplejson/simplejson/decoder.py +0 -425
  356. data/vendor/simplejson/simplejson/encoder.py +0 -567
  357. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  358. data/vendor/simplejson/simplejson/scanner.py +0 -77
  359. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  360. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  361. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  362. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  363. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  364. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  365. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  366. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  367. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  368. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  369. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  370. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  371. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  372. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  373. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  374. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  375. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  376. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  377. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  378. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  379. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  380. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  381. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  382. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  383. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,5 +1,5 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
2
+
3
3
  module Pygments
4
- VERSION = '1.1.2'
4
+ VERSION = '2.0.0'
5
5
  end
@@ -1,26 +1,27 @@
1
- require File.expand_path('../lib/pygments/version', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('lib/pygments/version', __dir__)
2
4
 
3
5
  Gem::Specification.new do |s|
4
6
  s.name = 'pygments.rb'
5
7
  s.version = Pygments::VERSION
6
8
 
7
9
  s.summary = 'pygments wrapper for ruby'
8
- s.description = 'pygments.rb exposes the pygments syntax highlighter to Ruby'
10
+ s.description = 'pygments.rb is a Ruby wrapper for Pygments syntax highlighter'
9
11
 
10
- s.homepage = 'https://github.com/tmm1/pygments.rb'
11
- s.has_rdoc = false
12
+ s.homepage = 'https://github.com/pygments/pygments.rb'
13
+ s.required_ruby_version = '>= 2.3.0'
12
14
 
13
- s.authors = ['Aman Gupta', 'Ted Nyman']
14
- s.email = ['aman@tmm1.net']
15
+ s.authors = ['Aman Gupta', 'Ted Nyman', 'Marat Radchenko']
16
+ s.email = ['marat@slonopotamus.org']
15
17
  s.license = 'MIT'
16
18
 
17
- s.add_dependency 'multi_json', '>= 1.0.0'
18
- s.add_development_dependency 'rake-compiler', '~> 0.7.6'
19
- s.add_development_dependency 'test-unit', '~> 3.0.0'
19
+ s.add_development_dependency 'rake', '~> 13.0.0'
20
+ s.add_development_dependency 'rubocop', '~> 0.81.0'
21
+ s.add_development_dependency 'test-unit', '~> 3.3.0'
20
22
 
21
23
  # s.extensions = ['ext/extconf.rb']
22
24
  s.require_paths = ['lib']
23
25
 
24
- exclude = `find . -type l -printf '%P\\0'`.split("\0").map {|f| "':!#{f}'" } * ' '
25
- s.files = `git ls-files -- . #{exclude}`.split("\n")
26
+ s.files = `git ls-files`.split("\n").reject { |f| File.symlink?(f) } + ['lexers']
26
27
  end
@@ -1,10 +1,8 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  require 'test/unit'
5
4
  require File.join(File.dirname(__FILE__), '..', '/lib/pygments.rb')
6
- ENV['mentos-test'] = "yes"
7
-
5
+ ENV['mentos-test'] = 'yes'
8
6
 
9
7
  P = Pygments
10
8
  PE = Pygments.engine
@@ -12,7 +10,7 @@ PE = Pygments.engine
12
10
  class PygmentsHighlightTest < Test::Unit::TestCase
13
11
  RUBY_CODE = "#!/usr/bin/ruby\nputs 'foo'"
14
12
  RUBY_CODE_TRAILING_NEWLINE = "#!/usr/bin/ruby\nputs 'foo'\n"
15
- REDIS_CODE = File.read(File.join(File.dirname(__FILE__), '..', '/test/test_data.c'))
13
+ TEST_CODE = File.read(File.join(File.dirname(__FILE__), '..', 'lib', 'pygments', 'mentos.py'))
16
14
 
17
15
  def test_highlight_defaults_to_html
18
16
  code = P.highlight(RUBY_CODE)
@@ -27,74 +25,69 @@ class PygmentsHighlightTest < Test::Unit::TestCase
27
25
  end
28
26
 
29
27
  def test_full_table_highlight
30
- code = P.highlight(RUBY_CODE, :options => {:linenos => true})
28
+ code = P.highlight(RUBY_CODE, options: { linenos: true })
31
29
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
32
30
  assert_equal "<table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre>1\n2</pre></div></td><td class=\"code\"><div class=\"highlight\"><pre><span></span><span class=\"ch\">#!/usr/bin/ruby</span>\n<span class=\"nb\">puts</span> <span class=\"s1\">&#39;foo&#39;</span>\n</pre></div>\n</td></tr></table>", code
33
31
  end
34
32
 
35
33
  def test_highlight_works_with_larger_files
36
- code = P.highlight(REDIS_CODE)
37
- assert_match 'used_memory_peak_human', code
38
- assert_equal 458511, code.bytesize.to_i
34
+ code = P.highlight(TEST_CODE)
35
+ assert_match 'Main loop, waiting for inputs on stdin', code
39
36
  end
40
37
 
41
- def test_returns_nil_on_timeout
42
- large_code = REDIS_CODE * 300
43
- code = P.highlight(large_code) # a 30 mb highlight request will timeout
44
- assert_equal nil, code
38
+ def test_raises_exception_on_timeout
39
+ assert_raise MentosError.new('Timeout on a mentos highlight call') do
40
+ # Assume highlighting a large file will take more than 1 millisecond
41
+ P.highlight(TEST_CODE * 10, timeout: 0.001)
42
+ end
45
43
  end
46
44
 
47
45
  def test_highlight_works_with_null_bytes
48
- code = P.highlight("\0hello", :lexer => 'rb')
49
- assert_match "hello", code
46
+ code = P.highlight("\0hello", lexer: 'rb')
47
+ assert_match 'hello', code
50
48
  end
51
49
 
52
50
  def test_highlight_works_on_utf8
53
- code = P.highlight('# ø', :lexer => 'rb', :options => {:encoding => 'utf-8'})
54
- assert_match "# ø", code
51
+ code = P.highlight('# ø', lexer: 'rb', options: { encoding: 'utf-8' })
52
+ assert_match '# ø', code
55
53
  end
56
54
 
57
55
  def test_highlight_works_on_utf8_automatically
58
- code = P.highlight('# ø', :lexer => 'rb')
59
- assert_match "# ø", code
56
+ code = P.highlight('# ø', lexer: 'rb')
57
+ assert_match '# ø', code
60
58
  end
61
59
 
62
60
  def test_highlight_works_on_utf8_all_chars_automatically
63
- code = P.highlight('def foo: # ø', :lexer => 'py')
61
+ code = P.highlight('def foo: # ø', lexer: 'py')
64
62
 
65
- assert_equal "<div class=\"highlight\"><pre><span></sp", code[0,38]
63
+ assert_equal '<div class="highlight"><pre><span></sp', code[0, 38]
66
64
  end
67
65
 
68
66
  def test_highlight_works_with_multiple_utf8
69
- code = P.highlight('# ø ø ø', :lexer => 'rb', :options => {:encoding => 'utf-8'})
70
- assert_match "# ø ø ø", code
67
+ code = P.highlight('# ø ø ø', lexer: 'rb', options: { encoding: 'utf-8' })
68
+ assert_match '# ø ø ø', code
71
69
  end
72
70
 
73
71
  def test_highlight_works_with_multiple_utf8_and_trailing_newline
74
- code = P.highlight("#!/usr/bin/ruby\nputs 'ø..ø'\n", :lexer => 'rb')
75
- assert_match "ø..ø", code
72
+ code = P.highlight("#!/usr/bin/ruby\nputs 'ø..ø'\n", lexer: 'rb')
73
+ assert_match 'ø..ø', code
76
74
  end
77
75
 
78
76
  def test_highlight_formatter_bbcode
79
- code = P.highlight(RUBY_CODE, :formatter => 'bbcode')
77
+ code = P.highlight(RUBY_CODE, formatter: 'bbcode')
80
78
  assert_match 'color=#408080][i]#!/usr/bin/ruby[/i]', code
81
79
  end
82
80
 
83
81
  def test_highlight_formatter_terminal
84
- code = P.highlight(RUBY_CODE, :formatter => 'terminal')
82
+ code = P.highlight(RUBY_CODE, formatter: 'terminal')
85
83
  assert_match '39;49;00m', code
86
84
  end
87
85
 
88
86
  def test_highlight_options
89
- code = P.highlight(RUBY_CODE, :options => {:full => true, :title => 'test'})
87
+ code = P.highlight(RUBY_CODE, options: { full: true, title: 'test' })
90
88
  assert_match '<title>test</title>', code
91
89
  end
92
90
 
93
- def test_highlight_works_with_single_character_input
94
- code = P.highlight("a")
95
- assert_match "a\n</pre>", code
96
- end
97
-
98
91
  def test_highlight_works_with_trailing_newline
99
92
  code = P.highlight(RUBY_CODE_TRAILING_NEWLINE)
100
93
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
@@ -111,66 +104,18 @@ class PygmentsHighlightTest < Test::Unit::TestCase
111
104
  end
112
105
 
113
106
  def test_highlight_still_works_with_invalid_code
114
- code = P.highlight("importr python; wat?", :lexer => 'py')
115
- assert_match ">importr</span>", code
107
+ code = P.highlight('importr python; wat?', lexer: 'py')
108
+ assert_match '>importr</span>', code
116
109
  end
117
110
 
118
111
  def test_highlight_on_multi_threads
112
+ omit 'We do not actually support multithreading'
113
+
119
114
  10.times.map do
120
115
  Thread.new do
121
116
  test_full_html_highlight
122
117
  end
123
- end.each do |thread|
124
- thread.join
125
- end
126
- end
127
-
128
- end
129
-
130
- # Philosophically, I'm not the biggest fan of testing private
131
- # methods, but given the relative delicacy of validity checking
132
- # over the pipe I think it's necessary and informative.
133
- class PygmentsValidityTest < Test::Unit::TestCase
134
- def test_add_ids_with_padding
135
- res = PE.send(:add_ids, "herp derp baz boo foo", "ABCDEFGH")
136
- assert_equal "ABCDEFGH herp derp baz boo foo ABCDEFGH", res
137
- end
138
-
139
- def test_add_ids_on_empty_string
140
- res = PE.send(:add_ids, "", "ABCDEFGH")
141
- assert_equal "ABCDEFGH ABCDEFGH", res
142
- end
143
-
144
- def test_add_ids_with_unicode_data
145
- res = PE.send(:add_ids, "# ø ø ø", "ABCDEFGH")
146
- assert_equal "ABCDEFGH # ø ø ø ABCDEFGH", res
147
- end
148
-
149
- def test_add_ids_with_starting_slashes
150
- res = PE.send(:add_ids, '\\# ø ø ø..//', "ABCDEFGH")
151
- assert_equal "ABCDEFGH \\# ø ø ø..// ABCDEFGH", res
152
- end
153
-
154
- def test_get_fixed_bits_from_header
155
- bits = PE.send(:get_fixed_bits_from_header, '{"herp": "derp"}')
156
- assert_equal "00000000000000000000000000010000", bits
157
- end
158
-
159
- def test_get_fixed_bits_from_header_works_with_large_headers
160
- bits = PE.send(:get_fixed_bits_from_header, '{"herp": "derp"}' * 10000)
161
- assert_equal "00000000000000100111000100000000", bits
162
- end
163
-
164
- def test_size_check
165
- size = "00000000000000000000000000100110"
166
- res = PE.send(:size_check, size)
167
- assert_equal res, true
168
- end
169
-
170
- def test_size_check_bad
171
- size = "some random thing"
172
- res = PE.send(:size_check, size)
173
- assert_equal res, false
118
+ end.each(&:join)
174
119
  end
175
120
  end
176
121
 
@@ -178,23 +123,23 @@ class PygmentsLexerTest < Test::Unit::TestCase
178
123
  RUBY_CODE = "#!/usr/bin/ruby\nputs 'foo'"
179
124
 
180
125
  def test_lexer_by_mimetype
181
- assert_equal 'rb', P.lexer_name_for(:mimetype => 'text/x-ruby')
182
- assert_equal 'json', P.lexer_name_for(:mimetype => 'application/json')
126
+ assert_equal 'rb', P.lexer_name_for(mimetype: 'text/x-ruby')
127
+ assert_equal 'json', P.lexer_name_for(mimetype: 'application/json')
183
128
  end
184
129
 
185
130
  def test_lexer_by_filename
186
- assert_equal 'rb', P.lexer_name_for(:filename => 'test.rb')
187
- assert_equal 'scala', P.lexer_name_for(:filename => 'test.scala')
131
+ assert_equal 'rb', P.lexer_name_for(filename: 'test.rb')
132
+ assert_equal 'scala', P.lexer_name_for(filename: 'test.scala')
188
133
  end
189
134
 
190
135
  def test_lexer_by_name
191
- assert_equal 'rb', P.lexer_name_for(:lexer => 'ruby')
192
- assert_equal 'python', P.lexer_name_for(:lexer => 'python')
193
- assert_equal 'c', P.lexer_name_for(:lexer => 'c')
136
+ assert_equal 'rb', P.lexer_name_for(lexer: 'ruby')
137
+ assert_equal 'python', P.lexer_name_for(lexer: 'python')
138
+ assert_equal 'c', P.lexer_name_for(lexer: 'c')
194
139
  end
195
140
 
196
141
  def test_lexer_by_filename_and_content
197
- assert_equal 'rb', P.lexer_name_for(RUBY_CODE, :filename => 'test.rb')
142
+ assert_equal 'rb', P.lexer_name_for(RUBY_CODE, filename: 'test.rb')
198
143
  end
199
144
 
200
145
  def test_lexer_by_content
@@ -203,7 +148,7 @@ class PygmentsLexerTest < Test::Unit::TestCase
203
148
 
204
149
  def test_lexer_by_nothing
205
150
  assert_raise MentosError do
206
- P.lexer_name_for(:invalid => true)
151
+ P.lexer_name_for(invalid: true)
207
152
  end
208
153
  end
209
154
  end
@@ -240,14 +185,13 @@ class PygmentsLexerClassTest < Test::Unit::TestCase
240
185
  assert_equal P::Lexer['Java'], P::Lexer.find_by_extname('.java')
241
186
  end
242
187
 
243
- def test_find_lexer_by_mimetype
188
+ def test_find_lexer_by_mimetype
244
189
  assert_equal P::Lexer['Ruby'], P::Lexer.find_by_mimetype('text/x-ruby')
245
190
  assert_equal P::Lexer['JSON'], P::Lexer.find_by_mimetype('application/json')
246
191
  assert_equal P::Lexer['Python'], P::Lexer.find_by_mimetype('text/x-python')
247
- end
192
+ end
248
193
  end
249
194
 
250
-
251
195
  class PygmentsCssTest < Test::Unit::TestCase
252
196
  include Pygments
253
197
 
@@ -260,11 +204,11 @@ class PygmentsCssTest < Test::Unit::TestCase
260
204
  end
261
205
 
262
206
  def test_css_options
263
- assert_match(/^\.codeerr \{/, P.css(:classprefix => 'code'))
207
+ assert_match(/^\.codeerr \{/, P.css(classprefix: 'code'))
264
208
  end
265
209
 
266
210
  def test_css_prefix_and_options
267
- assert_match(/^\.mycode \.codeerr \{/, P.css('.mycode', :classprefix => 'code'))
211
+ assert_match(/^\.mycode \.codeerr \{/, P.css('.mycode', classprefix: 'code'))
268
212
  end
269
213
 
270
214
  def test_css_default
@@ -272,7 +216,7 @@ class PygmentsCssTest < Test::Unit::TestCase
272
216
  end
273
217
 
274
218
  def test_css_colorful
275
- assert_match '.c { color: #888888 }', P.css(:style => 'colorful')
219
+ assert_match '.c { color: #888888 }', P.css(style: 'colorful')
276
220
  end
277
221
  end
278
222
 
@@ -287,15 +231,13 @@ class PygmentsConfigTest < Test::Unit::TestCase
287
231
 
288
232
  def test_lexers
289
233
  list = P.lexers
290
- assert list.has_key?('Ruby')
234
+ assert list.key?('Ruby')
291
235
  assert list['Ruby'][:aliases].include?('duby')
292
236
  end
293
237
 
294
238
  def test_formatters
295
239
  list = P.formatters
296
- assert list.has_key?('Html')
240
+ assert list.key?('Html')
297
241
  assert list['Html'][:aliases].include?('html')
298
242
  end
299
243
  end
300
-
301
-
@@ -7,7 +7,8 @@ Other contributors, listed alphabetically, are:
7
7
 
8
8
  * Sam Aaron -- Ioke lexer
9
9
  * Ali Afshar -- image formatter
10
- * Thomas Aglassinger -- Easytrieve, JCL, Rexx and Transact-SQL lexers
10
+ * Thomas Aglassinger -- Easytrieve, JCL, Rexx, Transact-SQL and VBScript
11
+ lexers
11
12
  * Muthiah Annamalai -- Ezhil lexer
12
13
  * Kumar Appaiah -- Debian control lexer
13
14
  * Andreas Amann -- AppleScript lexer
@@ -31,8 +32,10 @@ Other contributors, listed alphabetically, are:
31
32
  * Sébastien Bigaret -- QVT Operational lexer
32
33
  * Jarrett Billingsley -- MiniD lexer
33
34
  * Adam Blinkinsop -- Haskell, Redcode lexers
35
+ * Stéphane Blondon -- SGF and Sieve lexers
34
36
  * Frits van Bommel -- assembler lexers
35
37
  * Pierre Bourdon -- bugfixes
38
+ * Martijn Braam -- Kernel log lexer, BARE lexer
36
39
  * Matthias Bussonnier -- ANSI style handling for terminal-256 formatter
37
40
  * chebee7i -- Python traceback lexer improvements
38
41
  * Hiram Chirino -- Scaml and Jade lexers
@@ -53,26 +56,30 @@ Other contributors, listed alphabetically, are:
53
56
  * Sven Efftinge -- Xtend lexer
54
57
  * Artem Egorkine -- terminal256 formatter
55
58
  * Matthew Fernandez -- CAmkES lexer
59
+ * Paweł Fertyk -- GDScript lexer, HTML formatter improvements
56
60
  * Michael Ficarra -- CPSA lexer
57
61
  * James H. Fisher -- PostScript lexer
58
62
  * William S. Fulton -- SWIG lexer
59
63
  * Carlos Galdino -- Elixir and Elixir Console lexers
60
64
  * Michael Galloy -- IDL lexer
61
65
  * Naveen Garg -- Autohotkey lexer
66
+ * Simon Garnotel -- FreeFem++ lexer
62
67
  * Laurent Gautier -- R/S lexer
63
68
  * Alex Gaynor -- PyPy log lexer
64
69
  * Richard Gerkin -- Igor Pro lexer
65
70
  * Alain Gilbert -- TypeScript lexer
66
71
  * Alex Gilding -- BlitzBasic lexer
72
+ * GitHub, Inc -- DASM16, Augeas, TOML, and Slash lexers
67
73
  * Bertrand Goetzmann -- Groovy lexer
68
74
  * Krzysiek Goj -- Scala lexer
75
+ * Rostyslav Golda -- FloScript lexer
69
76
  * Andrey Golovizin -- BibTeX lexers
70
77
  * Matt Good -- Genshi, Cheetah lexers
71
78
  * Michał Górny -- vim modeline support
72
79
  * Alex Gosse -- TrafficScript lexer
73
80
  * Patrick Gotthardt -- PHP namespaces support
74
81
  * Olivier Guibe -- Asymptote lexer
75
- * Jordi Gutiérrez Hermoso -- Octave lexer
82
+ * Phil Hagelberg -- Fennel lexer
76
83
  * Florian Hahn -- Boogie lexer
77
84
  * Martin Harriman -- SNOBOL lexer
78
85
  * Matthew Harrison -- SVG formatter
@@ -81,7 +88,9 @@ Other contributors, listed alphabetically, are:
81
88
  * Aslak Hellesøy -- Gherkin lexer
82
89
  * Greg Hendershott -- Racket lexer
83
90
  * Justin Hendrick -- ParaSail lexer
91
+ * Jordi Gutiérrez Hermoso -- Octave lexer
84
92
  * David Hess, Fish Software, Inc. -- Objective-J lexer
93
+ * Ken Hilton -- Typographic Number Theory and Arrow lexers
85
94
  * Varun Hiremath -- Debian control lexer
86
95
  * Rob Hoelz -- Perl 6 lexer
87
96
  * Doug Hogan -- Mscgen lexer
@@ -98,6 +107,7 @@ Other contributors, listed alphabetically, are:
98
107
  * Dennis Kaarsemaker -- sources.list lexer
99
108
  * Dmitri Kabak -- Inferno Limbo lexer
100
109
  * Igor Kalnitsky -- vhdl lexer
110
+ * Colin Kennedy - USD lexer
101
111
  * Alexander Kit -- MaskJS lexer
102
112
  * Pekka Klärck -- Robot Framework lexer
103
113
  * Gerwin Klein -- Isabelle lexer
@@ -129,6 +139,7 @@ Other contributors, listed alphabetically, are:
129
139
  * Stephen McKamey -- Duel/JBST lexer
130
140
  * Brian McKenna -- F# lexer
131
141
  * Charles McLaughlin -- Puppet lexer
142
+ * Kurt McKee -- Tera Term macro lexer, PostgreSQL updates, MySQL overhaul
132
143
  * Lukas Meuser -- BBCode formatter, Lua lexer
133
144
  * Cat Miller -- Pig lexer
134
145
  * Paul Miller -- LiveScript lexer
@@ -145,6 +156,7 @@ Other contributors, listed alphabetically, are:
145
156
  * Nam T. Nguyen -- Monokai style
146
157
  * Jesper Noehr -- HTML formatter "anchorlinenos"
147
158
  * Mike Nolta -- Julia lexer
159
+ * Avery Nortonsmith -- Pointless lexer
148
160
  * Jonas Obrist -- BBCode lexer
149
161
  * Edward O'Callaghan -- Cryptol lexer
150
162
  * David Oliva -- Rebol lexer
@@ -155,10 +167,14 @@ Other contributors, listed alphabetically, are:
155
167
  * Dominik Picheta -- Nimrod lexer
156
168
  * Andrew Pinkham -- RTF Formatter Refactoring
157
169
  * Clément Prévost -- UrbiScript lexer
170
+ * Tanner Prynn -- cmdline -x option and loading lexers from files
158
171
  * Oleh Prypin -- Crystal lexer (based on Ruby lexer)
172
+ * Xidorn Quan -- Web IDL lexer
159
173
  * Elias Rabel -- Fortran fixed form lexer
160
174
  * raichoo -- Idris lexer
175
+ * Daniel Ramirez -- GDScript lexer
161
176
  * Kashif Rasul -- CUDA lexer
177
+ * Nathan Reed -- HLSL lexer
162
178
  * Justin Reidy -- MXML lexer
163
179
  * Norman Richards -- JSON lexer
164
180
  * Corey Richardson -- Rust lexer updates
@@ -172,9 +188,12 @@ Other contributors, listed alphabetically, are:
172
188
  * Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers
173
189
  * Matteo Sasso -- Common Lisp lexer
174
190
  * Joe Schafer -- Ada lexer
191
+ * Max Schillinger -- TiddlyWiki5 lexer
175
192
  * Ken Schutte -- Matlab lexers
193
+ * René Schwaiger -- Rainbow Dash style
176
194
  * Sebastian Schweizer -- Whiley lexer
177
195
  * Tassilo Schweyer -- Io, MOOCode lexers
196
+ * Pablo Seminario -- PromQL lexer
178
197
  * Ted Shaw -- AutoIt lexer
179
198
  * Joerg Sieker -- ABAP lexer
180
199
  * Robert Simmons -- Standard ML lexer
@@ -183,7 +202,7 @@ Other contributors, listed alphabetically, are:
183
202
  * Alexander Smishlajev -- Visual FoxPro lexer
184
203
  * Steve Spigarelli -- XQuery lexer
185
204
  * Jerome St-Louis -- eC lexer
186
- * Camil Staps -- Clean and NuSMV lexers
205
+ * Camil Staps -- Clean and NuSMV lexers; Solarized style
187
206
  * James Strachan -- Kotlin lexer
188
207
  * Tom Stuart -- Treetop lexer
189
208
  * Colin Sullivan -- SuperCollider lexer
@@ -214,5 +233,6 @@ Other contributors, listed alphabetically, are:
214
233
  * Alex Zimin -- Nemerle lexer
215
234
  * Rob Zimmerman -- Kal lexer
216
235
  * Vincent Zurczak -- Roboconf lexer
236
+ * Hubert Gruniaux -- C and C++ lexer improvements
217
237
 
218
238
  Many thanks for all contributions!