rouge 4.1.0 → 4.1.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/lib/rouge/guessers/disambiguation.rb +7 -0
- data/lib/rouge/lexers/dart.rb +6 -6
- data/lib/rouge/lexers/dot.rb +1 -0
- data/lib/rouge/lexers/javascript.rb +8 -1
- data/lib/rouge/lexers/jinja.rb +10 -10
- data/lib/rouge/lexers/liquid.rb +164 -164
- data/lib/rouge/lexers/mosel.rb +0 -4
- data/lib/rouge/lexers/openedge.rb +581 -376
- data/lib/rouge/lexers/php.rb +2 -2
- data/lib/rouge/lexers/python.rb +19 -3
- data/lib/rouge/lexers/ruby.rb +2 -1
- data/lib/rouge/lexers/rust.rb +7 -6
- data/lib/rouge/lexers/shell.rb +6 -2
- data/lib/rouge/lexers/twig.rb +9 -9
- data/lib/rouge/version.rb +1 -1
- metadata +3 -3
data/lib/rouge/lexers/php.rb
CHANGED
@@ -66,7 +66,7 @@ module Rouge
|
|
66
66
|
|
67
67
|
id = /[\p{L}_][\p{L}\p{N}_]*/
|
68
68
|
ns = /(?:#{id}\\)+/
|
69
|
-
id_with_ns =
|
69
|
+
id_with_ns = /\\?(?:#{ns})?#{id}/
|
70
70
|
|
71
71
|
start do
|
72
72
|
case @start_inline
|
@@ -273,7 +273,7 @@ module Rouge
|
|
273
273
|
state :in_catch do
|
274
274
|
rule %r/\(/, Punctuation
|
275
275
|
rule %r/\|/, Operator
|
276
|
-
rule
|
276
|
+
rule id_with_ns, Name::Class
|
277
277
|
mixin :escape
|
278
278
|
mixin :whitespace
|
279
279
|
mixin :return
|
data/lib/rouge/lexers/python.rb
CHANGED
@@ -80,6 +80,8 @@ module Rouge
|
|
80
80
|
groups Punctuation, Text, Str::Doc
|
81
81
|
end
|
82
82
|
|
83
|
+
rule %r/\.\.\.\B$/, Name::Builtin::Pseudo
|
84
|
+
|
83
85
|
rule %r/[^\S\n]+/, Text
|
84
86
|
rule %r(#(.*)?\n?), Comment::Single
|
85
87
|
rule %r/[\[\]{}:(),;.]/, Punctuation
|
@@ -88,6 +90,8 @@ module Rouge
|
|
88
90
|
|
89
91
|
rule %r/@#{dotted_identifier}/i, Name::Decorator
|
90
92
|
|
93
|
+
rule %r/(>>>|\.\.\.)\B/, Generic::Prompt
|
94
|
+
|
91
95
|
rule %r/(in|is|and|or|not)\b/, Operator::Word
|
92
96
|
rule %r/(<<|>>|\/\/|\*\*)=?/, Operator
|
93
97
|
rule %r/[-~+\/*%=<>&^|@]=?|!=/, Operator
|
@@ -120,7 +124,7 @@ module Rouge
|
|
120
124
|
# TODO: not in python 3
|
121
125
|
rule %r/`.*?`/, Str::Backtick
|
122
126
|
rule %r/([rfbu]{0,2})('''|"""|['"])/i do |m|
|
123
|
-
groups Str::Affix, Str
|
127
|
+
groups Str::Affix, Str::Heredoc
|
124
128
|
current_string.register type: m[1].downcase, delim: m[2]
|
125
129
|
push :generic_string
|
126
130
|
end
|
@@ -178,11 +182,12 @@ module Rouge
|
|
178
182
|
end
|
179
183
|
|
180
184
|
state :generic_string do
|
181
|
-
rule %r
|
185
|
+
rule %r/>>>|\.\.\./, Generic::Prompt, :doctest
|
186
|
+
rule %r/[^'"\\{]+?/, Str
|
182
187
|
rule %r/{{/, Str
|
183
188
|
|
184
189
|
rule %r/'''|"""|['"]/ do |m|
|
185
|
-
token Str
|
190
|
+
token Str::Heredoc
|
186
191
|
if current_string.delim? m[0]
|
187
192
|
current_string.remove
|
188
193
|
pop!
|
@@ -220,6 +225,17 @@ module Rouge
|
|
220
225
|
rule %r/\\./, Str, :pop!
|
221
226
|
end
|
222
227
|
|
228
|
+
state :doctest do
|
229
|
+
rule %r/\n\n/, Text, :pop!
|
230
|
+
|
231
|
+
rule %r/'''|"""/ do
|
232
|
+
token Str::Heredoc
|
233
|
+
pop!(2) if in_state?(:generic_string) # pop :doctest and :generic_string
|
234
|
+
end
|
235
|
+
|
236
|
+
mixin :root
|
237
|
+
end
|
238
|
+
|
223
239
|
state :generic_interpol do
|
224
240
|
rule %r/[^{}!:]+/ do |m|
|
225
241
|
recurse m[0]
|
data/lib/rouge/lexers/ruby.rb
CHANGED
@@ -42,7 +42,7 @@ module Rouge
|
|
42
42
|
rule %r/%([rqswQWxiI])?([^\w\s])/ do |m|
|
43
43
|
open = Regexp.escape(m[2])
|
44
44
|
close = Regexp.escape(delimiter_map[m[2]] || m[2])
|
45
|
-
interp = /[rQWxI]/ === m[1]
|
45
|
+
interp = /[rQWxI]/ === m[1] || !m[1]
|
46
46
|
toktype = Str::Other
|
47
47
|
|
48
48
|
puts " open: #{open.inspect}" if @debug
|
@@ -188,6 +188,7 @@ module Rouge
|
|
188
188
|
|
189
189
|
rule %r/(?:#{keywords.join('|')})(?=\W|$)/, Keyword, :expr_start
|
190
190
|
rule %r/(?:#{keywords_pseudo.join('|')})\b/, Keyword::Pseudo, :expr_start
|
191
|
+
rule %r/(not|and|or)\b/, Operator::Word, :expr_start
|
191
192
|
|
192
193
|
rule %r(
|
193
194
|
(module)
|
data/lib/rouge/lexers/rust.rb
CHANGED
@@ -35,17 +35,18 @@ module Rouge
|
|
35
35
|
def self.builtins
|
36
36
|
@builtins ||= Set.new %w(
|
37
37
|
Add BitAnd BitOr BitXor bool c_char c_double c_float char
|
38
|
-
c_int clock_t c_long c_longlong
|
38
|
+
c_int clock_t c_long c_longlong Copy c_schar c_short
|
39
39
|
c_uchar c_uint c_ulong c_ulonglong c_ushort c_void dev_t DIR
|
40
|
-
dirent Div
|
41
|
-
i16 i32 i64 i8 isize Index ino_t int intptr_t
|
42
|
-
Neg
|
43
|
-
|
40
|
+
dirent Div Eq Err f32 f64 FILE float fpos_t
|
41
|
+
i16 i32 i64 i8 isize Index ino_t int intptr_t mode_t Mul
|
42
|
+
Neg None off_t Ok Option Ord Owned pid_t ptrdiff_t
|
43
|
+
Send Shl Shr size_t Some ssize_t str Sub time_t
|
44
44
|
u16 u32 u64 u8 usize uint uintptr_t
|
45
|
-
Box Vec String
|
45
|
+
Box Vec String Rc Arc
|
46
46
|
u128 i128 Result Sync Pin Unpin Sized Drop drop Fn FnMut FnOnce
|
47
47
|
Clone PartialEq PartialOrd AsMut AsRef From Into Default
|
48
48
|
DoubleEndedIterator ExactSizeIterator Extend IntoIterator Iterator
|
49
|
+
FromIterator ToOwned ToString TryFrom TryInto
|
49
50
|
)
|
50
51
|
end
|
51
52
|
|
data/lib/rouge/lexers/shell.rb
CHANGED
@@ -9,8 +9,11 @@ module Rouge
|
|
9
9
|
|
10
10
|
tag 'shell'
|
11
11
|
aliases 'bash', 'zsh', 'ksh', 'sh'
|
12
|
-
filenames '*.sh', '*.bash', '*.zsh', '*.ksh', '.bashrc',
|
13
|
-
'.kshrc', '.profile',
|
12
|
+
filenames '*.sh', '*.bash', '*.zsh', '*.ksh', '.bashrc',
|
13
|
+
'.kshrc', '.profile',
|
14
|
+
'.zshenv', '.zprofile', '.zshrc', '.zlogin', '.zlogout',
|
15
|
+
'zshenv', 'zprofile', 'zshrc', 'zlogin', 'zlogout',
|
16
|
+
'APKBUILD', 'PKGBUILD', '*.ebuild',
|
14
17
|
'*.eclass', '*.exheres-0', '*.exlib'
|
15
18
|
|
16
19
|
mimetypes 'application/x-sh', 'application/x-shellscript', 'text/x-sh',
|
@@ -18,6 +21,7 @@ module Rouge
|
|
18
21
|
|
19
22
|
def self.detect?(text)
|
20
23
|
return true if text.shebang?(/(ba|z|k)?sh/)
|
24
|
+
return true if text.start_with?('#compdef', '#autoload')
|
21
25
|
end
|
22
26
|
|
23
27
|
KEYWORDS = %w(
|
data/lib/rouge/lexers/twig.rb
CHANGED
@@ -16,24 +16,24 @@ module Rouge
|
|
16
16
|
mimetypes 'application/x-twig', 'text/html+twig'
|
17
17
|
|
18
18
|
def self.keywords
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
@keywords ||= %w(as do extends flush from import include use else starts
|
20
|
+
ends with without autoescape endautoescape block
|
21
|
+
endblock embed endembed filter endfilter for endfor
|
22
|
+
if endif macro endmacro sandbox endsandbox set endset
|
23
|
+
spaceless endspaceless)
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.tests
|
27
|
-
|
28
|
-
|
27
|
+
@tests ||= %w(constant defined divisibleby empty even iterable null odd
|
28
|
+
sameas)
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.pseudo_keywords
|
32
|
-
|
32
|
+
@pseudo_keywords ||= %w(true false none)
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.word_operators
|
36
|
-
|
36
|
+
@word_operators ||= %w(b-and b-or b-xor is in and or not)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/rouge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeanine Adkisson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
|
14
14
|
email:
|
@@ -543,7 +543,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
543
543
|
- !ruby/object:Gem::Version
|
544
544
|
version: '0'
|
545
545
|
requirements: []
|
546
|
-
rubygems_version: 3.
|
546
|
+
rubygems_version: 3.4.12
|
547
547
|
signing_key:
|
548
548
|
specification_version: 4
|
549
549
|
summary: A pure-ruby colorizer based on pygments
|