pygments.rb 2.2.0 → 2.3.1

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +12 -7
  3. data/.github/workflows/release.yml +5 -5
  4. data/CHANGELOG.adoc +9 -0
  5. data/README.adoc +1 -1
  6. data/bench.rb +2 -2
  7. data/lib/pygments/lexer.rb +1 -1
  8. data/lib/pygments/mentos.py +6 -4
  9. data/lib/pygments/popen.rb +20 -11
  10. data/lib/pygments/version.rb +1 -1
  11. data/lib/pygments.rb +8 -2
  12. data/pygments.rb.gemspec +4 -4
  13. data/test/test_pygments.rb +14 -8
  14. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/AUTHORS +8 -1
  15. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/INSTALLER +0 -0
  16. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/LICENSE +0 -0
  17. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/METADATA +1 -1
  18. data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +524 -0
  19. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/REQUESTED +0 -0
  20. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/WHEEL +0 -0
  21. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/entry_points.txt +0 -0
  22. data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/top_level.txt +0 -0
  23. data/vendor/pygments-main/bin/pygmentize +1 -1
  24. data/vendor/pygments-main/pygments/__init__.py +1 -1
  25. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -0
  26. data/vendor/pygments-main/pygments/formatters/html.py +20 -7
  27. data/vendor/pygments-main/pygments/formatters/pangomarkup.py +83 -0
  28. data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +55 -14
  29. data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +401 -0
  30. data/vendor/pygments-main/pygments/lexers/_mapping.py +68 -52
  31. data/vendor/pygments-main/pygments/lexers/actionscript.py +2 -2
  32. data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
  33. data/vendor/pygments-main/pygments/lexers/amdgpu.py +9 -4
  34. data/vendor/pygments-main/pygments/lexers/apdlexer.py +448 -0
  35. data/vendor/pygments-main/pygments/lexers/apl.py +6 -3
  36. data/vendor/pygments-main/pygments/lexers/asc.py +51 -0
  37. data/vendor/pygments-main/pygments/lexers/asm.py +86 -58
  38. data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
  39. data/vendor/pygments-main/pygments/lexers/bibtex.py +2 -2
  40. data/vendor/pygments-main/pygments/lexers/c_cpp.py +60 -33
  41. data/vendor/pygments-main/pygments/lexers/c_like.py +102 -3
  42. data/vendor/pygments-main/pygments/lexers/cddl.py +2 -2
  43. data/vendor/pygments-main/pygments/lexers/chapel.py +53 -29
  44. data/vendor/pygments-main/pygments/lexers/clean.py +6 -6
  45. data/vendor/pygments-main/pygments/lexers/configs.py +133 -43
  46. data/vendor/pygments-main/pygments/lexers/csound.py +2 -2
  47. data/vendor/pygments-main/pygments/lexers/devicetree.py +1 -1
  48. data/vendor/pygments-main/pygments/lexers/dotnet.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
  50. data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
  51. data/vendor/pygments-main/pygments/lexers/futhark.py +5 -4
  52. data/vendor/pygments-main/pygments/lexers/gcodelexer.py +36 -0
  53. data/vendor/pygments-main/pygments/lexers/go.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
  55. data/vendor/pygments-main/pygments/lexers/graphviz.py +5 -4
  56. data/vendor/pygments-main/pygments/lexers/gsql.py +92 -0
  57. data/vendor/pygments-main/pygments/lexers/haskell.py +4 -4
  58. data/vendor/pygments-main/pygments/lexers/haxe.py +1 -1
  59. data/vendor/pygments-main/pygments/lexers/installers.py +2 -2
  60. data/vendor/pygments-main/pygments/lexers/javascript.py +145 -127
  61. data/vendor/pygments-main/pygments/lexers/jslt.py +94 -0
  62. data/vendor/pygments-main/pygments/lexers/julia.py +135 -183
  63. data/vendor/pygments-main/pygments/lexers/jvm.py +262 -202
  64. data/vendor/pygments-main/pygments/lexers/kuin.py +299 -0
  65. data/vendor/pygments-main/pygments/lexers/lisp.py +18 -15
  66. data/vendor/pygments-main/pygments/lexers/markup.py +3 -3
  67. data/vendor/pygments-main/pygments/lexers/matlab.py +23 -10
  68. data/vendor/pygments-main/pygments/lexers/meson.py +155 -0
  69. data/vendor/pygments-main/pygments/lexers/mime.py +6 -21
  70. data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
  71. data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
  72. data/vendor/pygments-main/pygments/lexers/objective.py +3 -3
  73. data/vendor/pygments-main/pygments/lexers/parsers.py +1 -1
  74. data/vendor/pygments-main/pygments/lexers/procfile.py +43 -0
  75. data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
  76. data/vendor/pygments-main/pygments/lexers/python.py +19 -5
  77. data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
  78. data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
  79. data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
  80. data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
  81. data/vendor/pygments-main/pygments/lexers/scripting.py +7 -7
  82. data/vendor/pygments-main/pygments/lexers/shell.py +11 -8
  83. data/vendor/pygments-main/pygments/lexers/smithy.py +79 -0
  84. data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
  85. data/vendor/pygments-main/pygments/lexers/special.py +15 -2
  86. data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
  87. data/vendor/pygments-main/pygments/lexers/tcl.py +3 -3
  88. data/vendor/pygments-main/pygments/lexers/teal.py +88 -0
  89. data/vendor/pygments-main/pygments/lexers/templates.py +19 -19
  90. data/vendor/pygments-main/pygments/lexers/teraterm.py +1 -1
  91. data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
  92. data/vendor/pygments-main/pygments/lexers/theorem.py +4 -2
  93. data/vendor/pygments-main/pygments/lexers/thingsdb.py +118 -0
  94. data/vendor/pygments-main/pygments/lexers/tnt.py +25 -15
  95. data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
  96. data/vendor/pygments-main/pygments/lexers/webassembly.py +120 -0
  97. data/vendor/pygments-main/pygments/regexopt.py +1 -1
  98. data/vendor/pygments-main/pygments/style.py +1 -1
  99. data/vendor/pygments-main/pygments/styles/__init__.py +2 -0
  100. data/vendor/pygments-main/pygments/styles/friendly.py +1 -0
  101. data/vendor/pygments-main/pygments/styles/gruvbox.py +107 -0
  102. data/vendor/pygments-main/pygments/styles/native.py +1 -0
  103. metadata +29 -14
  104. data/vendor/pygments-main/Pygments-2.8.1.dist-info/RECORD +0 -494
