rouge 3.1.1 → 3.2.0

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.
@@ -20,7 +20,7 @@ module Rouge
20
20
  public static strictfp super synchronized throws transient volatile
21
21
  )
22
22
 
23
- types = %w(boolean byte char double float int long short void)
23
+ types = %w(boolean byte char double float int long short var void)
24
24
 
25
25
  id = /[a-zA-Z_][a-zA-Z0-9_]*/
26
26
 
@@ -206,6 +206,7 @@ module Rouge
206
206
 
207
207
  state :dq do
208
208
  rule /[^\\"]+/, Str::Double
209
+ rule /\\n/, Str::Escape
209
210
  rule /\\"/, Str::Escape
210
211
  rule /"/, Str::Double, :pop!
211
212
  end
@@ -15,26 +15,20 @@ module Rouge
15
15
  end
16
16
 
17
17
  BUILTINS = /\b(?:
18
- applicable | assert | convert
19
- | dlopen | dlsym | edit
20
- | eps | error | exit
21
- | finalizer | hash | im
22
- | Inf | invoke | is
23
- | isa | isequal | load
24
- | method_exists | Nan | new
25
- | ntuple | pi | promote
26
- | promote_type | realmax | realmin
27
- | sizeof | subtype | system
28
- | throw | tuple | typemax
29
- | typemin | typeof | uid
30
- | whos
18
+ true | false | missing | nothing
19
+ | Inf | Inf16 | Inf32 | Inf64
20
+ | NaN | NaN16 | NaN32 | NaN64
21
+ | stdout | stderr | stdin | devnull
22
+ | pi | π | ℯ | im
31
23
  )\b/x
32
24
 
33
25
  KEYWORDS = /\b(?:
34
26
  function | return | module | import | export
35
27
  | if | else | elseif | end | for
36
- | in | while | try | catch | super
37
- | const
28
+ | in | isa | while | try | catch
29
+ | const | local | global | using | struct
30
+ | mutable struct | abstract type | finally
31
+ | begin | do | quote | macro | for outer
38
32
  )\b/x
39
33
 
40
34
  TYPES = /\b(?:
@@ -43,14 +37,13 @@ module Rouge
43
37
  | Int32 | UInt32 | Int64
44
38
  | UInt64 | Int128 | UInt128
45
39
  | Float16 | Float32 | Float64
46
- | Bool | Inf | Inf16
47
- | Inf32 | NaN | NaN16
48
- | NaN32 | BigInt | BigFloat
49
- | Char | ASCIIString | UTF8String
50
- | UTF16String | UTF32String | AbstractString
51
- | WString | String | Regex
52
- | RegexMatch | Complex64 | Complex128
53
- | Any | Nothing | None
40
+ | Bool | BigInt | BigFloat
41
+ | Complex | ComplexF16 | ComplexF32
42
+ | ComplexF64 | Missing | Nothing
43
+ | Char | String | SubString
44
+ | Regex | RegexMatch | Any
45
+ | Type | DataType | UnionAll
46
+ | (Abstract)?(Array|Vector|Matrix|VecOrMat)
54
47
  )\b/x
55
48
 
56
49
  OPERATORS = / \+ | = | - | \* | \/
@@ -63,10 +56,11 @@ module Rouge
63
56
  | <= | ≤ | >= | ≥ | \.
64
57
  | :: | <: | -> | \? | \.\*
65
58
  | \.\^ | \.\\ | \.\/ | \\ | <
66
- | >
59
+ | > | ÷ | >: | : | ===
60
+ | !==
67
61
  /x
68
62
 
69
- PUNCTUATION = / [ \[ \] { } : \( \) , ; @ ] /x
63
+ PUNCTUATION = / [ \[ \] { } \( \) , ; @ ] /x
70
64
 
71
65
 
72
66
  state :root do
@@ -9,7 +9,7 @@ module Rouge
9
9
  desc "Kotlin Programming Language (http://kotlinlang.org)"
10
10
 
11
11
  tag 'kotlin'
12
- filenames '*.kt'
12
+ filenames '*.kt', '*.kts'
13
13
  mimetypes 'text/x-kotlin'
14
14
 
15
15
  keywords = %w(
@@ -76,7 +76,7 @@ module Rouge
76
76
  end
77
77
 
78
78
  # links and images
79
- rule /(!?\[)(#{edot}+?)(\])/ do
79
+ rule /(!?\[)(#{edot}*?)(\])/ do
80
80
  groups Punctuation, Name::Variable, Punctuation
81
81
  push :link
82
82
  end
@@ -52,17 +52,22 @@ module Rouge
52
52
  end
53
53
 
54
54
  state :string do
55
- rule /"/, Str::Double, :string_double_quoted
56
- rule /''/, Str::Double, :string_indented
55
+ rule /"/, Str::Double, :double_quoted_string
56
+ rule /''/, Str::Double, :indented_string
57
57
  end
58
58
 
59
59
  state :string_content do
60
+ rule /\\./, Str::Escape
61
+ rule /\$\$/, Str::Escape
60
62
  rule /\${/, Str::Interpol, :string_interpolated_arg
61
- mixin :escaped_sequence
62
63
  end
63
64
 
64
- state :escaped_sequence do
65
- rule /\\./, Str::Escape
65
+ state :indented_string_content do
66
+ rule /'''/, Str::Escape
67
+ rule /''\$/, Str::Escape
68
+ rule /\$\$/, Str::Escape
69
+ rule /''\\./, Str::Escape
70
+ rule /\${/, Str::Interpol, :string_interpolated_arg
66
71
  end
67
72
 
68
73
  state :string_interpolated_arg do
@@ -70,13 +75,13 @@ module Rouge
70
75
  rule /}/, Str::Interpol, :pop!
71
76
  end
72
77
 
73
- state :string_indented do
74
- mixin :string_content
78
+ state :indented_string do
79
+ mixin :indented_string_content
75
80
  rule /''/, Str::Double, :pop!
76
81
  rule /./, Str::Double
77
82
  end
78
83
 
79
- state :string_double_quoted do
84
+ state :double_quoted_string do
80
85
  mixin :string_content
81
86
  rule /"/, Str::Double, :pop!
82
87
  rule /./, Str::Double
@@ -8,7 +8,7 @@ module Rouge
8
8
  tag 'objective_c'
9
9
  title "Objective-C"
10
10
  desc 'an extension of C commonly used to write Apple software'
11
- aliases 'objc'
11
+ aliases 'objc', 'obj-c', 'obj_c'
12
12
  filenames '*.m', '*.h'
13
13
 
14
14
  mimetypes 'text/x-objective_c', 'application/x-objective_c'
@@ -9,7 +9,7 @@ module Rouge
9
9
  tag 'perl'
10
10
  aliases 'pl'
11
11
 
12
- filenames '*.pl', '*.pm'
12
+ filenames '*.pl', '*.pm', '*.t'
13
13
  mimetypes 'text/x-perl', 'application/x-perl'
14
14
 
15
15
  def self.detect?(text)
@@ -85,8 +85,8 @@ module Rouge
85
85
  groups Str::Symbol, Text, Punctuation
86
86
  end
87
87
 
88
- rule /\(/, Punctuation, :command
89
- rule /\)/, Punctuation
88
+ rule /\(|\[/, Punctuation, :command
89
+ rule /\)|\]/, Punctuation
90
90
 
91
91
  rule id, Name::Variable
92
92
  end
@@ -0,0 +1,104 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ load_lexer 'hcl.rb'
6
+
7
+ class Terraform < Hcl
8
+ title "Terraform"
9
+ desc "Terraform HCL Interpolations"
10
+
11
+ tag 'terraform'
12
+ aliases 'tf'
13
+ filenames '*.tf'
14
+
15
+ def self.keywords
16
+ @keywords ||= Set.new %w(
17
+ terraform module provider variable resource data provisioner output
18
+ )
19
+ end
20
+
21
+ def self.declarations
22
+ @declarations ||= Set.new %w(
23
+ var local
24
+ )
25
+ end
26
+
27
+ def self.reserved
28
+ @reserved ||= Set.new %w()
29
+ end
30
+
31
+ def self.constants
32
+ @constants ||= Set.new %w(true false null)
33
+ end
34
+
35
+ def self.builtins
36
+ @builtins ||= %w()
37
+ end
38
+
39
+ state :strings do
40
+ rule /\\./, Str::Escape
41
+ rule /\$\{/ do
42
+ token Keyword
43
+ push :interpolation
44
+ end
45
+ end
46
+
47
+ state :dq do
48
+ rule /[^\\"\$]+/, Str::Double
49
+ mixin :strings
50
+ rule /"/, Str::Double, :pop!
51
+ end
52
+
53
+ state :sq do
54
+ rule /[^\\'\$]+/, Str::Single
55
+ mixin :strings
56
+ rule /'/, Str::Single, :pop!
57
+ end
58
+
59
+ state :heredoc do
60
+ rule /\n/, Str::Heredoc, :heredoc_nl
61
+ rule /[^$\n\$]+/, Str::Heredoc
62
+ rule /[$]/, Str::Heredoc
63
+ mixin :strings
64
+ end
65
+
66
+ state :interpolation do
67
+ rule /\}/ do
68
+ token Keyword
69
+ pop!
70
+ end
71
+
72
+ mixin :expression
73
+ end
74
+
75
+ id = /[$a-z_\-][a-z0-9_\-]*/io
76
+
77
+ state :expression do
78
+ mixin :primitives
79
+ rule /\s+/, Text
80
+
81
+ rule %r(\+\+ | -- | ~ | && | \|\| | \\(?=\n) | << | >>>? | == | != )x, Operator
82
+ rule %r([-<>+*%&|\^/!=?:]=?), Operator
83
+ rule /[(\[,]/, Punctuation
84
+ rule /[)\].]/, Punctuation
85
+
86
+ rule id do |m|
87
+ if self.class.keywords.include? m[0]
88
+ token Keyword
89
+ elsif self.class.declarations.include? m[0]
90
+ token Keyword::Declaration
91
+ elsif self.class.reserved.include? m[0]
92
+ token Keyword::Reserved
93
+ elsif self.class.constants.include? m[0]
94
+ token Keyword::Constant
95
+ elsif self.class.builtins.include? m[0]
96
+ token Name::Builtin
97
+ else
98
+ token Name::Other
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -27,7 +27,7 @@ module Rouge
27
27
  @keywords_type ||= Set.new %w(
28
28
  bit bit_vector boolean boolean_vector character integer integer_vector natural positive
29
29
  real real_vector severity_level signed std_logic std_logic_vector std_ulogic
30
- std_ulogic_vector string unsigned time time__vector
30
+ std_ulogic_vector string unsigned time time_vector
31
31
  )
32
32
  end
33
33
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rouge
4
4
  def self.version
5
- "3.1.1"
5
+ "3.2.0"
6
6
  end
7
7
  end
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: 3.1.1
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeanine Adkisson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-31 00:00:00.000000000 Z
11
+ date: 2018-08-02 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:
@@ -42,6 +42,7 @@ files:
42
42
  - lib/rouge/demos/console
43
43
  - lib/rouge/demos/coq
44
44
  - lib/rouge/demos/cpp
45
+ - lib/rouge/demos/crystal
45
46
  - lib/rouge/demos/csharp
46
47
  - lib/rouge/demos/css
47
48
  - lib/rouge/demos/d
@@ -68,6 +69,7 @@ files:
68
69
  - lib/rouge/demos/haml
69
70
  - lib/rouge/demos/handlebars
70
71
  - lib/rouge/demos/haskell
72
+ - lib/rouge/demos/hcl
71
73
  - lib/rouge/demos/html
72
74
  - lib/rouge/demos/http
73
75
  - lib/rouge/demos/hylang
@@ -139,6 +141,7 @@ files:
139
141
  - lib/rouge/demos/swift
140
142
  - lib/rouge/demos/tap
141
143
  - lib/rouge/demos/tcl
144
+ - lib/rouge/demos/terraform
142
145
  - lib/rouge/demos/tex
143
146
  - lib/rouge/demos/toml
144
147
  - lib/rouge/demos/tsx
@@ -193,6 +196,7 @@ files:
193
196
  - lib/rouge/lexers/console.rb
194
197
  - lib/rouge/lexers/coq.rb
195
198
  - lib/rouge/lexers/cpp.rb
199
+ - lib/rouge/lexers/crystal.rb
196
200
  - lib/rouge/lexers/csharp.rb
197
201
  - lib/rouge/lexers/css.rb
198
202
  - lib/rouge/lexers/d.rb
@@ -220,6 +224,7 @@ files:
220
224
  - lib/rouge/lexers/haml.rb
221
225
  - lib/rouge/lexers/handlebars.rb
222
226
  - lib/rouge/lexers/haskell.rb
227
+ - lib/rouge/lexers/hcl.rb
223
228
  - lib/rouge/lexers/html.rb
224
229
  - lib/rouge/lexers/http.rb
225
230
  - lib/rouge/lexers/hylang.rb
@@ -295,6 +300,7 @@ files:
295
300
  - lib/rouge/lexers/swift.rb
296
301
  - lib/rouge/lexers/tap.rb
297
302
  - lib/rouge/lexers/tcl.rb
303
+ - lib/rouge/lexers/terraform.rb
298
304
  - lib/rouge/lexers/tex.rb
299
305
  - lib/rouge/lexers/toml.rb
300
306
  - lib/rouge/lexers/tsx.rb
@@ -356,7 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
356
362
  version: '0'
357
363
  requirements: []
358
364
  rubyforge_project: rouge
359
- rubygems_version: 2.6.13
365
+ rubygems_version: 2.4.5.1
360
366
  signing_key:
361
367
  specification_version: 4
362
368
  summary: A pure-ruby colorizer based on pygments