pygments.rb 1.1.0 → 2.0.0.rc2

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 (382) 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 +119 -0
  7. data/Gemfile +3 -1
  8. data/LICENSE +1 -1
  9. data/README.adoc +161 -0
  10. data/Rakefile +12 -19
  11. data/bench.rb +8 -7
  12. data/cache-lexers.rb +3 -2
  13. data/lexers +0 -0
  14. data/lib/pygments.rb +11 -16
  15. data/lib/pygments/lexer.rb +6 -4
  16. data/lib/pygments/mentos.py +23 -66
  17. data/lib/pygments/popen.rb +155 -207
  18. data/lib/pygments/version.rb +3 -1
  19. data/pygments.rb.gemspec +11 -9
  20. data/test/test_pygments.rb +53 -83
  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 +72 -137
  268. data/CHANGELOG.md +0 -89
  269. data/README.md +0 -121
  270. data/circle.yml +0 -20
  271. data/test/test_data.py +0 -514
  272. data/test/test_data_generated +0 -2582
  273. data/vendor/custom_lexers/github.py +0 -565
  274. data/vendor/pygments-main/CHANGES +0 -1163
  275. data/vendor/pygments-main/MANIFEST.in +0 -6
  276. data/vendor/pygments-main/Makefile +0 -65
  277. data/vendor/pygments-main/README.rst +0 -39
  278. data/vendor/pygments-main/REVISION +0 -1
  279. data/vendor/pygments-main/TODO +0 -12
  280. data/vendor/pygments-main/doc/Makefile +0 -153
  281. data/vendor/pygments-main/doc/_static/favicon.ico +0 -0
  282. data/vendor/pygments-main/doc/_static/logo_new.png +0 -0
  283. data/vendor/pygments-main/doc/_static/logo_only.png +0 -0
  284. data/vendor/pygments-main/doc/_templates/docssidebar.html +0 -3
  285. data/vendor/pygments-main/doc/_templates/indexsidebar.html +0 -25
  286. data/vendor/pygments-main/doc/_themes/pygments14/layout.html +0 -98
  287. data/vendor/pygments-main/doc/_themes/pygments14/static/bodybg.png +0 -0
  288. data/vendor/pygments-main/doc/_themes/pygments14/static/docbg.png +0 -0
  289. data/vendor/pygments-main/doc/_themes/pygments14/static/listitem.png +0 -0
  290. data/vendor/pygments-main/doc/_themes/pygments14/static/logo.png +0 -0
  291. data/vendor/pygments-main/doc/_themes/pygments14/static/pocoo.png +0 -0
  292. data/vendor/pygments-main/doc/_themes/pygments14/static/pygments14.css_t +0 -401
  293. data/vendor/pygments-main/doc/_themes/pygments14/theme.conf +0 -15
  294. data/vendor/pygments-main/doc/conf.py +0 -241
  295. data/vendor/pygments-main/doc/docs/api.rst +0 -331
  296. data/vendor/pygments-main/doc/docs/authors.rst +0 -4
  297. data/vendor/pygments-main/doc/docs/changelog.rst +0 -1
  298. data/vendor/pygments-main/doc/docs/cmdline.rst +0 -149
  299. data/vendor/pygments-main/doc/docs/filterdevelopment.rst +0 -71
  300. data/vendor/pygments-main/doc/docs/filters.rst +0 -41
  301. data/vendor/pygments-main/doc/docs/formatterdevelopment.rst +0 -169
  302. data/vendor/pygments-main/doc/docs/formatters.rst +0 -48
  303. data/vendor/pygments-main/doc/docs/index.rst +0 -66
  304. data/vendor/pygments-main/doc/docs/integrate.rst +0 -40
  305. data/vendor/pygments-main/doc/docs/java.rst +0 -70
  306. data/vendor/pygments-main/doc/docs/lexerdevelopment.rst +0 -689
  307. data/vendor/pygments-main/doc/docs/lexers.rst +0 -69
  308. data/vendor/pygments-main/doc/docs/moinmoin.rst +0 -39
  309. data/vendor/pygments-main/doc/docs/plugins.rst +0 -93
  310. data/vendor/pygments-main/doc/docs/quickstart.rst +0 -205
  311. data/vendor/pygments-main/doc/docs/rstdirective.rst +0 -22
  312. data/vendor/pygments-main/doc/docs/styles.rst +0 -201
  313. data/vendor/pygments-main/doc/docs/tokens.rst +0 -372
  314. data/vendor/pygments-main/doc/docs/unicode.rst +0 -58
  315. data/vendor/pygments-main/doc/download.rst +0 -41
  316. data/vendor/pygments-main/doc/faq.rst +0 -139
  317. data/vendor/pygments-main/doc/index.rst +0 -54
  318. data/vendor/pygments-main/doc/languages.rst +0 -154
  319. data/vendor/pygments-main/doc/make.bat +0 -190
  320. data/vendor/pygments-main/doc/pygmentize.1 +0 -94
  321. data/vendor/pygments-main/external/autopygmentize +0 -84
  322. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +0 -162
  323. data/vendor/pygments-main/external/markdown-processor.py +0 -67
  324. data/vendor/pygments-main/external/moin-parser.py +0 -112
  325. data/vendor/pygments-main/external/pygments.bashcomp +0 -38
  326. data/vendor/pygments-main/external/rst-directive.py +0 -82
  327. data/vendor/pygments-main/pygmentize +0 -8
  328. data/vendor/pygments-main/pygments/lexers/github.py +0 -565
  329. data/vendor/pygments-main/pygments/styles/stata.py +0 -37
  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/find_error.py +0 -1
  336. data/vendor/pygments-main/scripts/get_vimkw.py +0 -74
  337. data/vendor/pygments-main/scripts/pylintrc +0 -301
  338. data/vendor/pygments-main/scripts/vim2pygments.py +0 -935
  339. data/vendor/pygments-main/setup.cfg +0 -10
  340. data/vendor/pygments-main/setup.py +0 -77
  341. data/vendor/pygments-main/tox.ini +0 -7
  342. data/vendor/simplejson/.gitignore +0 -10
  343. data/vendor/simplejson/.travis.yml +0 -5
  344. data/vendor/simplejson/CHANGES.txt +0 -291
  345. data/vendor/simplejson/LICENSE.txt +0 -19
  346. data/vendor/simplejson/MANIFEST.in +0 -5
  347. data/vendor/simplejson/README.rst +0 -19
  348. data/vendor/simplejson/conf.py +0 -179
  349. data/vendor/simplejson/index.rst +0 -628
  350. data/vendor/simplejson/scripts/make_docs.py +0 -18
  351. data/vendor/simplejson/setup.py +0 -104
  352. data/vendor/simplejson/simplejson/__init__.py +0 -510
  353. data/vendor/simplejson/simplejson/_speedups.c +0 -2745
  354. data/vendor/simplejson/simplejson/decoder.py +0 -425
  355. data/vendor/simplejson/simplejson/encoder.py +0 -567
  356. data/vendor/simplejson/simplejson/ordered_dict.py +0 -119
  357. data/vendor/simplejson/simplejson/scanner.py +0 -77
  358. data/vendor/simplejson/simplejson/tests/__init__.py +0 -67
  359. data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +0 -55
  360. data/vendor/simplejson/simplejson/tests/test_check_circular.py +0 -30
  361. data/vendor/simplejson/simplejson/tests/test_decimal.py +0 -66
  362. data/vendor/simplejson/simplejson/tests/test_decode.py +0 -83
  363. data/vendor/simplejson/simplejson/tests/test_default.py +0 -9
  364. data/vendor/simplejson/simplejson/tests/test_dump.py +0 -67
  365. data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +0 -46
  366. data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +0 -32
  367. data/vendor/simplejson/simplejson/tests/test_errors.py +0 -34
  368. data/vendor/simplejson/simplejson/tests/test_fail.py +0 -91
  369. data/vendor/simplejson/simplejson/tests/test_float.py +0 -19
  370. data/vendor/simplejson/simplejson/tests/test_indent.py +0 -86
  371. data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +0 -20
  372. data/vendor/simplejson/simplejson/tests/test_namedtuple.py +0 -121
  373. data/vendor/simplejson/simplejson/tests/test_pass1.py +0 -76
  374. data/vendor/simplejson/simplejson/tests/test_pass2.py +0 -14
  375. data/vendor/simplejson/simplejson/tests/test_pass3.py +0 -20
  376. data/vendor/simplejson/simplejson/tests/test_recursion.py +0 -67
  377. data/vendor/simplejson/simplejson/tests/test_scanstring.py +0 -117
  378. data/vendor/simplejson/simplejson/tests/test_separators.py +0 -42
  379. data/vendor/simplejson/simplejson/tests/test_speedups.py +0 -20
  380. data/vendor/simplejson/simplejson/tests/test_tuple.py +0 -49
  381. data/vendor/simplejson/simplejson/tests/test_unicode.py +0 -109
  382. data/vendor/simplejson/simplejson/tool.py +0 -39
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Pygments
2
- VERSION = '1.1.0'
4
+ VERSION = '2.0.0.rc2'
3
5
  end
