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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3593fa0f51b043d8ffa0c2d91fef900f0d650d6e8c8787e32276a54682990089
4
- data.tar.gz: 1ff949d4aaaf38d6baa557e01150a1c9838e42aca0eb99a0eb391c9a89924b8d
3
+ metadata.gz: 171add681ed69631367cfa8cfed81fc99a9410743ba0236506e773d154fbc10f
4
+ data.tar.gz: c229e0b38f14de10bc909c0a4b6ec565d097545c639c3d5efa363cc40cbc54b5
5
5
  SHA512:
6
- metadata.gz: 9f6d6dfb5b4808dcd265206b30b19e8a865e3b53d3161ad891de99340a1903474eca425bdc92f6eba9116322d2ee96fc436a5931dacdf262e85f489385ac5068
7
- data.tar.gz: a3f5aa3cda14507d939db624d6dbd1a0fd585ab1923d9aa87e367851cf0e5dd269cffa209ca28e511927ad018e27e9e1bc1008c7e4d2791cc532cbd5279b7ae7
6
+ metadata.gz: 55f6e366bc0339454833035d851c300b376d12c5d7cf8144a640559d0157fc9c163a5094bd4b4399e686b909647827b76a8a18af63b4013a86298b4dc2a57969
7
+ data.tar.gz: 1fd392a704bfb84d798ef822a799b8a8b8b56ac656afd43efa8aa3bb31edbdd634a3ed9dc3ec18572e0ea254ae952920bbee579af14fb176440c4753de51be25
@@ -6,10 +6,10 @@ on:
6
6
  pull_request:
7
7
  jobs:
8
8
  rubocop:
9
- runs-on: ubuntu-latest
9
+ runs-on: ubuntu-20.04
10
10
  steps:
11
11
  - name: Checkout
12
- uses: actions/checkout@v2
12
+ uses: actions/checkout@v3
13
13
  - name: Set up Ruby
14
14
  uses: ruby/setup-ruby@v1
15
15
  with:
@@ -20,21 +20,26 @@ jobs:
20
20
  build:
21
21
  strategy:
22
22
  matrix:
23
- ruby: [ 'jruby-9.2', '2.3', '3.0' ]
24
- python: [ '3.5', '3.9' ]
25
- platform: [ ubuntu-latest, macos-latest, windows-latest ]
23
+ ruby: [ 'jruby-9.2', '2.3', '3.1' ]
24
+ python: [ '3.6', '3.11' ]
25
+ platform: [ ubuntu-20.04, macos-latest, windows-2019 ]
26
26
  runs-on: ${{ matrix.platform }}
27
27
  steps:
28
28
  - name: Checkout
29
- uses: actions/checkout@v2
29
+ uses: actions/checkout@v3
30
30
  - name: Setup Ruby
31
31
  uses: ruby/setup-ruby@v1
32
32
  with:
33
33
  ruby-version: ${{ matrix.ruby }}
34
34
  bundler-cache: true
35
35
  - name: Setup Python
36
- uses: actions/setup-python@v2
36
+ uses: actions/setup-python@v4
37
37
  with:
38
38
  python-version: ${{ matrix.python }}
39
39
  - name: Run Tests
40
40
  run: bundle exec rake test
41
+ env:
42
+ # Workaround JVM bug that causes JRuby to fail: https://bugs.openjdk.org/browse/JDK-8285445
43
+ # See https://github.com/ruby/setup-ruby/issues/339
44
+ # See https://github.com/jruby/jruby/issues/7182#issuecomment-1111610677
45
+ JAVA_OPTS: -Djdk.io.File.enableADS=true
@@ -4,18 +4,18 @@ on:
4
4
  tags: [ '*' ]
5
5
  jobs:
6
6
  build:
7
- runs-on: ubuntu-latest
7
+ runs-on: ubuntu-20.04
8
8
  steps:
9
- - uses: actions/checkout@v2
9
+ - uses: actions/checkout@v3
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: '3.0'
13
+ ruby-version: '3.1'
14
14
  bundler-cache: true
15
15
  - name: Setup Python
16
- uses: actions/setup-python@v2
16
+ uses: actions/setup-python@v4
17
17
  with:
18
- python-version: '3.9'
18
+ python-version: '3.11'
19
19
  - name: Build
20
20
  run: bundle exec rake build
21
21
  - name: Publish to RubyGems.org
data/CHANGELOG.adoc CHANGED
@@ -5,6 +5,15 @@
5
5
  This document provides a high-level view of the changes to the {project-name} by release.
6
6
  For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
7
7
 
8
+ == 2.3.1 (2022-12-04) - @slonopotamus
9
+
10
+ * Fix bogus search for Python executable ({uri-repo})/issues/242[#242])
11
+
12
+ == 2.3.0 (2022-01-05) - @slonopotamus
13
+
14
+ * Add `Pygments.pygments_version` method to query underlying Pygments version ({uri-repo}/issues/226[#226])
15
+ * Update Pygments to 2.10.0 ({uri-repo}/issues/234[#234])
16
+
8
17
  == 2.2.0 (2021-03-18) - @slonopotamus
9
18
 
10
19
  * Add support for custom lexers ({uri-repo}/pull/187[#187])
data/README.adoc CHANGED
@@ -22,7 +22,7 @@ If a Python process dies, a new one will be spawned on the next pygments.rb requ
22
22
 
23
23
  == System Requirements
24
24
 
25
- - Python >= 3.5
25
+ - Python >= 3.6
26
26
  - Ruby >= 2.3
27
27
 
28
28
  == Installation
data/bench.rb CHANGED
@@ -12,8 +12,8 @@ repeats = ARGV[1] ? ARGV[1].to_i : 1
12
12
  code = File.open('test/test_pygments.rb').read.to_s * repeats
13
13
 
14
14
  puts "Benchmarking....\n"
15
- puts 'Size: ' + code.bytesize.to_s + " bytes\n"
16
- puts 'Iterations: ' + num.to_s + "\n"
15
+ puts "Size: #{code.bytesize} bytes\n"
16
+ puts "Iterations: #{num}\n"
17
17
 
18
18
  Benchmark.bm(40) do |x|
19
19
  x.report('pygments popen ') do
@@ -133,7 +133,7 @@ module Pygments
133
133
  @mimetypes_index = {}
134
134
  @raw_lexers = Pygments.lexers!
135
135
 
136
- @raw_lexers.values.each do |hash|
136
+ @raw_lexers.each_value do |hash|
137
137
  lexer = Lexer.new(hash[:name], hash[:aliases], hash[:filenames], hash[:mimetypes])
138
138
 
139
139
  @lexers << lexer
@@ -163,17 +163,19 @@ class Mentos(object):
163
163
  fmt = pygments.formatters.get_formatter_by_name(args[0], **kwargs)
164
164
  res = fmt.get_style_defs(args[1])
165
165
 
166
- elif method == 'lexer_name_for':
166
+ elif method == 'lexer_names_for':
167
167
  lexer = self.return_lexer(None, args, kwargs, text)
168
168
 
169
169
  if lexer:
170
- # We don't want the Lexer itself, just the name.
171
- # Take the first alias.
172
- res = lexer.aliases[0]
170
+ # We don't want the Lexer itself, just aliases.
171
+ res = json.dumps(list(lexer.aliases))
173
172
 
174
173
  else:
175
174
  _write_error("No lexer")
176
175
 
176
+ elif method == 'version':
177
+ res = json.dumps([pygments.__version__])
178
+
177
179
  else:
178
180
  _write_error("Invalid method " + method)
179
181
 
@@ -39,9 +39,7 @@ module Pygments
39
39
  @python_binary ||= find_python_binary
40
40
  end
41
41
 
42
- def python_binary=(python_bin)
43
- @python_bin = python_bin
44
- end
42
+ attr_writer :python_binary
45
43
 
46
44
  # Stop the child process by issuing a kill -9.
47
45
  #
@@ -88,6 +86,13 @@ module Pygments
88
86
  raise MentosError, 'EPERM checking if child process is alive.'
89
87
  end
90
88
 
89
+ # Public: Returns version of underlying Pygments library
90
+ #
91
+ # @return [Integer]
92
+ def pygments_version
93
+ mentos(:version)[0]
94
+ end
95
+
91
96
  # Public: Get an array of available Pygments formatters
92
97
  #
93
98
  # @return [Array<String>] an array of formatters
@@ -138,8 +143,8 @@ module Pygments
138
143
  mentos(:css, ['html', klass], opts)
139
144
  end
140
145
 
141
- # @return [String, nil] the name of a lexer.
142
- def lexer_name_for(*args)
146
+ # @return [[String], nil] aliases of a lexer.
147
+ def lexer_names_for(*args)
143
148
  # Pop off the last arg if it's a hash, which becomes our opts
144
149
  opts = if args.last.is_a?(Hash)
145
150
  args.pop
@@ -149,7 +154,7 @@ module Pygments
149
154
 
150
155
  code = (args.pop if args.last.is_a?(String))
151
156
 
152
- mentos(:lexer_name_for, args, opts, code)
157
+ mentos(:lexer_names_for, args, opts, code)
153
158
  end
154
159
 
155
160
  # Public: Highlight code.
@@ -190,7 +195,11 @@ module Pygments
190
195
 
191
196
  # Detect a suitable Python binary to use.
192
197
  def find_python_binary
193
- return %w[py python3 python].first { |py| !which(py).nil? } if Gem.win_platform?
198
+ if Gem.win_platform?
199
+ return %w[py -3] if which('py')
200
+
201
+ return [%w[python3 python].find { |py| !which(py).nil? }]
202
+ end
194
203
 
195
204
  # On non-Windows platforms, we simply rely on shebang
196
205
  []
@@ -336,9 +345,9 @@ module Pygments
336
345
  # Read more bytes (the actual response body)
337
346
  res = @out.read(bytes.to_i)
338
347
 
339
- if header[:method] == 'highlight'
348
+ if header[:method] == 'highlight' && res.nil?
340
349
  # Make sure we have a result back; else consider this an error.
341
- raise MentosError, 'No highlight result back from mentos.' if res.nil?
350
+ raise MentosError, 'No highlight result back from mentos.'
342
351
  end
343
352
 
344
353
  res
@@ -346,8 +355,8 @@ module Pygments
346
355
 
347
356
  # @return Ruby objects for the methods that want them, text otherwise.
348
357
  def return_result(res, method)
349
- res = JSON.parse(res, symbolize_names: true) unless %i[lexer_name_for highlight css].include?(method)
350
- res = res.rstrip if res.class == String
358
+ res = JSON.parse(res, symbolize_names: true) unless %i[highlight css].include?(method)
359
+ res = res.rstrip if res.instance_of?(String)
351
360
  res
352
361
  end
353
362
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pygments
4
- VERSION = '2.2.0'
4
+ VERSION = '2.3.1'
5
5
  end
data/lib/pygments.rb CHANGED
@@ -18,14 +18,20 @@ module Pygments
18
18
  Thread.current.thread_variable_set(:pygments_engine, Pygments::Popen.new)
19
19
  end
20
20
 
21
+ def lexer_name_for(*args)
22
+ names = engine.lexer_names_for(*args)
23
+ names&.[](0)
24
+ end
25
+
21
26
  def_delegators :engine,
22
27
  :formatters,
23
28
  :lexers!,
24
29
  :filters,
25
30
  :styles,
26
31
  :css,
27
- :lexer_name_for,
32
+ :lexer_names_for,
28
33
  :highlight,
29
- :start
34
+ :start,
35
+ :pygments_version
30
36
  end
31
37
  end
data/pygments.rb.gemspec CHANGED
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.metadata = {
18
18
  'homepage_uri' => s.homepage,
19
- 'bug_tracker_uri' => s.homepage + '/issues',
20
- 'changelog_uri' => s.homepage + '/blob/master/CHANGELOG.adoc',
21
- 'documentation_uri' => 'https://www.rubydoc.info/gems/' + s.name,
19
+ 'bug_tracker_uri' => "#{s.homepage}/issues",
20
+ 'changelog_uri' => "#{s.homepage}/blob/master/CHANGELOG.adoc",
21
+ 'documentation_uri' => "https://www.rubydoc.info/gems/#{s.name}",
22
22
  'source_code_uri' => s.homepage
23
23
  }
24
24
 
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
 
27
27
  s.add_development_dependency 'rake', '~> 13.0.0'
28
28
  s.add_development_dependency 'rubocop', '~> 0.81.0'
29
- s.add_development_dependency 'test-unit', '~> 3.4.0'
29
+ s.add_development_dependency 'test-unit', '~> 3.5.0'
30
30
 
31
31
  s.files = `git ls-files -z`.split("\0").reject { |f| File.symlink?(f) }
32
32
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'test/unit'
4
- require File.join(File.dirname(__FILE__), '..', '/lib/pygments.rb')
4
+ require 'pygments'
5
5
  ENV['mentos-test'] = 'yes'
6
6
 
7
7
  P = Pygments
@@ -92,12 +92,12 @@ class PygmentsHighlightTest < Test::Unit::TestCase
92
92
  end
93
93
 
94
94
  def test_highlight_works_with_multiple_newlines
95
- code = P.highlight(RUBY_CODE_TRAILING_NEWLINE + "derp\n\n")
95
+ code = P.highlight("#{RUBY_CODE_TRAILING_NEWLINE}derp\n\n")
96
96
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
97
97
  end
98
98
 
99
99
  def test_highlight_works_with_trailing_cr
100
- code = P.highlight(RUBY_CODE_TRAILING_NEWLINE + "\r")
100
+ code = P.highlight("#{RUBY_CODE_TRAILING_NEWLINE}\r")
101
101
  assert_match '<span class="ch">#!/usr/bin/ruby</span>', code
102
102
  end
103
103
 
@@ -106,6 +106,12 @@ class PygmentsHighlightTest < Test::Unit::TestCase
106
106
  assert_match '>importr</span>', code
107
107
  end
108
108
 
109
+ def test_version
110
+ version_str = P.pygments_version
111
+ # This will throw "Malformed version number string" ArgumentError if version_str is not a valid version string
112
+ Gem::Version.new(version_str)
113
+ end
114
+
109
115
  def test_highlight_on_multi_threads
110
116
  omit 'We do not actually support multithreading'
111
117
 
@@ -121,27 +127,27 @@ class PygmentsLexerTest < Test::Unit::TestCase
121
127
  RUBY_CODE = "#!/usr/bin/ruby\nputs 'foo'"
122
128
 
123
129
  def test_lexer_by_mimetype
124
- assert_equal 'rb', P.lexer_name_for(mimetype: 'text/x-ruby')
130
+ assert_includes P.lexer_names_for(mimetype: 'text/x-ruby'), 'rb'
125
131
  assert_equal 'json', P.lexer_name_for(mimetype: 'application/json')
126
132
  end
127
133
 
128
134
  def test_lexer_by_filename
129
- assert_equal 'rb', P.lexer_name_for(filename: 'test.rb')
135
+ assert_includes P.lexer_names_for(filename: 'test.rb'), 'rb'
130
136
  assert_equal 'scala', P.lexer_name_for(filename: 'test.scala')
131
137
  end
132
138
 
133
139
  def test_lexer_by_name
134
- assert_equal 'rb', P.lexer_name_for(lexer: 'ruby')
140
+ assert_includes P.lexer_names_for(lexer: 'ruby'), 'rb'
135
141
  assert_equal 'python', P.lexer_name_for(lexer: 'python')
136
142
  assert_equal 'c', P.lexer_name_for(lexer: 'c')
137
143
  end
138
144
 
139
145
  def test_lexer_by_filename_and_content
140
- assert_equal 'rb', P.lexer_name_for(RUBY_CODE, filename: 'test.rb')
146
+ assert_includes P.lexer_names_for(RUBY_CODE, filename: 'test.rb'), 'rb'
141
147
  end
142
148
 
143
149
  def test_lexer_by_content
144
- assert_equal 'rb', P.lexer_name_for(RUBY_CODE)
150
+ assert_includes P.lexer_names_for(RUBY_CODE), 'rb'
145
151
  end
146
152
 
147
153
  def test_lexer_by_nothing
@@ -6,6 +6,7 @@ Major developers are Tim Hatch <tim@timhatch.com> and Armin Ronacher
6
6
  Other contributors, listed alphabetically, are:
7
7
 
8
8
  * Sam Aaron -- Ioke lexer
9
+ * João Abecasis -- JSLT lexer
9
10
  * Ali Afshar -- image formatter
10
11
  * Thomas Aglassinger -- Easytrieve, JCL, Rexx, Transact-SQL and VBScript
11
12
  lexers
@@ -32,7 +33,7 @@ Other contributors, listed alphabetically, are:
32
33
  * Sébastien Bigaret -- QVT Operational lexer
33
34
  * Jarrett Billingsley -- MiniD lexer
34
35
  * Adam Blinkinsop -- Haskell, Redcode lexers
35
- * Stéphane Blondon -- SGF and Sieve lexers
36
+ * Stéphane Blondon -- Procfile, SGF and Sieve lexers
36
37
  * Frits van Bommel -- assembler lexers
37
38
  * Pierre Bourdon -- bugfixes
38
39
  * Martijn Braam -- Kernel log lexer, BARE lexer
@@ -48,6 +49,7 @@ Other contributors, listed alphabetically, are:
48
49
  * Pete Curry -- bugfixes
49
50
  * Bryan Davis -- EBNF lexer
50
51
  * Bruno Deferrari -- Shen lexer
52
+ * Luke Drummond -- Meson lexer
51
53
  * Giedrius Dubinskas -- HTML formatter improvements
52
54
  * Owen Durni -- Haxe lexer
53
55
  * Alexander Dutton, Oxford University Computing Services -- SPARQL lexer
@@ -97,6 +99,7 @@ Other contributors, listed alphabetically, are:
97
99
  * Doug Hogan -- Mscgen lexer
98
100
  * Ben Hollis -- Mason lexer
99
101
  * Max Horn -- GAP lexer
102
+ * Fred Hornsey -- OMG IDL Lexer
100
103
  * Alastair Houghton -- Lexer inheritance facility
101
104
  * Tim Howard -- BlitzMax lexer
102
105
  * Dustin Howett -- Logos lexer
@@ -200,6 +203,7 @@ Other contributors, listed alphabetically, are:
200
203
  * Robert Simmons -- Standard ML lexer
201
204
  * Kirill Simonov -- YAML lexer
202
205
  * Corbin Simpson -- Monte lexer
206
+ * Ville Skyttä -- ASCII armored lexer
203
207
  * Alexander Smishlajev -- Visual FoxPro lexer
204
208
  * Steve Spigarelli -- XQuery lexer
205
209
  * Jerome St-Louis -- eC lexer
@@ -208,6 +212,7 @@ Other contributors, listed alphabetically, are:
208
212
  * Tom Stuart -- Treetop lexer
209
213
  * Colin Sullivan -- SuperCollider lexer
210
214
  * Ben Swift -- Extempore lexer
215
+ * tatt61880 -- Kuin lexer
211
216
  * Edoardo Tenani -- Arduino lexer
212
217
  * Tiberius Teng -- default style overhaul
213
218
  * Jeremy Thurgood -- Erlang, Squid config lexers
@@ -223,6 +228,7 @@ Other contributors, listed alphabetically, are:
223
228
  * Matthias Vallentin -- Bro lexer
224
229
  * Benoît Vinot -- AMPL lexer
225
230
  * Linh Vu Hong -- RSL lexer
231
+ * Immanuel Washington -- Smithy lexer
226
232
  * Nathan Weizenbaum -- Haml and Sass lexers
227
233
  * Nathan Whetsell -- Csound lexers
228
234
  * Dietmar Winkler -- Modelica lexer
@@ -239,5 +245,6 @@ Other contributors, listed alphabetically, are:
239
245
  * 15b3 -- Image Formatter improvements
240
246
  * Fabian Neumann -- CDDL lexer
241
247
  * Thomas Duboucher -- CDDL lexer
248
+ * Philipp Imhof -- Pango Markup formatter
242
249
 
243
250
  Many thanks for all contributions!
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Pygments
3
- Version: 2.8.1
3
+ Version: 2.10.0
4
4
  Summary: Pygments is a syntax highlighting package written in Python.
5
5
  Home-page: https://pygments.org/
6
6
  Author: Georg Brandl