rouge 3.10.0 → 3.11.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.
- checksums.yaml +4 -4
- data/lib/rouge/demos/apex +9 -0
- data/lib/rouge/demos/csvs +8 -0
- data/lib/rouge/demos/liquid +0 -1
- data/lib/rouge/demos/robot_framework +27 -0
- data/lib/rouge/guessers/disambiguation.rb +5 -0
- data/lib/rouge/lexers/apex.rb +126 -0
- data/lib/rouge/lexers/coq.rb +12 -9
- data/lib/rouge/lexers/csvs.rb +44 -0
- data/lib/rouge/lexers/json.rb +1 -1
- data/lib/rouge/lexers/kotlin.rb +21 -28
- data/lib/rouge/lexers/liquid.rb +82 -108
- data/lib/rouge/lexers/robot_framework.rb +249 -0
- data/lib/rouge/lexers/shell.rb +5 -3
- data/lib/rouge/lexers/swift.rb +1 -1
- data/lib/rouge/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af9642af1b39983bc72b54801f0986c921189c8f7cc8278d12eeae97c7902834
|
4
|
+
data.tar.gz: 57d9ff3da43e6af6786dea87123eaf1ae4c4b0eb02deaf080545bf9d9688c402
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa061de07871482934ed94381116ea44bdaafce68dea9a19a7c9852c89f32905d825a19abaa37d5aa6a43299c3b077b1658cc3e9dd6aa1ba0f814edf5d788e28
|
7
|
+
data.tar.gz: 55c77122c00af3eb4076e140a55a1d42a1ba1d3f2bc8c6c831f76feaf6e66636dc88f2ef17e07851711db91fb76868b5129c337f57ac94c913837e1d38f6fb1b
|
data/lib/rouge/demos/liquid
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
*** Settings ***
|
2
|
+
Document Example taken from http://robotframework.org/
|
3
|
+
Suite Setup Open Browser To Login Page
|
4
|
+
Suite Teardown Close Browser
|
5
|
+
Test Setup Go To Login Page
|
6
|
+
Test Template Login With Invalid Credentials Should Fail
|
7
|
+
Resource resource.txt
|
8
|
+
|
9
|
+
*** Test Cases *** User Name Password
|
10
|
+
Invalid Username invalid ${VALID PASSWORD}
|
11
|
+
Invalid Password ${VALID USER} invalid
|
12
|
+
Invalid Username And Password invalid whatever
|
13
|
+
Empty Username ${EMPTY} ${VALID PASSWORD}
|
14
|
+
Empty Password ${VALID USER} ${EMPTY}
|
15
|
+
Empty Username And Password ${EMPTY} ${EMPTY}
|
16
|
+
|
17
|
+
*** Keywords ***
|
18
|
+
Login With Invalid Credentials Should Fail
|
19
|
+
[Arguments] ${username} ${password}
|
20
|
+
Input Username ${username}
|
21
|
+
Input Password ${password}
|
22
|
+
Submit Credentials
|
23
|
+
Login Should Have Failed
|
24
|
+
|
25
|
+
Login Should Have Failed
|
26
|
+
Location Should Be ${ERROR URL}
|
27
|
+
Title Should Be Error Page
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class Apex < RegexLexer
|
7
|
+
title "Apex"
|
8
|
+
desc "The Apex programming language (provided by salesforce)"
|
9
|
+
|
10
|
+
tag 'apex'
|
11
|
+
filenames '*.cls'
|
12
|
+
mimetypes 'text/x-apex'
|
13
|
+
|
14
|
+
def self.keywords
|
15
|
+
@keywords ||= Set.new %w(
|
16
|
+
assert break case catch continue default do else finally for if goto
|
17
|
+
instanceof new return switch this throw try while insert update
|
18
|
+
delete
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.declarations
|
23
|
+
@declarations ||= Set.new %w(
|
24
|
+
abstract const enum extends final implements native private protected
|
25
|
+
public static super synchronized throws transient volatile with
|
26
|
+
sharing without inherited virtual global testmethod
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.soql
|
31
|
+
@soql ||= Set.new %w(
|
32
|
+
SELECT FROM WHERE UPDATE LIKE TYPEOF END USING SCOPE WITH DATA
|
33
|
+
CATEGORY GROUP BY ROLLUP CUBE HAVING ORDER BY ASC DESC NULLS FIRST
|
34
|
+
LAST LIMIT OFFSET FOR VIEW REFERENCE UPDATE TRACKING VIEWSTAT OR AND
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.types
|
39
|
+
@types ||= Set.new %w(
|
40
|
+
String boolean byte char double float int long short var void
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.constants
|
45
|
+
@constants ||= Set.new %w(true false null)
|
46
|
+
end
|
47
|
+
|
48
|
+
id = /[a-z_][a-z0-9_]*/i
|
49
|
+
|
50
|
+
state :root do
|
51
|
+
rule %r/\s+/m, Text
|
52
|
+
|
53
|
+
rule %r(//.*?$), Comment::Single
|
54
|
+
rule %r(/\*.*?\*/)m, Comment::Multiline
|
55
|
+
|
56
|
+
rule %r/(?:class|interface)\b/, Keyword::Declaration, :class
|
57
|
+
rule %r/import\b/, Keyword::Namespace, :import
|
58
|
+
|
59
|
+
rule %r/([@$.]?)(#{id})([:(]?)/io do |m|
|
60
|
+
if self.class.keywords.include? m[0].downcase
|
61
|
+
token Keyword
|
62
|
+
elsif self.class.soql.include? m[0].upcase
|
63
|
+
token Keyword
|
64
|
+
elsif self.class.declarations.include? m[0].downcase
|
65
|
+
token Keyword::Declaration
|
66
|
+
elsif self.class.types.include? m[0].downcase
|
67
|
+
token Keyword::Type
|
68
|
+
elsif self.class.constants.include? m[0].downcase
|
69
|
+
token Keyword::Constant
|
70
|
+
elsif 'package'.casecmp m[0]
|
71
|
+
token Keyword::Namespace
|
72
|
+
elsif m[1] == "@"
|
73
|
+
token Name::Decorator
|
74
|
+
elsif m[3] == ":"
|
75
|
+
groups Operator, Name::Label, Punctuation
|
76
|
+
elsif m[3] == "("
|
77
|
+
groups Operator, Name::Function, Punctuation
|
78
|
+
elsif m[1] == "."
|
79
|
+
groups Operator, Name::Property, Punctuation
|
80
|
+
else
|
81
|
+
token Name
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
rule %r/"/, Str::Double, :dq
|
86
|
+
rule %r/'/, Str::Single, :sq
|
87
|
+
|
88
|
+
digit = /[0-9]_+[0-9]|[0-9]/
|
89
|
+
rule %r/#{digit}+\.#{digit}+([eE]#{digit}+)?[fd]?/, Num::Float
|
90
|
+
rule %r/0b(?:[01]_+[01]|[01])+/i, Num::Bin
|
91
|
+
rule %r/0x(?:\h_+\h|\h)+/i, Num::Hex
|
92
|
+
rule %r/0(?:[0-7]_+[0-7]|[0-7])+/, Num::Oct
|
93
|
+
rule %r/#{digit}+L?/, Num::Integer
|
94
|
+
|
95
|
+
rule %r/[-+\/*~^!%&<>|=.?]/, Operator
|
96
|
+
rule %r/[\[\](){},:;]/, Punctuation;
|
97
|
+
end
|
98
|
+
|
99
|
+
state :class do
|
100
|
+
rule %r/\s+/m, Text
|
101
|
+
rule id, Name::Class, :pop!
|
102
|
+
end
|
103
|
+
|
104
|
+
state :import do
|
105
|
+
rule %r/\s+/m, Text
|
106
|
+
rule %r/[a-z0-9_.]+\*?/i, Name::Namespace, :pop!
|
107
|
+
end
|
108
|
+
|
109
|
+
state :escape do
|
110
|
+
rule %r/\\[btnfr\\"']/, Str::Escape
|
111
|
+
end
|
112
|
+
|
113
|
+
state :dq do
|
114
|
+
mixin :escape
|
115
|
+
rule %r/[^\\"]+/, Str::Double
|
116
|
+
rule %r/"/, Str::Double, :pop!
|
117
|
+
end
|
118
|
+
|
119
|
+
state :sq do
|
120
|
+
mixin :escape
|
121
|
+
rule %r/[^\\']+/, Str::Double
|
122
|
+
rule %r/'/, Str::Double, :pop!
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
data/lib/rouge/lexers/coq.rb
CHANGED
@@ -58,7 +58,7 @@ module Rouge
|
|
58
58
|
|
59
59
|
def self.keyopts
|
60
60
|
@keyopts ||= Set.new %w(
|
61
|
-
:= => -> /\\ \\/ _ ; :> :
|
61
|
+
:= => -> /\\ \\/ _ ; :> : ⇒ → ↔ ⇔ ≔ ≡ ∀ ∃ ∧ ∨ ¬ ⊤ ⊥ ⊢ ⊨ ∈
|
62
62
|
)
|
63
63
|
end
|
64
64
|
|
@@ -115,14 +115,6 @@ module Rouge
|
|
115
115
|
end
|
116
116
|
rule %r(/\\), Operator
|
117
117
|
rule %r/\\\//, Operator
|
118
|
-
rule operator do |m|
|
119
|
-
match = m[0]
|
120
|
-
if self.class.keyopts.include? match
|
121
|
-
token Punctuation
|
122
|
-
else
|
123
|
-
token Operator
|
124
|
-
end
|
125
|
-
end
|
126
118
|
|
127
119
|
rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float
|
128
120
|
rule %r/\d[\d_]*/, Num::Integer
|
@@ -131,6 +123,17 @@ module Rouge
|
|
131
123
|
rule %r/'/, Keyword
|
132
124
|
rule %r/"/, Str::Double, :string
|
133
125
|
rule %r/[~?]#{id}/, Name::Variable
|
126
|
+
|
127
|
+
rule %r/./ do |m|
|
128
|
+
match = m[0]
|
129
|
+
if self.class.keyopts.include? match
|
130
|
+
token Punctuation
|
131
|
+
elsif match =~ operator
|
132
|
+
token Operator
|
133
|
+
else
|
134
|
+
token Error
|
135
|
+
end
|
136
|
+
end
|
134
137
|
end
|
135
138
|
|
136
139
|
state :comment do
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class CSVS < RegexLexer
|
7
|
+
tag 'csvs'
|
8
|
+
title "csvs"
|
9
|
+
desc 'The CSV Schema Language (digital-preservation.github.io)'
|
10
|
+
filenames '*.csvs'
|
11
|
+
|
12
|
+
state :root do
|
13
|
+
rule %r/\s+/m, Text
|
14
|
+
|
15
|
+
rule %r(//[\S\t ]*), Comment::Single
|
16
|
+
rule %r(/\*[^*]*\*/)m, Comment::Multiline
|
17
|
+
|
18
|
+
rule %r/(version)( )(\d+\.\d+)/ do
|
19
|
+
groups Keyword, Text::Whitespace, Num::Float
|
20
|
+
end
|
21
|
+
|
22
|
+
rule %r/T?\d{2}:\d{2}:\d{2}(\.\d{5})?(Z|(?:[-+]\d{2}:\d{2}))?/, Literal::Date
|
23
|
+
rule %r/\d{4}-\d{2}-\d{2}/, Literal::Date
|
24
|
+
rule %r/\d{2}\/\d{2}\/\d{4}/, Literal::Date
|
25
|
+
|
26
|
+
rule %r((\d+[.]?\d*|\d*[.]\d+)(e[+-]?[0-9]+)?)i, Num::Float
|
27
|
+
rule %r/\d+/, Num::Integer
|
28
|
+
|
29
|
+
rule %r/@\w+/, Keyword::Pseudo
|
30
|
+
|
31
|
+
rule %r/[-.\w]+:/, Name::Variable
|
32
|
+
rule %r/^"[^"]+"/, Name::Variable
|
33
|
+
rule %r/\$([-.\w]+|("[^"]+"))\/?/, Name::Variable
|
34
|
+
|
35
|
+
rule %r/[A-Z]+/i, Keyword
|
36
|
+
|
37
|
+
rule %r/"[^"]*"/, Str::Double
|
38
|
+
rule %r/'[^\r\n\f']'/, Str::Char
|
39
|
+
|
40
|
+
rule %r/[,()*]/, Punctuation
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/rouge/lexers/json.rb
CHANGED
data/lib/rouge/lexers/kotlin.rb
CHANGED
@@ -24,19 +24,12 @@ module Rouge
|
|
24
24
|
while yield
|
25
25
|
)
|
26
26
|
|
27
|
-
|
28
|
-
name_backtick = %r'#{name}|`#{name}`'
|
27
|
+
name_chars = %r'[-_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}\p{Nd}\p{Pc}\p{Cf}\p{Mn}\p{Mc}]*'
|
29
28
|
|
30
|
-
|
29
|
+
class_name = %r'`?[\p{Lu}]#{name_chars}`?'
|
30
|
+
name = %r'`?[_\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Nl}]#{name_chars}`?'
|
31
31
|
|
32
32
|
state :root do
|
33
|
-
rule %r'(\))(\s*)(:)(\s+)(#{name_backtick})(<)' do
|
34
|
-
groups Punctuation, Text, Punctuation, Text, Name::Class, Punctuation
|
35
|
-
push :generic_parameters
|
36
|
-
end
|
37
|
-
rule %r'(\))(\s*)(:)(\s+)(#{name_backtick})' do
|
38
|
-
groups Punctuation, Text, Punctuation, Text, Name::Class
|
39
|
-
end
|
40
33
|
rule %r'\b(companion)(\s+)(object)\b' do
|
41
34
|
groups Keyword, Text, Keyword
|
42
35
|
end
|
@@ -48,13 +41,6 @@ module Rouge
|
|
48
41
|
groups Keyword, Text
|
49
42
|
push :function
|
50
43
|
end
|
51
|
-
rule %r'(#{name_backtick})(:)(\s+)(#{name_backtick})(<)' do
|
52
|
-
groups Name::Variable, Punctuation, Text, Name::Class, Punctuation
|
53
|
-
push :generic_parameters
|
54
|
-
end
|
55
|
-
rule %r'(#{name_backtick})(:)(\s+)(#{name_backtick})' do
|
56
|
-
groups Name::Variable, Punctuation, Text, Name::Class
|
57
|
-
end
|
58
44
|
rule %r'\b(package|import)(\s+)' do
|
59
45
|
groups Keyword, Text
|
60
46
|
push :package
|
@@ -67,8 +53,8 @@ module Rouge
|
|
67
53
|
groups Keyword::Declaration, Text
|
68
54
|
push :property
|
69
55
|
end
|
70
|
-
rule %r
|
71
|
-
rule %r
|
56
|
+
rule %r'\bfun\b', Keyword
|
57
|
+
rule %r'\b(?:#{keywords.join('|')})\b', Keyword
|
72
58
|
rule %r'^\s*\[.*?\]', Name::Attribute
|
73
59
|
rule %r'[^\S\n]+', Text
|
74
60
|
rule %r'\\\n', Text # line continuation
|
@@ -85,43 +71,50 @@ module Rouge
|
|
85
71
|
rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str
|
86
72
|
rule %r"'\\.'|'[^\\]'", Str::Char
|
87
73
|
rule %r"[0-9](\.[0-9]+)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?", Num
|
88
|
-
rule %r
|
89
|
-
rule
|
74
|
+
rule %r'(@#{class_name})', Name::Decorator
|
75
|
+
rule %r'(#{class_name})(<)' do
|
76
|
+
groups Name::Class, Punctuation
|
77
|
+
push :generic_parameters
|
78
|
+
end
|
79
|
+
rule class_name, Name::Class
|
80
|
+
rule %r'(#{name})(?=\s*[({])', Name::Function
|
81
|
+
rule name, Name
|
90
82
|
end
|
91
83
|
|
92
84
|
state :package do
|
93
|
-
rule %r
|
85
|
+
rule %r'\S+', Name::Namespace, :pop!
|
94
86
|
end
|
95
87
|
|
96
88
|
state :class do
|
97
|
-
rule
|
89
|
+
rule class_name, Name::Class, :pop!
|
98
90
|
end
|
99
91
|
|
100
92
|
state :function do
|
101
93
|
rule %r'(<)', Punctuation, :generic_parameters
|
102
94
|
rule %r'(\s+)', Text
|
103
|
-
rule %r'(#{
|
95
|
+
rule %r'(#{class_name})(\.)' do
|
104
96
|
groups Name::Class, Punctuation
|
105
97
|
end
|
106
|
-
rule
|
98
|
+
rule name, Name::Function, :pop!
|
107
99
|
end
|
108
100
|
|
109
101
|
state :generic_parameters do
|
110
|
-
rule
|
102
|
+
rule class_name, Name::Class
|
103
|
+
rule %r'(<)', Punctuation, :generic_parameters
|
111
104
|
rule %r'(,)', Punctuation
|
112
105
|
rule %r'(\s+)', Text
|
113
106
|
rule %r'(>)', Punctuation, :pop!
|
114
107
|
end
|
115
108
|
|
116
109
|
state :property do
|
117
|
-
rule
|
110
|
+
rule name, Name::Property, :pop!
|
118
111
|
end
|
119
112
|
|
120
113
|
state :destructure do
|
121
114
|
rule %r'(,)', Punctuation
|
122
115
|
rule %r'(\))', Punctuation, :pop!
|
123
116
|
rule %r'(\s+)', Text
|
124
|
-
rule
|
117
|
+
rule name, Name::Property
|
125
118
|
end
|
126
119
|
|
127
120
|
state :comment do
|
data/lib/rouge/lexers/liquid.rb
CHANGED
@@ -12,12 +12,12 @@ module Rouge
|
|
12
12
|
state :root do
|
13
13
|
rule %r/[^\{]+/, Text
|
14
14
|
|
15
|
-
rule %r/(\{
|
15
|
+
rule %r/(\{%-?)(\s*)/ do
|
16
16
|
groups Punctuation, Text::Whitespace
|
17
17
|
push :tag_or_block
|
18
18
|
end
|
19
19
|
|
20
|
-
rule %r/(\{\{)(\s*)/ do
|
20
|
+
rule %r/(\{\{-?)(\s*)/ do
|
21
21
|
groups Punctuation, Text::Whitespace
|
22
22
|
push :output
|
23
23
|
end
|
@@ -27,78 +27,70 @@ module Rouge
|
|
27
27
|
|
28
28
|
state :tag_or_block do
|
29
29
|
# builtin logic blocks
|
30
|
-
rule %r/(if|unless|
|
30
|
+
rule %r/(if|elsif|unless|case)\b/, Keyword::Reserved, :condition
|
31
|
+
rule %r/(when)\b/, Keyword::Reserved, :when
|
31
32
|
|
32
|
-
rule %r/(
|
33
|
-
groups Keyword::Reserved, Text::Whitespace
|
34
|
-
push :when
|
35
|
-
end
|
36
|
-
|
37
|
-
rule %r/(else)(\s*)(%\})/ do
|
33
|
+
rule %r/(else)(\s*)(-?%\})/ do
|
38
34
|
groups Keyword::Reserved, Text::Whitespace, Punctuation
|
39
35
|
pop!
|
40
36
|
end
|
41
37
|
|
42
38
|
# other builtin blocks
|
43
|
-
rule %r/(capture)(\s+)([^\s%]+)(\s*)(
|
44
|
-
groups Name::Tag, Text::Whitespace, Name::
|
39
|
+
rule %r/(capture|(?:in|de)crement)(\s+)([^\s%]+)(\s*)(-?%\})/ do
|
40
|
+
groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace, Punctuation
|
45
41
|
pop!
|
46
42
|
end
|
47
43
|
|
48
|
-
rule %r/(comment)(\s*)(
|
44
|
+
rule %r/(comment)(\s*)(-?%\})/ do
|
49
45
|
groups Name::Tag, Text::Whitespace, Punctuation
|
50
46
|
push :comment
|
51
47
|
end
|
52
48
|
|
53
|
-
rule %r/(raw)(\s*)(
|
49
|
+
rule %r/(raw)(\s*)(-?%\})/ do
|
54
50
|
groups Name::Tag, Text::Whitespace, Punctuation
|
55
51
|
push :raw
|
56
52
|
end
|
57
53
|
|
58
|
-
rule %r/assign/, Name::Tag, :assign
|
59
|
-
rule %r/include/, Name::Tag, :include
|
60
|
-
|
61
54
|
# end of block
|
62
|
-
rule %r/(end(?:
|
55
|
+
rule %r/(end(?:if|unless|case))(\s*)(-?%\})/ do
|
63
56
|
groups Keyword::Reserved, Text::Whitespace, Punctuation
|
64
57
|
pop!
|
65
58
|
end
|
66
59
|
|
67
|
-
rule %r/(end(?:[^\s%]+))(\s*)(
|
60
|
+
rule %r/(end(?:[^\s%]+))(\s*)(-?%\})/ do
|
68
61
|
groups Name::Tag, Text::Whitespace, Punctuation
|
69
62
|
pop!
|
70
63
|
end
|
71
64
|
|
72
65
|
# builtin tags
|
73
|
-
rule %r/(
|
74
|
-
|
75
|
-
token Text::Whitespace, m[2]
|
66
|
+
rule %r/(assign|echo)\b/, Name::Tag, :assign
|
67
|
+
rule %r/(include|render)\b/, Name::Tag, :include
|
76
68
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
69
|
+
rule %r/(cycle)(\s+)(?:([^\s:]*)(\s*)(:))?(\s*)/ do |m|
|
70
|
+
token_class = case m[3]
|
71
|
+
when %r/'[^']*'/ then Str::Single
|
72
|
+
when %r/"[^"]*"/ then Str::Double
|
73
|
+
else
|
74
|
+
Name::Attribute
|
75
|
+
end
|
84
76
|
|
85
|
-
|
86
|
-
|
77
|
+
groups Name::Tag, Text::Whitespace, token_class,
|
78
|
+
Text::Whitespace, Punctuation, Text::Whitespace
|
87
79
|
|
88
80
|
push :variable_tag_markup
|
89
81
|
end
|
90
82
|
|
91
83
|
# iteration
|
92
84
|
rule %r/
|
93
|
-
(for)(\s+)
|
85
|
+
(for|tablerow)(\s+)
|
94
86
|
([\w-]+)(\s+)
|
95
87
|
(in)(\s+)
|
96
88
|
(
|
97
|
-
(?: [^\s
|
89
|
+
(?: [^\s%,\|'"] | (?:"[^"]*"|'[^']*') )+
|
98
90
|
)(\s*)
|
99
91
|
/x do |m|
|
100
92
|
groups Name::Tag, Text::Whitespace, Name::Variable, Text::Whitespace,
|
101
|
-
|
93
|
+
Name::Tag, Text::Whitespace
|
102
94
|
|
103
95
|
token_class = case m[7]
|
104
96
|
when %r/'[^']*'/ then Str::Single
|
@@ -119,105 +111,76 @@ module Rouge
|
|
119
111
|
end
|
120
112
|
|
121
113
|
state :output do
|
122
|
-
|
123
|
-
|
114
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s}\|:]*)/ do
|
115
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
116
|
+
push :filters
|
117
|
+
end
|
124
118
|
|
125
|
-
|
126
|
-
|
119
|
+
mixin :end_of_tag
|
120
|
+
mixin :generic
|
127
121
|
end
|
128
122
|
|
129
123
|
state :filters do
|
130
|
-
|
131
|
-
|
132
|
-
rule(/\}\}/) { token Punctuation; reset_stack }
|
133
|
-
|
134
|
-
rule %r/([^\s\|:]+)(:?)(\s*)/ do
|
135
|
-
groups Name::Function, Punctuation, Text::Whitespace
|
136
|
-
push :filter_markup
|
124
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s%}\|:]*)/ do
|
125
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
137
126
|
end
|
138
|
-
end
|
139
|
-
|
140
|
-
state :filter_markup do
|
141
|
-
rule %r/\|/, Punctuation, :pop!
|
142
127
|
|
143
128
|
mixin :end_of_tag
|
144
129
|
mixin :end_of_block
|
145
|
-
mixin :
|
130
|
+
mixin :variable_param_markup
|
146
131
|
end
|
147
132
|
|
148
133
|
state :condition do
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
rule %r/([=!><]=?)/, Operator
|
153
|
-
|
154
|
-
rule %r/\b(?:(!)|(not\b))/ do
|
155
|
-
groups Operator, Operator::Word
|
156
|
-
end
|
157
|
-
|
158
|
-
rule %r/(contains)/, Operator::Word
|
134
|
+
rule %r/([=!]=|[<>]=?)/, Operator
|
135
|
+
rule %r/(and|or|contains)\b/, Operator::Word
|
159
136
|
|
137
|
+
mixin :end_of_block
|
160
138
|
mixin :generic
|
161
|
-
mixin :whitespace
|
162
139
|
end
|
163
140
|
|
164
141
|
state :when do
|
165
142
|
mixin :end_of_block
|
166
|
-
mixin :whitespace
|
167
143
|
mixin :generic
|
168
144
|
end
|
169
145
|
|
170
|
-
state :operator do
|
171
|
-
rule %r/(\s*)((?:=|!|>|<)=?)(\s*)/ do
|
172
|
-
groups Text::Whitespace, Operator, Text::Whitespace
|
173
|
-
pop!
|
174
|
-
end
|
175
|
-
|
176
|
-
rule %r/(\s*)(\bcontains\b)(\s*)/ do
|
177
|
-
groups Text::Whitespace, Operator::Word, Text::Whitespace
|
178
|
-
pop!
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
146
|
state :end_of_tag do
|
183
|
-
rule(
|
147
|
+
rule(/-?\}\}/) { token Punctuation; reset_stack }
|
184
148
|
end
|
185
149
|
|
186
150
|
state :end_of_block do
|
187
|
-
rule(
|
151
|
+
rule(/-?%\}/) { token Punctuation; reset_stack }
|
188
152
|
end
|
189
153
|
|
190
154
|
# states for unknown markup
|
191
155
|
state :param_markup do
|
192
156
|
mixin :whitespace
|
157
|
+
mixin :keyword
|
193
158
|
mixin :string
|
159
|
+
mixin :number
|
194
160
|
|
195
161
|
rule %r/([^\s=:]+)(\s*)(=|:)/ do
|
196
162
|
groups Name::Attribute, Text::Whitespace, Operator
|
197
163
|
end
|
198
164
|
|
199
|
-
rule %r/
|
200
|
-
groups Punctuation, Text::Whitespace, Text, Text::Whitespace, Punctuation
|
201
|
-
end
|
202
|
-
|
203
|
-
mixin :number
|
204
|
-
mixin :keyword
|
205
|
-
|
206
|
-
rule %r/,/, Punctuation
|
165
|
+
rule %r/[,:]/, Punctuation
|
207
166
|
end
|
208
167
|
|
209
168
|
state :default_param_markup do
|
210
169
|
mixin :param_markup
|
211
|
-
|
170
|
+
|
171
|
+
rule %r/\S+/, Text
|
212
172
|
end
|
213
173
|
|
214
174
|
state :variable_param_markup do
|
215
175
|
mixin :param_markup
|
216
176
|
mixin :variable
|
217
|
-
|
177
|
+
|
178
|
+
rule %r/\S+/, Text
|
218
179
|
end
|
219
180
|
|
220
181
|
state :tag_markup do
|
182
|
+
rule %r/(reversed)\b/, Name::Attribute
|
183
|
+
|
221
184
|
mixin :end_of_block
|
222
185
|
mixin :default_param_markup
|
223
186
|
end
|
@@ -229,12 +192,14 @@ module Rouge
|
|
229
192
|
|
230
193
|
# states for different values types
|
231
194
|
state :keyword do
|
232
|
-
rule %r
|
195
|
+
rule %r/(false|true|nil)\b/, Keyword::Constant
|
233
196
|
end
|
234
197
|
|
235
198
|
state :variable do
|
236
|
-
rule %r
|
237
|
-
rule %r
|
199
|
+
rule %r/(empty|blank|forloop\.[^\s%}\|:]+)\b/, Name::Builtin
|
200
|
+
rule %r/\.(?=\w)|\[|\]/, Punctuation
|
201
|
+
rule %r/(first|last|size)\b/, Name::Function
|
202
|
+
rule %r/[a-zA-Z_][\w-]*\??/, Name::Variable
|
238
203
|
end
|
239
204
|
|
240
205
|
state :string do
|
@@ -243,21 +208,17 @@ module Rouge
|
|
243
208
|
end
|
244
209
|
|
245
210
|
state :number do
|
211
|
+
rule %r/-/, Operator
|
246
212
|
rule %r/\d+\.\d+/, Num::Float
|
247
213
|
rule %r/\d+/, Num::Integer
|
248
214
|
end
|
249
215
|
|
250
|
-
state :array_index do
|
251
|
-
rule %r/\[/, Punctuation
|
252
|
-
rule %r/\]/, Punctuation
|
253
|
-
end
|
254
|
-
|
255
216
|
state :generic do
|
256
|
-
mixin :
|
217
|
+
mixin :whitespace
|
257
218
|
mixin :keyword
|
258
219
|
mixin :string
|
259
|
-
mixin :variable
|
260
220
|
mixin :number
|
221
|
+
mixin :variable
|
261
222
|
end
|
262
223
|
|
263
224
|
state :whitespace do
|
@@ -265,18 +226,20 @@ module Rouge
|
|
265
226
|
end
|
266
227
|
|
267
228
|
state :comment do
|
268
|
-
rule %r/
|
229
|
+
rule %r/[^\{]+/, Comment
|
230
|
+
|
231
|
+
rule %r/(\{%-?)(\s*)(endcomment)(\s*)(-?%\})/ do
|
269
232
|
groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
|
270
233
|
reset_stack
|
271
234
|
end
|
272
235
|
|
273
|
-
rule %r
|
236
|
+
rule %r/\{/, Comment
|
274
237
|
end
|
275
238
|
|
276
239
|
state :raw do
|
277
240
|
rule %r/[^\{]+/, Text
|
278
241
|
|
279
|
-
rule %r/(\{
|
242
|
+
rule %r/(\{%-?)(\s*)(endraw)(\s*)(-?%\})/ do
|
280
243
|
groups Punctuation, Text::Whitespace, Name::Tag, Text::Whitespace, Punctuation
|
281
244
|
reset_stack
|
282
245
|
end
|
@@ -285,27 +248,38 @@ module Rouge
|
|
285
248
|
end
|
286
249
|
|
287
250
|
state :assign do
|
288
|
-
|
289
|
-
mixin :end_of_block
|
251
|
+
rule %r/=/, Operator
|
290
252
|
|
291
|
-
rule %r/(\s*)(
|
292
|
-
groups Text::Whitespace,
|
253
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s%\|:]*)/ do
|
254
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
255
|
+
push :filters
|
293
256
|
end
|
294
257
|
|
295
|
-
|
296
|
-
|
258
|
+
mixin :end_of_block
|
297
259
|
mixin :generic
|
298
260
|
end
|
299
261
|
|
300
262
|
state :include do
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
groups Name::Attribute, Punctuation, Name::Attribute
|
263
|
+
rule %r/(\{\{-?)(\s*)/ do
|
264
|
+
groups Punctuation, Text::Whitespace
|
265
|
+
push :output_embed
|
305
266
|
end
|
306
267
|
|
268
|
+
rule %r/(with|for)\b/, Name::Tag
|
269
|
+
rule %r/[^\s\.]+(\.[^\s\.]+)+\b/, Name::Other
|
270
|
+
|
307
271
|
mixin :variable_tag_markup
|
308
272
|
end
|
273
|
+
|
274
|
+
state :output_embed do
|
275
|
+
rule %r/(\|)(\s*)([a-zA-Z_][^\s}\|:]*)/ do
|
276
|
+
groups Punctuation, Text::Whitespace, Name::Function
|
277
|
+
end
|
278
|
+
|
279
|
+
rule %r/-?\}\}/, Punctuation, :pop!
|
280
|
+
|
281
|
+
mixin :variable_param_markup
|
282
|
+
end
|
309
283
|
end
|
310
284
|
end
|
311
285
|
end
|
@@ -0,0 +1,249 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class RobotFramework < RegexLexer
|
7
|
+
tag 'robot_framework'
|
8
|
+
aliases 'robot', 'robot-framework'
|
9
|
+
|
10
|
+
title "Robot Framework"
|
11
|
+
desc 'Robot Framework is a generic open source automation testing framework (robotframework.org)'
|
12
|
+
|
13
|
+
filenames '*.robot'
|
14
|
+
mimetypes 'text/x-robot'
|
15
|
+
|
16
|
+
def initialize(opts = {})
|
17
|
+
super(opts)
|
18
|
+
@col = 0
|
19
|
+
@next = nil
|
20
|
+
@is_template = false
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.settings_with_keywords
|
24
|
+
@settings_with_keywords ||= Set.new [
|
25
|
+
"library", "resource", "setup", "teardown", "template", "suite setup",
|
26
|
+
"suite teardown", "task setup", "task teardown", "task template",
|
27
|
+
"test setup", "test teardown", "test template", "variables"
|
28
|
+
]
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.settings_with_args
|
32
|
+
@settings_with_args ||= Set.new [
|
33
|
+
"arguments", "default tags", "documentation", "force tags",
|
34
|
+
"metadata", "return", "tags", "timeout", "task timeout",
|
35
|
+
"test timeout"
|
36
|
+
]
|
37
|
+
end
|
38
|
+
|
39
|
+
id = %r/(?:\\|[^|$@&% \t\n])+(?: (?:\\.|[^|$@&% \t\n])+)*/
|
40
|
+
bdd = %r/(?:Given|When|Then|And|But) /i
|
41
|
+
sep = %r/ +\| +|[ ]{2,}|\t+/
|
42
|
+
|
43
|
+
start do
|
44
|
+
push :prior_text
|
45
|
+
end
|
46
|
+
|
47
|
+
state :prior_text do
|
48
|
+
rule %r/^[^*].*/, Text
|
49
|
+
rule(//) { pop! }
|
50
|
+
end
|
51
|
+
|
52
|
+
# Mixins
|
53
|
+
|
54
|
+
state :whitespace do
|
55
|
+
rule %r/\s+/, Text::Whitespace
|
56
|
+
end
|
57
|
+
|
58
|
+
state :section_include do
|
59
|
+
mixin :end_section
|
60
|
+
mixin :sep
|
61
|
+
mixin :newline
|
62
|
+
end
|
63
|
+
|
64
|
+
state :end_section do
|
65
|
+
rule(/(?=^(?:\| )?\*)/) { pop! }
|
66
|
+
end
|
67
|
+
|
68
|
+
state :return do
|
69
|
+
rule(//) { pop! }
|
70
|
+
end
|
71
|
+
|
72
|
+
state :sep do
|
73
|
+
rule %r/\| /, Text::Whitespace
|
74
|
+
|
75
|
+
rule sep do
|
76
|
+
token Text::Whitespace
|
77
|
+
@col = @col + 1
|
78
|
+
if @next
|
79
|
+
push @next
|
80
|
+
elsif @is_template
|
81
|
+
push :args
|
82
|
+
elsif @col == 1
|
83
|
+
@next = :keyword
|
84
|
+
push :keyword
|
85
|
+
else
|
86
|
+
push :args
|
87
|
+
end
|
88
|
+
push :cell_start
|
89
|
+
end
|
90
|
+
|
91
|
+
rule %r/\.\.\. */ do
|
92
|
+
token Text::Whitespace
|
93
|
+
@col = @col + 1
|
94
|
+
push :args
|
95
|
+
end
|
96
|
+
|
97
|
+
rule %r/ ?\|/, Text::Whitespace
|
98
|
+
end
|
99
|
+
|
100
|
+
state :newline do
|
101
|
+
rule %r/\n/ do
|
102
|
+
token Text::Whitespace
|
103
|
+
@col = 0
|
104
|
+
@next = nil
|
105
|
+
push :cell_start
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# States
|
110
|
+
|
111
|
+
state :root do
|
112
|
+
mixin :whitespace
|
113
|
+
|
114
|
+
rule %r/^(?:\| )?\*[* ]*([A-Z]+(?: [A-Z]+)?).*/i do |m|
|
115
|
+
token Generic::Heading, m[0]
|
116
|
+
case m[1].chomp("s").downcase
|
117
|
+
when "setting" then push :section_settings
|
118
|
+
when "test case" then push :section_tests
|
119
|
+
when "task" then push :section_tasks
|
120
|
+
when "keyword" then push :section_keywords
|
121
|
+
when "variable" then push :section_variables
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
state :section_settings do
|
127
|
+
mixin :section_include
|
128
|
+
|
129
|
+
rule %r/([A-Z]+(?: [A-Z]+)?)(:?)/i do |m|
|
130
|
+
match = m[1].downcase
|
131
|
+
@next = if self.class.settings_with_keywords.include? match
|
132
|
+
:keyword
|
133
|
+
elsif self.class.settings_with_args.include? match
|
134
|
+
:args
|
135
|
+
end
|
136
|
+
groups Name::Builtin::Pseudo, Punctuation
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
state :section_tests do
|
141
|
+
mixin :section_include
|
142
|
+
|
143
|
+
rule %r/[$@&%{}]+/, Name::Label
|
144
|
+
rule %r/( )(?![ |])/, Name::Label
|
145
|
+
|
146
|
+
rule id do
|
147
|
+
@is_template = false
|
148
|
+
token Name::Label
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
state :section_tasks do
|
153
|
+
mixin :section_tests
|
154
|
+
end
|
155
|
+
|
156
|
+
state :section_keywords do
|
157
|
+
mixin :section_include
|
158
|
+
|
159
|
+
rule %r/[$@&%]\{/ do
|
160
|
+
token Name::Variable
|
161
|
+
push :var
|
162
|
+
end
|
163
|
+
|
164
|
+
rule %r/[$@&%{}]+/, Name::Label
|
165
|
+
rule %r/( )(?![ |])/, Name::Label
|
166
|
+
|
167
|
+
rule id, Name::Label
|
168
|
+
end
|
169
|
+
|
170
|
+
state :section_variables do
|
171
|
+
mixin :section_include
|
172
|
+
|
173
|
+
rule %r/[$@&%]\{/ do
|
174
|
+
token Name::Variable
|
175
|
+
@next = :args
|
176
|
+
push :var
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
state :cell_start do
|
181
|
+
rule %r/#.*/, Comment
|
182
|
+
mixin :return
|
183
|
+
end
|
184
|
+
|
185
|
+
state :keyword do
|
186
|
+
rule %r/(\[)([A-Z]+(?: [A-Z]+)?)(\])/i do |m|
|
187
|
+
groups Punctuation, Name::Builtin::Pseudo, Punctuation
|
188
|
+
|
189
|
+
match = m[2].downcase
|
190
|
+
@is_template = true if match == "template"
|
191
|
+
if self.class.settings_with_keywords.include? match
|
192
|
+
@next = :keyword
|
193
|
+
elsif self.class.settings_with_args.include? match
|
194
|
+
@next = :args
|
195
|
+
end
|
196
|
+
|
197
|
+
pop!
|
198
|
+
end
|
199
|
+
|
200
|
+
rule %r/[$@&%]\{/ do
|
201
|
+
token Name::Variable
|
202
|
+
@next = :keyword unless @next.nil?
|
203
|
+
push :var
|
204
|
+
end
|
205
|
+
|
206
|
+
rule %r/FOR/i do
|
207
|
+
token Name::Function
|
208
|
+
@next = :keyword unless @next.nil?
|
209
|
+
end
|
210
|
+
|
211
|
+
rule %r/( )(?![ |])/, Name::Function
|
212
|
+
|
213
|
+
rule bdd, Name::Builtin
|
214
|
+
rule id do
|
215
|
+
token Name::Function
|
216
|
+
@next = nil
|
217
|
+
end
|
218
|
+
|
219
|
+
mixin :return
|
220
|
+
end
|
221
|
+
|
222
|
+
state :args do
|
223
|
+
rule %r/[$@&%]\{/ do
|
224
|
+
token Name::Variable
|
225
|
+
@next = :keyword unless @next.nil?
|
226
|
+
push :var
|
227
|
+
end
|
228
|
+
|
229
|
+
rule %r/[$@&%]+/, Str
|
230
|
+
rule %r/( )(?![ |])/, Str
|
231
|
+
rule id, Str
|
232
|
+
|
233
|
+
mixin :return
|
234
|
+
end
|
235
|
+
|
236
|
+
state :var do
|
237
|
+
rule %r/(\})( )(=)/ do
|
238
|
+
groups Name::Variable, Text::Whitespace, Punctuation
|
239
|
+
pop!
|
240
|
+
end
|
241
|
+
rule %r/[$@&%]\{/, Name::Variable, :var
|
242
|
+
rule %r/[{\[]/, Name::Variable, :var
|
243
|
+
rule %r/[}\]]/, Name::Variable, :pop!
|
244
|
+
rule %r/[^$@&%{}\[\]]+/, Name::Variable
|
245
|
+
rule %r/\}\[/, Name::Variable
|
246
|
+
end
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
data/lib/rouge/lexers/shell.rb
CHANGED
@@ -9,10 +9,12 @@ module Rouge
|
|
9
9
|
|
10
10
|
tag 'shell'
|
11
11
|
aliases 'bash', 'zsh', 'ksh', 'sh'
|
12
|
-
filenames '*.sh', '*.bash', '*.zsh', '*.ksh',
|
13
|
-
'.
|
12
|
+
filenames '*.sh', '*.bash', '*.zsh', '*.ksh', '.bashrc', '.zshrc',
|
13
|
+
'.kshrc', '.profile', 'APKBUILD', 'PKGBUILD', '*.ebuild',
|
14
|
+
'*.eclass', '*.exheres-0', '*.exlib'
|
14
15
|
|
15
|
-
mimetypes 'application/x-sh', 'application/x-shellscript'
|
16
|
+
mimetypes 'application/x-sh', 'application/x-shellscript', 'text/x-sh',
|
17
|
+
'text/x-shellscript'
|
16
18
|
|
17
19
|
def self.detect?(text)
|
18
20
|
return true if text.shebang?(/(ba|z|k)?sh/)
|
data/lib/rouge/lexers/swift.rb
CHANGED
@@ -80,7 +80,7 @@ module Rouge
|
|
80
80
|
rule %r/0b[01]+(?:_[01]+)*/, Num::Bin
|
81
81
|
rule %r{[\d]+(?:_\d+)*}, Num::Integer
|
82
82
|
|
83
|
-
rule %r/@#{id}
|
83
|
+
rule %r/@#{id}/, Keyword::Declaration
|
84
84
|
|
85
85
|
rule %r/(private|internal)(\([ ]*)(\w+)([ ]*\))/ do |m|
|
86
86
|
if m[3] == 'set'
|
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: 3.
|
4
|
+
version: 3.11.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: 2019-09-
|
11
|
+
date: 2019-09-17 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:
|
@@ -27,6 +27,7 @@ files:
|
|
27
27
|
- lib/rouge/demos/actionscript
|
28
28
|
- lib/rouge/demos/ada
|
29
29
|
- lib/rouge/demos/apache
|
30
|
+
- lib/rouge/demos/apex
|
30
31
|
- lib/rouge/demos/apiblueprint
|
31
32
|
- lib/rouge/demos/applescript
|
32
33
|
- lib/rouge/demos/armasm
|
@@ -53,6 +54,7 @@ files:
|
|
53
54
|
- lib/rouge/demos/crystal
|
54
55
|
- lib/rouge/demos/csharp
|
55
56
|
- lib/rouge/demos/css
|
57
|
+
- lib/rouge/demos/csvs
|
56
58
|
- lib/rouge/demos/cuda
|
57
59
|
- lib/rouge/demos/cython
|
58
60
|
- lib/rouge/demos/d
|
@@ -153,6 +155,7 @@ files:
|
|
153
155
|
- lib/rouge/demos/r
|
154
156
|
- lib/rouge/demos/racket
|
155
157
|
- lib/rouge/demos/reasonml
|
158
|
+
- lib/rouge/demos/robot_framework
|
156
159
|
- lib/rouge/demos/ruby
|
157
160
|
- lib/rouge/demos/rust
|
158
161
|
- lib/rouge/demos/sas
|
@@ -219,6 +222,7 @@ files:
|
|
219
222
|
- lib/rouge/lexers/ada.rb
|
220
223
|
- lib/rouge/lexers/apache.rb
|
221
224
|
- lib/rouge/lexers/apache/keywords.yml
|
225
|
+
- lib/rouge/lexers/apex.rb
|
222
226
|
- lib/rouge/lexers/apiblueprint.rb
|
223
227
|
- lib/rouge/lexers/apple_script.rb
|
224
228
|
- lib/rouge/lexers/armasm.rb
|
@@ -245,6 +249,7 @@ files:
|
|
245
249
|
- lib/rouge/lexers/crystal.rb
|
246
250
|
- lib/rouge/lexers/csharp.rb
|
247
251
|
- lib/rouge/lexers/css.rb
|
252
|
+
- lib/rouge/lexers/csvs.rb
|
248
253
|
- lib/rouge/lexers/cuda.rb
|
249
254
|
- lib/rouge/lexers/cython.rb
|
250
255
|
- lib/rouge/lexers/d.rb
|
@@ -351,6 +356,7 @@ files:
|
|
351
356
|
- lib/rouge/lexers/r.rb
|
352
357
|
- lib/rouge/lexers/racket.rb
|
353
358
|
- lib/rouge/lexers/reasonml.rb
|
359
|
+
- lib/rouge/lexers/robot_framework.rb
|
354
360
|
- lib/rouge/lexers/ruby.rb
|
355
361
|
- lib/rouge/lexers/rust.rb
|
356
362
|
- lib/rouge/lexers/sas.rb
|