@@ -1,4 +1,6 @@
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'
@@ -7,19 +9,19 @@ Gem::Specification.new do |s|
7
9
  s.summary = 'pygments wrapper for ruby'
8
10
  s.description = 'pygments.rb exposes the pygments syntax highlighter to Ruby'
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-compiler', '~> 1.1.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
- s.files = `git ls-files`.split("\n")
26
+ s.files = `git ls-files`.split("\n").reject { |f| File.symlink?(f) } + ['lexers']
25
27
  end
@@ -1,10 +1,11 @@
1
- #coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'test/unit'
4
4
  require File.join(File.dirname(__FILE__), '..', '/lib/pygments.rb')
5
- ENV['mentos-test'] = "yes"
5
+ ENV['mentos-test'] = 'yes'
6
6
 
7
7
  P = Pygments
8
+ PE = Pygments.engine
8
9
 
9
10
  class PygmentsHighlightTest < Test::Unit::TestCase
10
11
  RUBY_CODE = "#!/usr/bin/ruby\nputs 'foo'"
@@ -24,7 +25,7 @@ class PygmentsHighlightTest < Test::Unit::TestCase
24
25
  end
25
26
 
26
27
  def test_full_table_highlight
27
- code = P.highlight(RUBY_CODE, :options => {:linenos => true})
28
+ code = P.highlight(RUBY_CODE, options: { linenos: true })
28
29
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
29
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
30
31
  end