@@ -272,7 +272,9 @@ class HtmlFormatter(Formatter):
272
272
  125%``).
273
273
 
274
274
  `hl_lines`
275
- Specify a list of lines to be highlighted.
275
+ Specify a list of lines to be highlighted. The line numbers are always
276
+ relative to the input (i.e. the first line is line 1) and are
277
+ independent of `linenostart`.
276
278
 
277
279
  .. versionadded:: 0.11
278
280
 
@@ -303,7 +305,7 @@ class HtmlFormatter(Formatter):
303
305
 
304
306
  `lineanchors`
305
307
  If set to a nonempty string, e.g. ``foo``, the formatter will wrap each
306
- output line in an anchor tag with a ``name`` of ``foo-linenumber``.
308
+ output line in an anchor tag with an ``id`` (and `name`) of ``foo-linenumber``.
307
309
  This allows easy linking to certain lines.
308
310
 
309
311
  .. versionadded:: 0.9
@@ -335,7 +337,9 @@ class HtmlFormatter(Formatter):
335
337
 
336
338
  `filename`
337
339
  A string used to generate a filename when rendering ``<pre>`` blocks,
338
- for example if displaying source code.
340
+ for example if displaying source code. If `linenos` is set to
341
+ ``'table'`` then the filename will be rendered in an initial row
342
+ containing a single `<th>` which spans both columns.
339
343
 
340
344
  .. versionadded:: 2.1
341
345
 
@@ -691,11 +695,20 @@ class HtmlFormatter(Formatter):
691
695
 
