pygments.rb 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/CHANGELOG.adoc +5 -0
- data/bench.rb +2 -2
- data/lib/pygments/lexer.rb +1 -1
- data/lib/pygments/mentos.py +6 -4
- data/lib/pygments/popen.rb +14 -7
- data/lib/pygments/version.rb +1 -1
- data/lib/pygments.rb +8 -2
- data/pygments.rb.gemspec +4 -4
- data/test/test_pygments.rb +13 -7
- 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: 494fdb817ce25f9a10420c22c8dce5c725b157da060f61bad53527af80bb1dff
|
4
|
+
data.tar.gz: 5bb0321b93ea7bac8ee0675803a5bbeee4b74b3784deb0302e50bde0d4dd53e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 363d098055a9887fa9146a2aef00cc5d04929328a55a6c63fca726a34a9b6a4f32d3c4d8f2ba9cf071db23d978fb30868fd6c5d02e2027b1f5bf5529a3394298
|
7
|
+
data.tar.gz: a80e5d794c22e8d700995346c113877b4a8440253d2482578c3393f54f4ffe57f8fcb076731f63a96d1706de19fbeb7c81d42130f9cfbe87c1e06a9783821e8c
|
data/.github/workflows/ci.yml
CHANGED
data/CHANGELOG.adoc
CHANGED
@@ -5,6 +5,11 @@
|
|
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.0 (2022-01-05) - @slonopotamus
|
9
|
+
|
10
|
+
* Add `Pygments.pygments_version` method to query underlying Pygments version ({uri-repo}/issues/226[#226])
|
11
|
+
* Update Pygments to 2.10.0 ({uri-repo}/issues/234[#234])
|
12
|
+
|
8
13
|
== 2.2.0 (2021-03-18) - @slonopotamus
|
9
14
|
|
10
15
|
* Add support for custom lexers ({uri-repo}/pull/187[#187])
|
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
@@ -88,6 +88,13 @@ module Pygments
|
|
88
88
|
raise MentosError, 'EPERM checking if child process is alive.'
|
89
89
|
end
|
90
90
|
|
91
|
+
# Public: Returns version of underlying Pygments library
|
92
|
+
#
|
93
|
+
# @return [Integer]
|
94
|
+
def pygments_version
|
95
|
+
mentos(:version)[0]
|
96
|
+
end
|
97
|
+
|
91
98
|
# Public: Get an array of available Pygments formatters
|
92
99
|
#
|
93
100
|
# @return [Array<String>] an array of formatters
|
@@ -138,8 +145,8 @@ module Pygments
|
|
138
145
|
mentos(:css, ['html', klass], opts)
|
139
146
|
end
|
140
147
|
|
141
|
-
# @return [String, nil]
|
142
|
-
def
|
148
|
+
# @return [[String], nil] aliases of a lexer.
|
149
|
+
def lexer_names_for(*args)
|
143
150
|
# Pop off the last arg if it's a hash, which becomes our opts
|
144
151
|
opts = if args.last.is_a?(Hash)
|
145
152
|
args.pop
|
@@ -149,7 +156,7 @@ module Pygments
|
|
149
156
|
|
150
157
|
code = (args.pop if args.last.is_a?(String))
|
151
158
|
|
152
|
-
mentos(:
|
159
|
+
mentos(:lexer_names_for, args, opts, code)
|
153
160
|
end
|
154
161
|
|
155
162
|
# Public: Highlight code.
|
@@ -336,9 +343,9 @@ module Pygments
|
|
336
343
|
# Read more bytes (the actual response body)
|
337
344
|
res = @out.read(bytes.to_i)
|
338
345
|
|
339
|
-
if header[:method] == 'highlight'
|
346
|
+
if header[:method] == 'highlight' && res.nil?
|
340
347
|
# Make sure we have a result back; else consider this an error.
|
341
|
-
raise MentosError, 'No highlight result back from mentos.'
|
348
|
+
raise MentosError, 'No highlight result back from mentos.'
|
342
349
|
end
|
343
350
|
|
344
351
|
res
|
@@ -346,8 +353,8 @@ module Pygments
|
|
346
353
|
|
347
354
|
# @return Ruby objects for the methods that want them, text otherwise.
|
348
355
|
def return_result(res, method)
|
349
|
-
res = JSON.parse(res, symbolize_names: true) unless %i[
|
350
|
-
res = res.rstrip if res.
|
356
|
+
res = JSON.parse(res, symbolize_names: true) unless %i[highlight css].include?(method)
|
357
|
+
res = res.rstrip if res.instance_of?(String)
|
351
358
|
res
|
352
359
|
end
|
353
360
|
|
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
@@ -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
|