@@ -32,66 +33,61 @@ class PygmentsHighlightTest < Test::Unit::TestCase
32
33
  def test_highlight_works_with_larger_files
33
34
  code = P.highlight(REDIS_CODE)
34
35
  assert_match 'used_memory_peak_human', code
35
- assert_equal 458511, code.bytesize.to_i
36
36
  end
37
37
 
38
- def test_returns_nil_on_timeout
39
- large_code = REDIS_CODE * 300
40
- code = P.highlight(large_code) # a 30 mb highlight request will timeout
41
- 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(REDIS_CODE, timeout: 0.001)
42
+ end
42
43
  end
43
44
 
44
45
  def test_highlight_works_with_null_bytes
45
- code = P.highlight("\0hello", :lexer => 'rb')
46
- assert_match "hello", code
46
+ code = P.highlight("\0hello", lexer: 'rb')
47
+ assert_match 'hello', code
47
48
  end
48
49
 
49
50
  def test_highlight_works_on_utf8
50
- code = P.highlight('# ø', :lexer => 'rb', :options => {:encoding => 'utf-8'})
51
- assert_match "# ø", code
51
+ code = P.highlight('# ø', lexer: 'rb', options: { encoding: 'utf-8' })
52
+ assert_match '# ø', code
52
53
  end
