pygments.rb 2.2.0 → 2.3.1
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 +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
|