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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +12 -7
- data/.github/workflows/release.yml +5 -5
- data/CHANGELOG.adoc +9 -0
- data/README.adoc +1 -1
- data/bench.rb +2 -2
- data/lib/pygments/lexer.rb +1 -1
- data/lib/pygments/mentos.py +6 -4
- data/lib/pygments/popen.rb +20 -11
- data/lib/pygments/version.rb +1 -1
- data/lib/pygments.rb +8 -2
- data/pygments.rb.gemspec +4 -4
- data/test/test_pygments.rb +14 -8
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/AUTHORS +8 -1
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/INSTALLER +0 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/LICENSE +0 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/METADATA +1 -1
- data/vendor/pygments-main/Pygments-2.10.0.dist-info/RECORD +524 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/REQUESTED +0 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/WHEEL +0 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/entry_points.txt +0 -0
- data/vendor/pygments-main/{Pygments-2.8.1.dist-info → Pygments-2.10.0.dist-info}/top_level.txt +0 -0
- data/vendor/pygments-main/bin/pygmentize +1 -1
- data/vendor/pygments-main/pygments/__init__.py +1 -1
- data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -0
- data/vendor/pygments-main/pygments/formatters/html.py +20 -7
- data/vendor/pygments-main/pygments/formatters/pangomarkup.py +83 -0
- data/vendor/pygments-main/pygments/lexers/_csound_builtins.py +55 -14
- data/vendor/pygments-main/pygments/lexers/_julia_builtins.py +401 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +68 -52
- data/vendor/pygments-main/pygments/lexers/actionscript.py +2 -2
- data/vendor/pygments-main/pygments/lexers/ambient.py +1 -1
- data/vendor/pygments-main/pygments/lexers/amdgpu.py +9 -4
- data/vendor/pygments-main/pygments/lexers/apdlexer.py +448 -0
- data/vendor/pygments-main/pygments/lexers/apl.py +6 -3
- data/vendor/pygments-main/pygments/lexers/asc.py +51 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +86 -58
- data/vendor/pygments-main/pygments/lexers/automation.py +1 -1
- data/vendor/pygments-main/pygments/lexers/bibtex.py +2 -2
- data/vendor/pygments-main/pygments/lexers/c_cpp.py +60 -33
- data/vendor/pygments-main/pygments/lexers/c_like.py +102 -3
- data/vendor/pygments-main/pygments/lexers/cddl.py +2 -2
- data/vendor/pygments-main/pygments/lexers/chapel.py +53 -29
- data/vendor/pygments-main/pygments/lexers/clean.py +6 -6
- data/vendor/pygments-main/pygments/lexers/configs.py +133 -43
- data/vendor/pygments-main/pygments/lexers/csound.py +2 -2
- data/vendor/pygments-main/pygments/lexers/devicetree.py +1 -1
- data/vendor/pygments-main/pygments/lexers/dotnet.py +1 -1
- data/vendor/pygments-main/pygments/lexers/erlang.py +1 -1
- data/vendor/pygments-main/pygments/lexers/floscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/futhark.py +5 -4
- data/vendor/pygments-main/pygments/lexers/gcodelexer.py +36 -0
- data/vendor/pygments-main/pygments/lexers/go.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphics.py +1 -1
- data/vendor/pygments-main/pygments/lexers/graphviz.py +5 -4
- data/vendor/pygments-main/pygments/lexers/gsql.py +92 -0
- data/vendor/pygments-main/pygments/lexers/haskell.py +4 -4
- data/vendor/pygments-main/pygments/lexers/haxe.py +1 -1
- data/vendor/pygments-main/pygments/lexers/installers.py +2 -2
- data/vendor/pygments-main/pygments/lexers/javascript.py +145 -127
- data/vendor/pygments-main/pygments/lexers/jslt.py +94 -0
- data/vendor/pygments-main/pygments/lexers/julia.py +135 -183
- data/vendor/pygments-main/pygments/lexers/jvm.py +262 -202
- data/vendor/pygments-main/pygments/lexers/kuin.py +299 -0
- data/vendor/pygments-main/pygments/lexers/lisp.py +18 -15
- data/vendor/pygments-main/pygments/lexers/markup.py +3 -3
- data/vendor/pygments-main/pygments/lexers/matlab.py +23 -10
- data/vendor/pygments-main/pygments/lexers/meson.py +155 -0
- data/vendor/pygments-main/pygments/lexers/mime.py +6 -21
- data/vendor/pygments-main/pygments/lexers/ml.py +1 -1
- data/vendor/pygments-main/pygments/lexers/nimrod.py +1 -1
- data/vendor/pygments-main/pygments/lexers/objective.py +3 -3
- data/vendor/pygments-main/pygments/lexers/parsers.py +1 -1
- data/vendor/pygments-main/pygments/lexers/procfile.py +43 -0
- data/vendor/pygments-main/pygments/lexers/promql.py +1 -1
- data/vendor/pygments-main/pygments/lexers/python.py +19 -5
- data/vendor/pygments-main/pygments/lexers/resource.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rnc.py +1 -1
- data/vendor/pygments-main/pygments/lexers/ruby.py +1 -1
- data/vendor/pygments-main/pygments/lexers/rust.py +9 -10
- data/vendor/pygments-main/pygments/lexers/scripting.py +7 -7
- data/vendor/pygments-main/pygments/lexers/shell.py +11 -8
- data/vendor/pygments-main/pygments/lexers/smithy.py +79 -0
- data/vendor/pygments-main/pygments/lexers/smv.py +1 -1
- data/vendor/pygments-main/pygments/lexers/special.py +15 -2
- data/vendor/pygments-main/pygments/lexers/supercollider.py +1 -1
- data/vendor/pygments-main/pygments/lexers/tcl.py +3 -3
- data/vendor/pygments-main/pygments/lexers/teal.py +88 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +19 -19
- data/vendor/pygments-main/pygments/lexers/teraterm.py +1 -1
- data/vendor/pygments-main/pygments/lexers/testing.py +1 -1
- data/vendor/pygments-main/pygments/lexers/theorem.py +4 -2
- data/vendor/pygments-main/pygments/lexers/thingsdb.py +118 -0
- data/vendor/pygments-main/pygments/lexers/tnt.py +25 -15
- data/vendor/pygments-main/pygments/lexers/trafficscript.py +1 -1
- data/vendor/pygments-main/pygments/lexers/webassembly.py +120 -0
- data/vendor/pygments-main/pygments/regexopt.py +1 -1
- data/vendor/pygments-main/pygments/style.py +1 -1
- data/vendor/pygments-main/pygments/styles/__init__.py +2 -0
- data/vendor/pygments-main/pygments/styles/friendly.py +1 -0
- data/vendor/pygments-main/pygments/styles/gruvbox.py +107 -0
- data/vendor/pygments-main/pygments/styles/native.py +1 -0
- metadata +29 -14
- 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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 171add681ed69631367cfa8cfed81fc99a9410743ba0236506e773d154fbc10f
|
|
4
|
+
data.tar.gz: c229e0b38f14de10bc909c0a4b6ec565d097545c639c3d5efa363cc40cbc54b5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 55f6e366bc0339454833035d851c300b376d12c5d7cf8144a640559d0157fc9c163a5094bd4b4399e686b909647827b76a8a18af63b4013a86298b4dc2a57969
|
|
7
|
+
data.tar.gz: 1fd392a704bfb84d798ef822a799b8a8b8b56ac656afd43efa8aa3bb31edbdd634a3ed9dc3ec18572e0ea254ae952920bbee579af14fb176440c4753de51be25
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -6,10 +6,10 @@ on:
|
|
|
6
6
|
pull_request:
|
|
7
7
|
jobs:
|
|
8
8
|
rubocop:
|
|
9
|
-
runs-on: ubuntu-
|
|
9
|
+
runs-on: ubuntu-20.04
|
|
10
10
|
steps:
|
|
11
11
|
- name: Checkout
|
|
12
|
-
uses: actions/checkout@
|
|
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.
|
|
24
|
-
python: [ '3.
|
|
25
|
-
platform: [ ubuntu-
|
|
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@
|
|
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@
|
|
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-
|
|
7
|
+
runs-on: ubuntu-20.04
|
|
8
8
|
steps:
|
|
9
|
-
- uses: actions/checkout@
|
|
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.
|
|
13
|
+
ruby-version: '3.1'
|
|
14
14
|
bundler-cache: true
|
|
15
15
|
- name: Setup Python
|
|
16
|
-
uses: actions/setup-python@
|
|
16
|
+
uses: actions/setup-python@v4
|
|
17
17
|
with:
|
|
18
|
-
python-version: '3.
|
|
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
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
|
|
16
|
-
puts
|
|
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
|
data/lib/pygments/lexer.rb
CHANGED
|
@@ -133,7 +133,7 @@ module Pygments
|
|
|
133
133
|
@mimetypes_index = {}
|
|
134
134
|
@raw_lexers = Pygments.lexers!
|
|
135
135
|
|
|
136
|
-
@raw_lexers.
|
|
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
|
data/lib/pygments/mentos.py
CHANGED
|
@@ -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 == '
|
|
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
|
|
171
|
-
|
|
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
|
|
data/lib/pygments/popen.rb
CHANGED
|
@@ -39,9 +39,7 @@ module Pygments
|
|
|
39
39
|
@python_binary ||= find_python_binary
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
|
|
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]
|
|
142
|
-
def
|
|
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(:
|
|
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
|
-
|
|
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.'
|
|
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[
|
|
350
|
-
res = res.rstrip if res.
|
|
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
|
|
data/lib/pygments/version.rb
CHANGED
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
|
-
:
|
|
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
|
|
20
|
-
'changelog_uri' => s.homepage
|
|
21
|
-
'documentation_uri' =>
|
|
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.
|
|
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
|
data/test/test_pygments.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'test/unit'
|
|
4
|
-
require
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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!
|
|
File without changes
|
|
File without changes
|