53
54
 
54
55
  def test_highlight_works_on_utf8_automatically
55
- code = P.highlight('# ø', :lexer => 'rb')
56
- assert_match "# ø", code
56
+ code = P.highlight('# ø', lexer: 'rb')
57
+ assert_match '# ø', code
57
58
  end
58
59
 
59
60
  def test_highlight_works_on_utf8_all_chars_automatically
60
- code = P.highlight('def foo: # ø', :lexer => 'py')
61
+ code = P.highlight('def foo: # ø', lexer: 'py')
61
62
 
62
- assert_equal "<div class=\"highlight\"><pre><span></sp", code[0,38]
63
+ assert_equal '<div class="highlight"><pre><span></sp', code[0, 38]
63
64
  end
64
65
 
65
66
  def test_highlight_works_with_multiple_utf8
66
- code = P.highlight('# ø ø ø', :lexer => 'rb', :options => {:encoding => 'utf-8'})
67
- assert_match "# ø ø ø", code
67
+ code = P.highlight('# ø ø ø', lexer: 'rb', options: { encoding: 'utf-8' })
68
+ assert_match '# ø ø ø', code
68
69
  end
69
70
 
70
71
  def test_highlight_works_with_multiple_utf8_and_trailing_newline
71
- code = P.highlight("#!/usr/bin/ruby\nputs 'ø..ø'\n", :lexer => 'rb')
72
- assert_match "ø..ø", code
72
+ code = P.highlight("#!/usr/bin/ruby\nputs 'ø..ø'\n", lexer: 'rb')
73
+ assert_match 'ø..ø', code
73
74
  end
74
75
 
75
76
  def test_highlight_formatter_bbcode
76
- code = P.highlight(RUBY_CODE, :formatter => 'bbcode')
77
+ code = P.highlight(RUBY_CODE, formatter: 'bbcode')
77
78
  assert_match 'color=#408080][i]#!/usr/bin/ruby[/i]', code
78
79
  end
79
80
 
80
81
  def test_highlight_formatter_terminal
81
- code = P.highlight(RUBY_CODE, :formatter => 'terminal')
82
+ code = P.highlight(RUBY_CODE, formatter: 'terminal')
82
83
  assert_match '39;49;00m', code
83
84
  end
84
85
 
85
86
  def test_highlight_options
86
- code = P.highlight(RUBY_CODE, :options => {:full => true, :title => 'test'})
87
+ code = P.highlight(RUBY_CODE, options: { full: true, title: 'test' })
87
88
  assert_match '<title>test</title>', code
88
89
  end
89
90
 
90
- def test_highlight_works_with_single_character_input
91
- code = P.highlight("a")
92
- assert_match "a\n</pre>", code
93
- end
94
-
95
91
  def test_highlight_works_with_trailing_newline
96
92
  code = P.highlight(RUBY_CODE_TRAILING_NEWLINE)
97
93
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
@@ -108,20 +104,19 @@ class PygmentsHighlightTest < Test::Unit::TestCase
108
104
  end
109
105
 
110
106
  def test_highlight_still_works_with_invalid_code
111
- code = P.highlight("importr python; wat?", :lexer => 'py')
112
- assert_match ">importr</span>", code
107
+ code = P.highlight('importr python; wat?', lexer: 'py')
108
+ assert_match '>importr</span>', code
113
109
  end
114
110
 
115
111
  def test_highlight_on_multi_threads
112
+ omit 'We do not actually support multithreading'
113
+
116
114
  10.times.map do
117
115
  Thread.new do
118
116
  test_full_html_highlight
119
117
  end
120
- end.each do |thread|
121
- thread.join
122
- end
118
+ end.each(&:join)
123
119
  end
124
-
125
120
  end
126
121
 