692
696
  ls = '\n'.join(lines)
693
697
 
698
+ # If a filename was specified, we can't put it into the code table as it
699
+ # would misalign the line numbers. Hence we emit a separate row for it.
700
+ filename_tr = ""
701
+ if self.filename:
702
+ filename_tr = (
703
+ '<tr><th colspan="2" class="filename"><div class="highlight">'
704
+ '<span class="filename">' + self.filename + '</span></div>'
705
+ '</th></tr>')
706
+
694
707
  # in case you wonder about the seemingly redundant <div> here: since the
695
708
  # content in the other cell also is wrapped in a div, some browsers in
696
709
  # some configurations seem to mess up the formatting...
697
710
  yield 0, (
698
- '<table class="%stable">' % self.cssclass +
711
+ '<table class="%stable">' % self.cssclass + filename_tr +
699
712
  '<tr><td class="linenos"><div class="linenodiv"><pre>' +
700
713
  ls + '</pre></div></td><td class="code">'
701
714
  )
@@ -752,7 +765,7 @@ class HtmlFormatter(Formatter):
752
765
  for t, line in inner:
753
766
  if t:
754
767
  i += 1
755
- yield 1, '<a name="%s-%d"></a>' % (s, i) + line
768
+ yield 1, '<a id="%s-%d" name="%s-%d"></a>' % (s, i, s, i) + line
756
769
  else:
757
770
  yield 0, line
758
771
 
@@ -788,7 +801,7 @@ class HtmlFormatter(Formatter):
788
801
  style.append(self._pre_style)
789
802
  style = '; '.join(style)
790
803
 
791
- if self.filename:
804
+ if self.filename and self.linenos != 1:
792
805
  yield 0, ('<span class="filename">' + self.filename + '</span>')
793
806
 
794
807
  # the empty span here is to keep leading empty lines from being
@@ -877,7 +890,7 @@ class HtmlFormatter(Formatter):
877
890
 
878
891
  def _lookup_ctag(self, token):
879
892
  entry = ctags.TagEntry()
880
- if self._ctags.find(entry, token, 0):
893
+ if self._ctags.find(entry, token.encode(), 0):
881
894
  return entry['file'], entry['lineNumber']
882
895
  else:
883
896
  return None, None
@@ -0,0 +1,83 @@
1
+ """
2
+ pygments.formatters.pangomarkup
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Formatter for Pango markup output.
6
+
7
+ :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ from pygments.formatter import Formatter
12
+
13
+
14
+ __all__ = ['PangoMarkupFormatter']
15
+
16
+
17
+ _escape_table = {
18
+ ord('&'): '&amp;',
19
+ ord('<'): '&lt;',
20
+ }
21
+
22
+
23
+ def escape_special_chars(text, table=_escape_table):
24
+ """Escape & and < for Pango Markup."""
25
+ return text.translate(table)
26
+
27
+
28
+ class PangoMarkupFormatter(Formatter):
29
+ """
30
+ Format tokens as Pango Markup code. It can then be rendered to an SVG.
31
+
32
+ .. versionadded:: 2.9
33
+ """
34
+
35
+ name = 'Pango Markup'
36
+ aliases = ['pango', 'pangomarkup']
37
+ filenames = []
38
+
39
+ def __init__(self, **options):
40
+ Formatter.__init__(self, **options)
41
+
42
+ self.styles = {}
43
+
44
+ for token, style in self.style:
45
+ start = ''
46
+ end = ''
47
+ if style['color']:
48
+ start += '<span fgcolor="#%s">' % style['color']
49
+ end = '</span>' + end
50
+ if style['bold']:
51
+ start += '<b>'
52
+ end = '</b>' + end
53
+ if style['italic']:
54
+ start += '<i>'
55
+ end = '</i>' + end
56
+ if style['underline']:
57
+ start += '<u>'
58
+ end = '</u>' + end
59
+ self.styles[token] = (start, end)
60
+
61
+ def format_unencoded(self, tokensource, outfile):
62
+ lastval = ''
63
+ lasttype = None
64
+
65
+ outfile.write('<tt>')
66
+
67
+ for ttype, value in tokensource:
68
+ while ttype not in self.styles:
69
+ ttype = ttype.parent
70
+ if ttype == lasttype:
71
+ lastval += escape_special_chars(value)
72
+ else:
73
+ if lastval:
74
+ stylebegin, styleend = self.styles[lasttype]
75
+ outfile.write(stylebegin + lastval + styleend)
76
+ lastval = escape_special_chars(value)
77
+ lasttype = ttype
78
+
79
+ if lastval:
80
+ stylebegin, styleend = self.styles[lasttype]
81
+ outfile.write(stylebegin + lastval + styleend)
82
+
83
+ outfile.write('</tt>')
@@ -6,7 +6,35 @@
6
6
  :license: BSD, see LICENSE for details.
7
7
  """
