rouge 3.1.1 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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