127
122
  # Philosophically, I'm not the biggest fan of testing private
@@ -129,45 +124,23 @@ end
129
124
  # over the pipe I think it's necessary and informative.
130
125
  class PygmentsValidityTest < Test::Unit::TestCase
131
126
  def test_add_ids_with_padding
132
- res = P.send(:add_ids, "herp derp baz boo foo", "ABCDEFGH")
133
- assert_equal "ABCDEFGH herp derp baz boo foo ABCDEFGH", res
127
+ res = PE.send(:add_ids, 'herp derp baz boo foo', 'ABCDEFGH')
128
+ assert_equal 'ABCDEFGH herp derp baz boo foo ABCDEFGH', res
134
129
  end
135
130
 
136
131
  def test_add_ids_on_empty_string
137
- res = P.send(:add_ids, "", "ABCDEFGH")
138
- assert_equal "ABCDEFGH ABCDEFGH", res
132
+ res = PE.send(:add_ids, '', 'ABCDEFGH')
133
+ assert_equal 'ABCDEFGH ABCDEFGH', res
139
134
  end
140
135
 
141
136
  def test_add_ids_with_unicode_data
142
- res = P.send(:add_ids, "# ø ø ø", "ABCDEFGH")
143
- assert_equal "ABCDEFGH # ø ø ø ABCDEFGH", res
137
+ res = PE.send(:add_ids, '# ø ø ø', 'ABCDEFGH')
138
+ assert_equal 'ABCDEFGH # ø ø ø ABCDEFGH', res
144
139
  end
145
140
 
146
141
  def test_add_ids_with_starting_slashes
147
- res = P.send(:add_ids, '\\# ø ø ø..//', "ABCDEFGH")
148
- assert_equal "ABCDEFGH \\# ø ø ø..// ABCDEFGH", res
149
- end
150
-
151
- def test_get_fixed_bits_from_header
152
- bits = P.send(:get_fixed_bits_from_header, '{"herp": "derp"}')
153
- assert_equal "00000000000000000000000000010000", bits
154
- end
155
-
156
- def test_get_fixed_bits_from_header_works_with_large_headers
157
- bits = P.send(:get_fixed_bits_from_header, '{"herp": "derp"}' * 10000)
158
- assert_equal "00000000000000100111000100000000", bits
159
- end
160
-
161
- def test_size_check
162
- size = "00000000000000000000000000100110"
163
- res = P.send(:size_check, size)
164
- assert_equal res, true
165
- end
166
-
167
- def test_size_check_bad
168
- size = "some random thing"
169
- res = P.send(:size_check, size)
170
- assert_equal res, false
142
+ res = PE.send(:add_ids, '\\# ø ø ø..//', 'ABCDEFGH')
143
+ assert_equal 'ABCDEFGH \\# ø ø ø..// ABCDEFGH', res
171
144
  end
172
145
  end
173
146
 
@@ -175,23 +148,23 @@ class PygmentsLexerTest < Test::Unit::TestCase
175
148
  RUBY_CODE = "#!/usr/bin/ruby\nputs 'foo'"
176
149
 
177
150
  def test_lexer_by_mimetype
178
- assert_equal 'rb', P.lexer_name_for(:mimetype => 'text/x-ruby')
179
- assert_equal 'json', P.lexer_name_for(:mimetype => 'application/json')
151
+ assert_equal 'rb', P.lexer_name_for(mimetype: 'text/x-ruby')
152
+ assert_equal 'json', P.lexer_name_for(mimetype: 'application/json')
180
153
  end
181
154
 
182
155
  def test_lexer_by_filename
183
- assert_equal 'rb', P.lexer_name_for(:filename => 'test.rb')
184
- assert_equal 'scala', P.lexer_name_for(:filename => 'test.scala')
156
+ assert_equal 'rb', P.lexer_name_for(filename: 'test.rb')
157
+ assert_equal 'scala', P.lexer_name_for(filename: 'test.scala')
185
158
  end