8
8
 
9
- # Opcodes in Csound 6.14.0 using:
9
+ REMOVED_OPCODES = set('''
10
+ OSCsendA
11
+ beadsynt
12
+ beosc
13
+ buchla
14
+ getrowlin
15
+ lua_exec
16
+ lua_iaopcall
17
+ lua_iaopcall_off
18
+ lua_ikopcall
19
+ lua_ikopcall_off
20
+ lua_iopcall
21
+ lua_iopcall_off
22
+ lua_opdef
23
+ mp3scal_check
24
+ mp3scal_load
25
+ mp3scal_load2
26
+ mp3scal_play
27
+ mp3scal_play2
28
+ pvsgendy
29
+ socksend_k
30
+ signalflowgraph
31
+ sumTableFilter
32
+ systime
33
+ tabrowlin
34
+ vbap1move
35
+ '''.split())
36
+
37
+ # Opcodes in Csound 6.16.0 using:
10
38
  # python3 -c "
11
39
  # import re
12
40
  # from subprocess import Popen, PIPE
@@ -209,6 +237,7 @@ ampmidicurve
209
237
  ampmidid
210
238
  apoleparams
211
239
  arduinoRead
240
+ arduinoReadF
212
241
  arduinoStart
213
242
  arduinoStop
214
243
  areson
@@ -216,6 +245,7 @@ aresonk
216
245
  atone
217
246
  atonek
218
247
  atonex
248
+ autocorr
219
249
  babo
220
250
  balance
221
251
  balance2
@@ -223,8 +253,6 @@ bamboo
223
253
  barmodel
224
254
  bbcutm
225
255
  bbcuts
226
- beadsynt
227
- beosc
228
256
  betarand
229
257
  bexprnd
230
258
  bformdec1
@@ -259,6 +287,7 @@ centroid
259
287
  ceps
260
288
  cepsinv
261
289
  chanctrl
290
+ changed
262
291
  changed2
263
292
  chani
264
293
  chano
@@ -293,6 +322,8 @@ cmp
293
322
  cmplxprod
294
323
  cntCreate
295
324
  cntCycles
325
+ cntDelete
326
+ cntDelete_i
296
327
  cntRead
297
328
  cntReset
298
329
  cntState
@@ -342,6 +373,11 @@ ctrl14
342
373
  ctrl21
343
374
  ctrl7
344
375
  ctrlinit
376
+ ctrlpreset
377
+ ctrlprint
378
+ ctrlprintpresets
379
+ ctrlsave
380
+ ctrlselect
345
381
  cuserrnd
346
382
  dam
347
383
  date
@@ -523,7 +559,6 @@ getcfg
523
559
  getcol
524
560
  getftargs
525
561
  getrow
526
- getrowlin
527
562
  getseed
528
563
  gogobel
529
564
  grain
@@ -776,6 +811,7 @@ lagud
776
811
  lastcycle
777
812
  lenarray
778
813
  lfo
814
+ lfsr
779
815
  limit
780
816
  limit1
781
817
  lincos
@@ -836,14 +872,6 @@ lpreson
836
872
  lpshold
837
873
  lpsholdp
838
874
  lpslot
839
- lua_exec
840
- lua_iaopcall
841
- lua_iaopcall_off
842
- lua_ikopcall
843
- lua_ikopcall_off
844
- lua_iopcall
845
- lua_iopcall_off
846
- lua_opdef
847
875
  lufs
848
876
  mac
849
877
  maca
@@ -920,6 +948,7 @@ mp3scal
920
948
  mp3sr
921
949
  mpulse
922
950
  mrtmsg
951
+ ms2st
923
952
  mtof
924
953
  mton
925
954
  multitap
@@ -929,6 +958,7 @@ mvclpf1
929
958
  mvclpf2
930
959
  mvclpf3
931
960
  mvclpf4
961
+ mvmfilter
932
962
  mxadsr
933
963
  nchnls_hw
934
964
  nestedap
@@ -972,6 +1002,7 @@ oscils
972
1002
  oscilx
973
1003
  out
974
1004
  out32
1005
+ outall
975
1006
  outc
976
1007
  outch
977
1008
  outh
@@ -1279,11 +1310,13 @@ sc_lagud
1279
1310
  sc_phasor
1280
1311
  sc_trig
1281
1312
  scale
1313
+ scale2
1282
1314
  scalearray
1283
1315
  scanhammer
1284
1316
  scans
1285
1317
  scantable
1286
1318
  scanu
1319
+ scanu2
1287
1320
  schedkwhen
1288
1321
  schedkwhennamed
1289
1322
  schedule
@@ -1333,6 +1366,7 @@ sin
1333
1366
  sinh
1334
1367
  sininv
1335
1368
  sinsyn
1369
+ skf
1336
1370
  sleighbells
1337
1371
  slicearray
1338
1372
  slicearray_i
@@ -1368,12 +1402,14 @@ spat3d
1368
1402
  spat3di
1369
1403
  spat3dt
1370
1404
  spdist
1405
+ spf
1371
1406
  splitrig
1372
1407
  sprintf
1373
1408
  sprintfk
1374
1409
  spsend
1375
1410
  sqrt
1376
1411
  squinewave
1412
+ st2ms
1377
1413
  statevar
1378
1414
  sterrain
1379
1415
  stix
@@ -1414,6 +1450,7 @@ subinstrinit
1414
1450
  sum
1415
1451
  sumarray
1416
1452
  svfilter
1453
+ svn
1417
1454
  syncgrain
1418
1455
  syncloop
1419
1456
  syncphasor
@@ -1454,7 +1491,6 @@ tabmorphak
1454
1491
  tabmorphi
1455
1492
  tabplay
1456
1493
  tabrec
1457
- tabrowlin
1458
1494
  tabsum
1459
1495
  tabw
1460
1496
  tabw_i
@@ -1486,6 +1522,8 @@ transegr
1486
1522
  trcross
1487
1523
  trfilter
1488
1524
  trhighest
1525
+ trigExpseg
1526
+ trigLinseg
1489
1527
  trigger
1490
1528
  trighold
1491
1529
  trigphasor
@@ -1500,6 +1538,8 @@ trshift
1500
1538
  trsplit
1501
1539
  turnoff
1502
1540
  turnoff2
1541
+ turnoff2_i
1542
+ turnoff3
1503
1543
  turnon
1504
1544
  tvconv
1505
1545
  unirand
@@ -1523,6 +1563,7 @@ vbapmove
1523
1563
  vbapz
1524
1564
  vbapzmove
1525
1565
  vcella
1566
+ vclpf
1526
1567
  vco
1527
1568
  vco2
1528
1569
  vco2ft
@@ -1611,6 +1652,7 @@ window
1611
1652
  wrap
1612
1653
  writescratch
1613
1654
  wterrain
1655
+ wterrain2
1614
1656
  xadsr
1615
1657
  xin
1616
1658
  xout
@@ -1647,7 +1689,6 @@ DEPRECATED_OPCODES = set('''
1647
1689
  array
1648
1690
  bformdec
1649
1691
  bformenc
1650
- changed
1651
1692
  copy2ftab
1652
1693
  copy2ttab
1653
1694
  hrtfer