186
159
 
187
160
  def test_lexer_by_name
188
- assert_equal 'rb', P.lexer_name_for(:lexer => 'ruby')
189
- assert_equal 'python', P.lexer_name_for(:lexer => 'python')
190
- assert_equal 'c', P.lexer_name_for(:lexer => 'c')
161
+ assert_equal 'rb', P.lexer_name_for(lexer: 'ruby')
162
+ assert_equal 'python', P.lexer_name_for(lexer: 'python')
163
+ assert_equal 'c', P.lexer_name_for(lexer: 'c')
191
164
  end
192
165
 
193
166
  def test_lexer_by_filename_and_content
194
- assert_equal 'rb', P.lexer_name_for(RUBY_CODE, :filename => 'test.rb')
167
+ assert_equal 'rb', P.lexer_name_for(RUBY_CODE, filename: 'test.rb')
195
168
  end
196
169
 
197
170
  def test_lexer_by_content
@@ -200,7 +173,7 @@ class PygmentsLexerTest < Test::Unit::TestCase
200
173
 
201
174
  def test_lexer_by_nothing
202
175
  assert_raise MentosError do
203
- P.lexer_name_for(:invalid => true)
176
+ P.lexer_name_for(invalid: true)
204
177
  end
205
178
  end
206
179
  end
@@ -237,14 +210,13 @@ class PygmentsLexerClassTest < Test::Unit::TestCase
237
210
  assert_equal P::Lexer['Java'], P::Lexer.find_by_extname('.java')
238
211
  end
239
212
 
240
- def test_find_lexer_by_mimetype
213
+ def test_find_lexer_by_mimetype
241
214
  assert_equal P::Lexer['Ruby'], P::Lexer.find_by_mimetype('text/x-ruby')
242
215
  assert_equal P::Lexer['JSON'], P::Lexer.find_by_mimetype('application/json')
243
216
  assert_equal P::Lexer['Python'], P::Lexer.find_by_mimetype('text/x-python')
244
- end
217
+ end
245
218
  end
246
219
 
247
-
248
220
  class PygmentsCssTest < Test::Unit::TestCase
249
221
  include Pygments
250
222
 
@@ -257,11 +229,11 @@ class PygmentsCssTest < Test::Unit::TestCase
257
229
  end
258
230
 
259
231
  def test_css_options
260
- assert_match(/^\.codeerr \{/, P.css(:classprefix => 'code'))
232
+ assert_match(/^\.codeerr \{/, P.css(classprefix: 'code'))
261
233
  end
262
234
 
263
235
  def test_css_prefix_and_options
264
- assert_match(/^\.mycode \.codeerr \{/, P.css('.mycode', :classprefix => 'code'))
236
+ assert_match(/^\.mycode \.codeerr \{/, P.css('.mycode', classprefix: 'code'))
265
237
  end
266
238
 
267
239
  def test_css_default
@@ -269,7 +241,7 @@ class PygmentsCssTest < Test::Unit::TestCase
269
241
  end
270
242
 
271
243
  def test_css_colorful
272
- assert_match '.c { color: #888888 }', P.css(:style => 'colorful')
244
+ assert_match '.c { color: #888888 }', P.css(style: 'colorful')
273
245
  end
274
246
  end
275
247
 
@@ -284,15 +256,13 @@ class PygmentsConfigTest < Test::Unit::TestCase
284
256
 
285
257
  def test_lexers
286
258
  list = P.lexers
287
- assert list.has_key?('Ruby')
259
+ assert list.key?('Ruby')
288
260
  assert list['Ruby'][:aliases].include?('duby')
289
261
  end
290
262
 
291
263
  def test_formatters
292
264
  list = P.formatters
293
- assert list.has_key?('Html')
265
+ assert list.key?('Html')
294
266
  assert list['Html'][:aliases].include?('html')
295
267
  end
296
268
  end
297
-
298
-
@@ -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!