code_rippa 0.0.7 → 1.0.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 +7 -0
- data/Gemfile.lock +36 -0
- data/LICENSE +2 -2
- data/README.md +18 -1
- data/bin/code_rippa +15 -16
- data/code_rippa.gemspec +12 -10
- data/lib/code_rippa.rb +69 -51
- data/lib/code_rippa/syntax/actionscript.syntax +52 -52
- data/lib/code_rippa/syntax/active4d.syntax +226 -180
- data/lib/code_rippa/syntax/active4d_html.syntax +163 -173
- data/lib/code_rippa/syntax/active4d_ini.syntax +34 -27
- data/lib/code_rippa/syntax/active4d_library.syntax +8 -15
- data/lib/code_rippa/syntax/ada.syntax +19 -18
- data/lib/code_rippa/syntax/antlr.syntax +85 -85
- data/lib/code_rippa/syntax/apache.syntax +103 -109
- data/lib/code_rippa/syntax/applescript.syntax +244 -229
- data/lib/code_rippa/syntax/asp.syntax +41 -36
- data/lib/code_rippa/syntax/asp_vb.net.syntax +77 -72
- data/lib/code_rippa/syntax/bibtex.syntax +88 -90
- data/lib/code_rippa/syntax/blog_html.syntax +17 -29
- data/lib/code_rippa/syntax/blog_markdown.syntax +17 -27
- data/lib/code_rippa/syntax/blog_text.syntax +15 -15
- data/lib/code_rippa/syntax/blog_textile.syntax +15 -15
- data/lib/code_rippa/syntax/build.syntax +27 -27
- data/lib/code_rippa/syntax/bulletin_board.syntax +159 -172
- data/lib/code_rippa/syntax/c.syntax +31 -34
- data/lib/code_rippa/syntax/cake.syntax +27 -27
- data/lib/code_rippa/syntax/camlp4.syntax +23 -23
- data/lib/code_rippa/syntax/cm.syntax +19 -18
- data/lib/code_rippa/syntax/coffeescript.syntax +134 -181
- data/lib/code_rippa/syntax/coldfusion.syntax +51 -60
- data/lib/code_rippa/syntax/context_free.syntax +106 -106
- data/lib/code_rippa/syntax/cs.syntax +31 -34
- data/lib/code_rippa/syntax/css.syntax +112 -112
- data/lib/code_rippa/syntax/css_experimental.syntax +1006 -1004
- data/lib/code_rippa/syntax/csv.syntax +40 -44
- data/lib/code_rippa/syntax/d.syntax +80 -84
- data/lib/code_rippa/syntax/diff.syntax +46 -45
- data/lib/code_rippa/syntax/dokuwiki.syntax +118 -119
- data/lib/code_rippa/syntax/dot.syntax +26 -26
- data/lib/code_rippa/syntax/doxygen.syntax +26 -26
- data/lib/code_rippa/syntax/dylan.syntax +35 -35
- data/lib/code_rippa/syntax/eiffel.syntax +39 -42
- data/lib/code_rippa/syntax/erlang.syntax +514 -511
- data/lib/code_rippa/syntax/f-script.syntax +44 -44
- data/lib/code_rippa/syntax/fortran.syntax +80 -76
- data/lib/code_rippa/syntax/fxscript.syntax +78 -77
- data/lib/code_rippa/syntax/greasemonkey.syntax +20 -20
- data/lib/code_rippa/syntax/gri.syntax +47 -47
- data/lib/code_rippa/syntax/groovy.syntax +105 -114
- data/lib/code_rippa/syntax/gtd.syntax +10 -10
- data/lib/code_rippa/syntax/gtdalt.syntax +83 -83
- data/lib/code_rippa/syntax/haml.syntax +50 -50
- data/lib/code_rippa/syntax/haskell.syntax +47 -47
- data/lib/code_rippa/syntax/html-asp.syntax +15 -15
- data/lib/code_rippa/syntax/html_django.syntax +15 -14
- data/lib/code_rippa/syntax/html_for_asp.net.syntax +232 -245
- data/lib/code_rippa/syntax/html_mason.syntax +75 -74
- data/lib/code_rippa/syntax/html_rails.syntax +17 -27
- data/lib/code_rippa/syntax/html_tcl.syntax +13 -13
- data/lib/code_rippa/syntax/icalendar.syntax +15 -15
- data/lib/code_rippa/syntax/inform.syntax +26 -26
- data/lib/code_rippa/syntax/ini.syntax +30 -30
- data/lib/code_rippa/syntax/installer_distribution_script.syntax +49 -49
- data/lib/code_rippa/syntax/io.syntax +49 -46
- data/lib/code_rippa/syntax/java.syntax +117 -126
- data/lib/code_rippa/syntax/javaproperties.syntax +13 -12
- data/lib/code_rippa/syntax/javascript.syntax +141 -141
- data/lib/code_rippa/syntax/javascript_+_prototype.syntax +42 -41
- data/lib/code_rippa/syntax/javascript_+_prototype_bracketed.syntax +92 -91
- data/lib/code_rippa/syntax/jquery_javascript.syntax +64 -64
- data/lib/code_rippa/syntax/json.syntax +39 -39
- data/lib/code_rippa/syntax/languagedefinition.syntax +373 -453
- data/lib/code_rippa/syntax/lexflex.syntax +136 -136
- data/lib/code_rippa/syntax/lighttpd.syntax +31 -31
- data/lib/code_rippa/syntax/lilypond.syntax +246 -337
- data/lib/code_rippa/syntax/lisp.syntax +32 -32
- data/lib/code_rippa/syntax/literate_haskell.syntax +12 -12
- data/lib/code_rippa/syntax/logo.syntax +13 -14
- data/lib/code_rippa/syntax/logtalk.syntax +81 -81
- data/lib/code_rippa/syntax/lua.syntax +50 -48
- data/lib/code_rippa/syntax/m.syntax +78 -78
- data/lib/code_rippa/syntax/macports_portfile.syntax +98 -97
- data/lib/code_rippa/syntax/makefile.syntax +19 -19
- data/lib/code_rippa/syntax/man.syntax +9 -9
- data/lib/code_rippa/syntax/mediawiki.syntax +311 -401
- data/lib/code_rippa/syntax/mips.syntax +34 -34
- data/lib/code_rippa/syntax/mod_perl.syntax +25 -31
- data/lib/code_rippa/syntax/modula-3.syntax +24 -24
- data/lib/code_rippa/syntax/moinmoin.syntax +102 -102
- data/lib/code_rippa/syntax/mootools.syntax +283 -300
- data/lib/code_rippa/syntax/movable_type.syntax +91 -90
- data/lib/code_rippa/syntax/multimarkdown.syntax +19 -30
- data/lib/code_rippa/syntax/objective-c++.syntax +6 -10
- data/lib/code_rippa/syntax/objective-c.syntax +134 -138
- data/lib/code_rippa/syntax/ocaml.syntax +455 -453
- data/lib/code_rippa/syntax/ocamllex.syntax +94 -93
- data/lib/code_rippa/syntax/ocamlyacc.syntax +98 -98
- data/lib/code_rippa/syntax/opengl.syntax +6 -6
- data/lib/code_rippa/syntax/pascal.syntax +43 -42
- data/lib/code_rippa/syntax/perl.syntax +612 -615
- data/lib/code_rippa/syntax/plain_text.syntax +17 -20
- data/lib/code_rippa/syntax/postscript.syntax +71 -69
- data/lib/code_rippa/syntax/processing.syntax +60 -60
- data/lib/code_rippa/syntax/prolog.syntax +17 -20
- data/lib/code_rippa/syntax/property_list.syntax +338 -359
- data/lib/code_rippa/syntax/python.syntax +487 -509
- data/lib/code_rippa/syntax/python_django.syntax +9 -10
- data/lib/code_rippa/syntax/qmake_project.syntax +67 -67
- data/lib/code_rippa/syntax/qt_c++.syntax +12 -15
- data/lib/code_rippa/syntax/quake3_config.syntax +18 -17
- data/lib/code_rippa/syntax/r.syntax +42 -42
- data/lib/code_rippa/syntax/r_console.syntax +7 -8
- data/lib/code_rippa/syntax/ragel.syntax +109 -115
- data/lib/code_rippa/syntax/rd_r_documentation.syntax +53 -53
- data/lib/code_rippa/syntax/regexp.syntax +26 -26
- data/lib/code_rippa/syntax/release_notes.syntax +46 -26
- data/lib/code_rippa/syntax/remind.syntax +146 -146
- data/lib/code_rippa/syntax/restructuredtext.syntax +132 -131
- data/lib/code_rippa/syntax/rez.syntax +46 -45
- data/lib/code_rippa/syntax/ruby.syntax +533 -601
- data/lib/code_rippa/syntax/ruby_experimental.syntax +82 -100
- data/lib/code_rippa/syntax/ruby_on_rails.syntax +56 -68
- data/lib/code_rippa/syntax/s5.syntax +35 -51
- data/lib/code_rippa/syntax/scheme.syntax +162 -260
- data/lib/code_rippa/syntax/scilab.syntax +18 -18
- data/lib/code_rippa/syntax/setext.syntax +82 -82
- data/lib/code_rippa/syntax/shell-unix-generic.syntax +227 -226
- data/lib/code_rippa/syntax/slate.syntax +91 -91
- data/lib/code_rippa/syntax/sql.syntax +137 -139
- data/lib/code_rippa/syntax/sql_rails.syntax +8 -8
- data/lib/code_rippa/syntax/ssh-config.syntax +17 -17
- data/lib/code_rippa/syntax/standard_ml.syntax +67 -69
- data/lib/code_rippa/syntax/strings_file.syntax +20 -23
- data/lib/code_rippa/syntax/subversion_commit_message.syntax +20 -20
- data/lib/code_rippa/syntax/sweave.syntax +45 -45
- data/lib/code_rippa/syntax/swig.syntax +34 -33
- data/lib/code_rippa/syntax/tcl.syntax +87 -86
- data/lib/code_rippa/syntax/template_toolkit.syntax +67 -65
- data/lib/code_rippa/syntax/textile.syntax +111 -145
- data/lib/code_rippa/syntax/tsv.syntax +31 -33
- data/lib/code_rippa/syntax/twiki.syntax +141 -141
- data/lib/code_rippa/syntax/txt2tags.syntax +39 -38
- data/lib/code_rippa/syntax/vectorscript.syntax +31 -31
- data/lib/code_rippa/syntax/xhtml_1.0.syntax +2297 -2296
- data/lib/code_rippa/syntax/xml.syntax +95 -95
- data/lib/code_rippa/syntax/xml_strict.syntax +49 -50
- data/lib/code_rippa/syntax/xsl.syntax +31 -31
- data/lib/code_rippa/syntax/yaml.syntax +86 -86
- data/lib/code_rippa/syntax/yaml_converter.rb +37 -0
- data/lib/code_rippa/syntax/yui_javascript.syntax +88 -88
- data/lib/code_rippa/version.rb +2 -2
- data/test/fixtures/hello.rb +5 -3
- data/test/test_private_methods.rb +40 -40
- data/test/test_public_methods.rb +9 -18
- metadata +61 -63
@@ -1,6 +1,6 @@
|
|
1
|
-
---
|
1
|
+
---
|
2
2
|
name: Ruby
|
3
|
-
fileTypes:
|
3
|
+
fileTypes:
|
4
4
|
- rb
|
5
5
|
- rbx
|
6
6
|
- rjs
|
@@ -9,1027 +9,959 @@ fileTypes:
|
|
9
9
|
- cgi
|
10
10
|
- fcgi
|
11
11
|
- gemspec
|
12
|
-
firstLineMatch:
|
12
|
+
firstLineMatch: "^#!/.*\\bruby\\b"
|
13
13
|
scopeName: source.ruby
|
14
|
-
repository:
|
15
|
-
nest_brackets:
|
16
|
-
captures:
|
17
|
-
|
14
|
+
repository:
|
15
|
+
nest_brackets:
|
16
|
+
captures:
|
17
|
+
'0':
|
18
18
|
name: punctuation.section.scope.ruby
|
19
|
-
begin:
|
20
|
-
end:
|
21
|
-
patterns:
|
19
|
+
begin: "\\["
|
20
|
+
end: "\\]"
|
21
|
+
patterns:
|
22
22
|
- include: "#nest_brackets"
|
23
|
-
interpolated_ruby:
|
24
|
-
patterns:
|
23
|
+
interpolated_ruby:
|
24
|
+
patterns:
|
25
25
|
- name: source.ruby.embedded.source
|
26
|
-
captures:
|
27
|
-
|
26
|
+
captures:
|
27
|
+
'0':
|
28
28
|
name: punctuation.section.embedded.ruby
|
29
|
-
|
29
|
+
'1':
|
30
30
|
name: source.ruby.embedded.source.empty
|
31
31
|
match: "#\\{(\\})"
|
32
32
|
- name: source.ruby.embedded.source
|
33
|
-
captures:
|
34
|
-
|
33
|
+
captures:
|
34
|
+
'0':
|
35
35
|
name: punctuation.section.embedded.ruby
|
36
36
|
begin: "#\\{"
|
37
|
-
end:
|
38
|
-
patterns:
|
37
|
+
end: "\\}"
|
38
|
+
patterns:
|
39
39
|
- include: "#nest_curly_and_self"
|
40
|
-
- include: $self
|
40
|
+
- include: "$self"
|
41
41
|
- name: variable.other.readwrite.instance.ruby
|
42
|
-
captures:
|
43
|
-
|
42
|
+
captures:
|
43
|
+
'1':
|
44
44
|
name: punctuation.definition.variable.ruby
|
45
|
-
match: (#@)[a-zA-Z_]
|
45
|
+
match: "(#@)[a-zA-Z_]\\w*"
|
46
46
|
- name: variable.other.readwrite.class.ruby
|
47
|
-
captures:
|
48
|
-
|
47
|
+
captures:
|
48
|
+
'1':
|
49
49
|
name: punctuation.definition.variable.ruby
|
50
|
-
match: (#@@)[a-zA-Z_]
|
50
|
+
match: "(#@@)[a-zA-Z_]\\w*"
|
51
51
|
- name: variable.other.readwrite.global.ruby
|
52
|
-
captures:
|
53
|
-
|
52
|
+
captures:
|
53
|
+
'1':
|
54
54
|
name: punctuation.definition.variable.ruby
|
55
|
-
match: (
|
56
|
-
escaped_char:
|
55
|
+
match: "(#\\$)[a-zA-Z_]\\w*"
|
56
|
+
escaped_char:
|
57
57
|
name: constant.character.escape.ruby
|
58
|
-
match:
|
59
|
-
regex_sub:
|
60
|
-
patterns:
|
58
|
+
match: "\\\\(?:0\\d{1,2}|x[\\da-fA-F]{1,2}|.)"
|
59
|
+
regex_sub:
|
60
|
+
patterns:
|
61
61
|
- include: "#interpolated_ruby"
|
62
62
|
- include: "#escaped_char"
|
63
63
|
- name: string.regexp.arbitrary-repitition.ruby
|
64
|
-
captures:
|
65
|
-
|
64
|
+
captures:
|
65
|
+
'1':
|
66
66
|
name: punctuation.definition.arbitrary-repitition.ruby
|
67
|
-
|
67
|
+
'3':
|
68
68
|
name: punctuation.definition.arbitrary-repitition.ruby
|
69
|
-
match: (
|
69
|
+
match: "(\\{)\\d+(,\\d+)?(\\})"
|
70
70
|
- name: string.regexp.character-class.ruby
|
71
|
-
captures:
|
72
|
-
|
71
|
+
captures:
|
72
|
+
'0':
|
73
73
|
name: punctuation.definition.character-class.ruby
|
74
|
-
begin:
|
75
|
-
end:
|
76
|
-
patterns:
|
74
|
+
begin: "\\[(?:\\^?\\])?"
|
75
|
+
end: "\\]"
|
76
|
+
patterns:
|
77
77
|
- include: "#escaped_char"
|
78
78
|
- name: string.regexp.group.ruby
|
79
|
-
captures:
|
80
|
-
|
79
|
+
captures:
|
80
|
+
'0':
|
81
81
|
name: punctuation.definition.group.ruby
|
82
|
-
begin:
|
83
|
-
end:
|
84
|
-
patterns:
|
82
|
+
begin: "\\("
|
83
|
+
end: "\\)"
|
84
|
+
patterns:
|
85
85
|
- include: "#regex_sub"
|
86
86
|
- name: comment.line.number-sign.ruby
|
87
|
-
captures:
|
88
|
-
|
87
|
+
captures:
|
88
|
+
'1':
|
89
89
|
name: punctuation.definition.comment.ruby
|
90
|
-
match: (
|
91
|
-
comment: We are restrictive in what we allow to go after the comment character
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
90
|
+
match: "(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$"
|
91
|
+
comment: We are restrictive in what we allow to go after the comment character
|
92
|
+
to avoid false positives, since the availability of comments depend on regexp
|
93
|
+
flags.
|
94
|
+
heredoc:
|
95
|
+
begin: "^<<-?\\w+"
|
96
|
+
end: "$"
|
97
|
+
patterns:
|
98
|
+
- include: "$base"
|
99
|
+
nest_parens_r:
|
100
|
+
captures:
|
101
|
+
'0':
|
100
102
|
name: punctuation.section.scope.ruby
|
101
|
-
begin:
|
102
|
-
end:
|
103
|
-
patterns:
|
103
|
+
begin: "\\("
|
104
|
+
end: "\\)"
|
105
|
+
patterns:
|
104
106
|
- include: "#regex_sub"
|
105
107
|
- include: "#nest_parens_r"
|
106
|
-
nest_curly_r:
|
107
|
-
captures:
|
108
|
-
|
108
|
+
nest_curly_r:
|
109
|
+
captures:
|
110
|
+
'0':
|
109
111
|
name: punctuation.section.scope.ruby
|
110
|
-
begin:
|
111
|
-
end:
|
112
|
-
patterns:
|
112
|
+
begin: "\\{"
|
113
|
+
end: "\\}"
|
114
|
+
patterns:
|
113
115
|
- include: "#regex_sub"
|
114
116
|
- include: "#nest_curly_r"
|
115
|
-
nest_parens_i:
|
116
|
-
captures:
|
117
|
-
|
117
|
+
nest_parens_i:
|
118
|
+
captures:
|
119
|
+
'0':
|
118
120
|
name: punctuation.section.scope.ruby
|
119
|
-
begin:
|
120
|
-
end:
|
121
|
-
patterns:
|
121
|
+
begin: "\\("
|
122
|
+
end: "\\)"
|
123
|
+
patterns:
|
122
124
|
- include: "#interpolated_ruby"
|
123
125
|
- include: "#escaped_char"
|
124
126
|
- include: "#nest_parens_i"
|
125
|
-
nest_ltgt_r:
|
126
|
-
captures:
|
127
|
-
|
127
|
+
nest_ltgt_r:
|
128
|
+
captures:
|
129
|
+
'0':
|
128
130
|
name: punctuation.section.scope.ruby
|
129
|
-
begin:
|
130
|
-
end:
|
131
|
-
patterns:
|
131
|
+
begin: "\\<"
|
132
|
+
end: "\\>"
|
133
|
+
patterns:
|
132
134
|
- include: "#regex_sub"
|
133
135
|
- include: "#nest_ltgt_r"
|
134
|
-
nest_curly_i:
|
135
|
-
captures:
|
136
|
-
|
136
|
+
nest_curly_i:
|
137
|
+
captures:
|
138
|
+
'0':
|
137
139
|
name: punctuation.section.scope.ruby
|
138
|
-
begin:
|
139
|
-
end:
|
140
|
-
patterns:
|
140
|
+
begin: "\\{"
|
141
|
+
end: "\\}"
|
142
|
+
patterns:
|
141
143
|
- include: "#interpolated_ruby"
|
142
144
|
- include: "#escaped_char"
|
143
145
|
- include: "#nest_curly_i"
|
144
|
-
nest_ltgt_i:
|
145
|
-
captures:
|
146
|
-
|
146
|
+
nest_ltgt_i:
|
147
|
+
captures:
|
148
|
+
'0':
|
147
149
|
name: punctuation.section.scope.ruby
|
148
|
-
begin:
|
149
|
-
end:
|
150
|
-
patterns:
|
150
|
+
begin: "\\<"
|
151
|
+
end: "\\>"
|
152
|
+
patterns:
|
151
153
|
- include: "#interpolated_ruby"
|
152
154
|
- include: "#escaped_char"
|
153
155
|
- include: "#nest_ltgt_i"
|
154
|
-
nest_ltgt:
|
155
|
-
captures:
|
156
|
-
|
156
|
+
nest_ltgt:
|
157
|
+
captures:
|
158
|
+
'0':
|
157
159
|
name: punctuation.section.scope.ruby
|
158
|
-
begin:
|
159
|
-
end:
|
160
|
-
patterns:
|
160
|
+
begin: "\\<"
|
161
|
+
end: "\\>"
|
162
|
+
patterns:
|
161
163
|
- include: "#nest_ltgt"
|
162
|
-
nest_curly_and_self:
|
163
|
-
patterns:
|
164
|
-
- captures:
|
165
|
-
|
164
|
+
nest_curly_and_self:
|
165
|
+
patterns:
|
166
|
+
- captures:
|
167
|
+
'0':
|
166
168
|
name: punctuation.section.scope.ruby
|
167
|
-
begin:
|
168
|
-
end:
|
169
|
-
patterns:
|
169
|
+
begin: "\\{"
|
170
|
+
end: "\\}"
|
171
|
+
patterns:
|
170
172
|
- include: "#nest_curly_and_self"
|
171
|
-
- include: $self
|
172
|
-
nest_parens:
|
173
|
-
captures:
|
174
|
-
|
173
|
+
- include: "$self"
|
174
|
+
nest_parens:
|
175
|
+
captures:
|
176
|
+
'0':
|
175
177
|
name: punctuation.section.scope.ruby
|
176
|
-
begin:
|
177
|
-
end:
|
178
|
-
patterns:
|
178
|
+
begin: "\\("
|
179
|
+
end: "\\)"
|
180
|
+
patterns:
|
179
181
|
- include: "#nest_parens"
|
180
|
-
nest_brackets_r:
|
181
|
-
captures:
|
182
|
-
|
182
|
+
nest_brackets_r:
|
183
|
+
captures:
|
184
|
+
'0':
|
183
185
|
name: punctuation.section.scope.ruby
|
184
|
-
begin:
|
185
|
-
end:
|
186
|
-
patterns:
|
186
|
+
begin: "\\["
|
187
|
+
end: "\\]"
|
188
|
+
patterns:
|
187
189
|
- include: "#regex_sub"
|
188
190
|
- include: "#nest_brackets_r"
|
189
|
-
nest_curly:
|
190
|
-
captures:
|
191
|
-
|
191
|
+
nest_curly:
|
192
|
+
captures:
|
193
|
+
'0':
|
192
194
|
name: punctuation.section.scope.ruby
|
193
|
-
begin:
|
194
|
-
end:
|
195
|
-
patterns:
|
195
|
+
begin: "\\{"
|
196
|
+
end: "\\}"
|
197
|
+
patterns:
|
196
198
|
- include: "#nest_curly"
|
197
|
-
nest_brackets_i:
|
198
|
-
captures:
|
199
|
-
|
199
|
+
nest_brackets_i:
|
200
|
+
captures:
|
201
|
+
'0':
|
200
202
|
name: punctuation.section.scope.ruby
|
201
|
-
begin:
|
202
|
-
end:
|
203
|
-
patterns:
|
203
|
+
begin: "\\["
|
204
|
+
end: "\\]"
|
205
|
+
patterns:
|
204
206
|
- include: "#interpolated_ruby"
|
205
207
|
- include: "#escaped_char"
|
206
208
|
- include: "#nest_brackets_i"
|
207
209
|
uuid: E00B62AC-6B1C-11D9-9B1F-000D93589AF6
|
208
|
-
foldingStartMarker: "(?x)^\n\
|
209
|
-
\t
|
210
|
-
\
|
211
|
-
|
212
|
-
\t
|
213
|
-
\
|
214
|
-
\t
|
215
|
-
\
|
216
|
-
\t
|
217
|
-
\t
|
218
|
-
\t
|
219
|
-
\
|
220
|
-
|
221
|
-
\t | (?<!\\$)[-+=&|*/~%^<>~] \\s*+ (if|unless)\n\
|
222
|
-
\t )\n\
|
223
|
-
\t )\\b\n\
|
224
|
-
\t (?! [^;]*+ ; .*? \\bend\\b )\n\
|
225
|
-
\t |( \"(\\\\.|[^\"])*+\" # eat a double quoted string\n\
|
226
|
-
\t | '(\\\\.|[^'])*+' # eat a single quoted string\n\
|
227
|
-
\t | [^#\"'] # eat all but comments and strings\n\
|
228
|
-
\t )*\n\
|
229
|
-
\t ( \\{ (?! [^}]*+ \\} )\n\
|
230
|
-
\t | \\[ (?! [^\\]]*+ \\] )\n\
|
231
|
-
\t )\n\
|
232
|
-
\t ).*$\n\
|
233
|
-
\t| [#] .*? \\(fold\\) \\s*+ $ # Sune\xE2\x80\x99s special marker\n\
|
234
|
-
\t"
|
235
|
-
patterns:
|
210
|
+
foldingStartMarker: "(?x)^\n\t (\\s*+\n\t (module|class|def\n\t |unless|if\n\t
|
211
|
+
\ |case\n\t |begin\n\t |for|while|until\n\t\t\t |^=begin\n\t
|
212
|
+
\ |( \"(\\\\.|[^\"])*+\" # eat a double quoted string\n\t |
|
213
|
+
'(\\\\.|[^'])*+' # eat a single quoted string\n\t | [^#\"'] #
|
214
|
+
eat all but comments and strings\n\t )*\n\t ( \\s
|
215
|
+
\ (do|begin|case)\n\t | (?<!\\$)[-+=&|*/~%^<>~] \\s*+ (if|unless)\n\t )\n\t
|
216
|
+
\ )\\b\n\t (?! [^;]*+ ; .*? \\bend\\b )\n\t |( \"(\\\\.|[^\"])*+\"
|
217
|
+
\ # eat a double quoted string\n\t | '(\\\\.|[^'])*+' #
|
218
|
+
eat a single quoted string\n\t | [^#\"'] # eat all but
|
219
|
+
comments and strings\n\t )*\n\t ( \\{ (?! [^}]*+ \\} )\n\t | \\[ (?!
|
220
|
+
[^\\]]*+ \\] )\n\t )\n\t ).*$\n\t| [#] .*? \\(fold\\) \\s*+ $ #
|
221
|
+
Sune’s special marker\n\t"
|
222
|
+
patterns:
|
236
223
|
- name: meta.class.ruby
|
237
|
-
captures:
|
238
|
-
|
224
|
+
captures:
|
225
|
+
'6':
|
239
226
|
name: variable.other.object.ruby
|
240
|
-
|
227
|
+
'7':
|
241
228
|
name: punctuation.definition.variable.ruby
|
242
|
-
|
229
|
+
'1':
|
243
230
|
name: keyword.control.class.ruby
|
244
|
-
|
231
|
+
'2':
|
245
232
|
name: entity.name.type.class.ruby
|
246
|
-
|
233
|
+
'4':
|
247
234
|
name: entity.other.inherited-class.ruby
|
248
|
-
|
235
|
+
'5':
|
249
236
|
name: punctuation.separator.inheritance.ruby
|
250
|
-
match:
|
237
|
+
match: "^\\s*(class)\\s+(([.a-zA-Z0-9_:]+(\\s*(<)\\s*[.a-zA-Z0-9_:]+)?)|((<<)\\s*[.a-zA-Z0-9_:]+))"
|
251
238
|
- name: meta.module.ruby
|
252
|
-
captures:
|
253
|
-
|
239
|
+
captures:
|
240
|
+
'6':
|
254
241
|
name: punctuation.separator.inheritance.ruby
|
255
|
-
|
242
|
+
'7':
|
256
243
|
name: entity.other.inherited-class.module.third.ruby
|
257
|
-
|
244
|
+
'8':
|
258
245
|
name: punctuation.separator.inheritance.ruby
|
259
|
-
|
246
|
+
'1':
|
260
247
|
name: keyword.control.module.ruby
|
261
|
-
|
248
|
+
'2':
|
262
249
|
name: entity.name.type.module.ruby
|
263
|
-
|
250
|
+
'3':
|
264
251
|
name: entity.other.inherited-class.module.first.ruby
|
265
|
-
|
252
|
+
'4':
|
266
253
|
name: punctuation.separator.inheritance.ruby
|
267
|
-
|
254
|
+
'5':
|
268
255
|
name: entity.other.inherited-class.module.second.ruby
|
269
|
-
match:
|
256
|
+
match: "^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)"
|
270
257
|
- name: invalid.deprecated.ruby
|
271
|
-
match: (
|
272
|
-
comment:
|
258
|
+
match: "(?<!\\.)\\belse(\\s)+if\\b"
|
259
|
+
comment: else if is a common mistake carried over from other languages. it works
|
260
|
+
if you put in a second end, but it’s never what you want.
|
273
261
|
- name: keyword.control.ruby
|
274
|
-
match: (
|
262
|
+
match: "(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])"
|
275
263
|
comment: everything being a reserved word, not a value and needing a 'end' is a..
|
276
264
|
- name: keyword.control.ruby.start-block
|
277
|
-
match: (
|
265
|
+
match: "(?<!\\.)\\bdo\\b\\s*"
|
278
266
|
comment: contextual smart pair support for block parameters
|
279
267
|
- name: meta.syntax.ruby.start-block
|
280
|
-
match: (
|
268
|
+
match: "(?<=\\{)(\\s+)"
|
281
269
|
comment: contextual smart pair support
|
282
270
|
- name: keyword.operator.logical.ruby
|
283
|
-
match: (
|
271
|
+
match: "(?<!\\.)\\b(and|not|or)\\b"
|
284
272
|
comment: " as above, just doesn't need a 'end' and does a logic operation"
|
285
273
|
- name: keyword.control.pseudo-method.ruby
|
286
|
-
match: (
|
274
|
+
match: "(?<!\\.)\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\b(?![?!])|\\bdefined\\?|\\bblock_given\\?"
|
287
275
|
comment: " just as above but being not a logical operation"
|
288
276
|
- name: constant.language.ruby
|
289
|
-
match:
|
277
|
+
match: "\\b(nil|true|false)\\b(?![?!])"
|
290
278
|
- name: variable.language.ruby
|
291
|
-
match:
|
279
|
+
match: "\\b(__(FILE|LINE)__|self)\\b(?![?!])"
|
292
280
|
- name: keyword.other.special-method.ruby
|
293
|
-
match:
|
281
|
+
match: "\\b(initialize|new|loop|include|extend|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|module_function|public|protected)\\b(?![?!])"
|
294
282
|
comment: " everything being a method but having a special function is a.."
|
295
283
|
- name: meta.require.ruby
|
296
|
-
captures:
|
297
|
-
|
284
|
+
captures:
|
285
|
+
'1':
|
298
286
|
name: keyword.other.special-method.ruby
|
299
|
-
begin:
|
300
|
-
end: $|(?=#)
|
301
|
-
patterns:
|
302
|
-
- include: $base
|
287
|
+
begin: "\\b(require)\\b"
|
288
|
+
end: "$|(?=#)"
|
289
|
+
patterns:
|
290
|
+
- include: "$base"
|
303
291
|
- name: variable.other.readwrite.instance.ruby
|
304
|
-
captures:
|
305
|
-
|
292
|
+
captures:
|
293
|
+
'1':
|
306
294
|
name: punctuation.definition.variable.ruby
|
307
|
-
match: (@)[a-zA-Z_]
|
295
|
+
match: "(@)[a-zA-Z_]\\w*"
|
308
296
|
- name: variable.other.readwrite.class.ruby
|
309
|
-
captures:
|
310
|
-
|
297
|
+
captures:
|
298
|
+
'1':
|
311
299
|
name: punctuation.definition.variable.ruby
|
312
|
-
match: (@@)[a-zA-Z_]
|
300
|
+
match: "(@@)[a-zA-Z_]\\w*"
|
313
301
|
- name: variable.other.readwrite.global.ruby
|
314
|
-
captures:
|
315
|
-
|
302
|
+
captures:
|
303
|
+
'1':
|
316
304
|
name: punctuation.definition.variable.ruby
|
317
|
-
match: (
|
305
|
+
match: "(\\$)[a-zA-Z_]\\w*"
|
318
306
|
- name: variable.other.readwrite.global.pre-defined.ruby
|
319
|
-
captures:
|
320
|
-
|
307
|
+
captures:
|
308
|
+
'1':
|
321
309
|
name: punctuation.definition.variable.ruby
|
322
|
-
match: (
|
310
|
+
match: "(\\$)(!|@|&|`|'|\\+|\\d|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])"
|
323
311
|
- name: support.class.ruby
|
324
|
-
match:
|
312
|
+
match: "\\b[A-Z][a-z]\\w*(?=((\\.|::)[A-Za-z]|\\[))"
|
325
313
|
- name: meta.environment-variable.ruby
|
326
|
-
begin:
|
327
|
-
beginCaptures:
|
328
|
-
|
314
|
+
begin: "\\b(ENV)\\["
|
315
|
+
beginCaptures:
|
316
|
+
'1':
|
329
317
|
name: variable.other.constant.ruby
|
330
|
-
end:
|
331
|
-
patterns:
|
332
|
-
- include: $self
|
318
|
+
end: "\\]"
|
319
|
+
patterns:
|
320
|
+
- include: "$self"
|
333
321
|
- name: variable.other.constant.ruby
|
334
|
-
match:
|
322
|
+
match: "\\b[A-Z]\\w*\\b"
|
335
323
|
- name: meta.function.method.with-arguments.ruby
|
336
|
-
endCaptures:
|
337
|
-
|
324
|
+
endCaptures:
|
325
|
+
'0':
|
338
326
|
name: punctuation.definition.parameters.ruby
|
339
|
-
begin: (
|
327
|
+
begin: "(?<=^|\\s)\\b(def)\\b\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))\\s*(\\()"
|
340
328
|
contentName: variable.parameter.function.ruby
|
341
|
-
beginCaptures:
|
342
|
-
|
329
|
+
beginCaptures:
|
330
|
+
'1':
|
343
331
|
name: keyword.control.def.ruby
|
344
|
-
|
332
|
+
'2':
|
345
333
|
name: entity.name.function.ruby
|
346
|
-
|
334
|
+
'3':
|
347
335
|
name: punctuation.definition.parameters.ruby
|
348
|
-
end:
|
349
|
-
patterns:
|
350
|
-
- include: $base
|
336
|
+
end: "\\)"
|
337
|
+
patterns:
|
338
|
+
- include: "$base"
|
351
339
|
comment: " the method pattern comes from the symbol pattern, see there for a explaination"
|
352
340
|
- name: meta.function.method.without-arguments.ruby
|
353
|
-
captures:
|
354
|
-
|
341
|
+
captures:
|
342
|
+
'1':
|
355
343
|
name: keyword.control.def.ruby
|
356
|
-
|
344
|
+
'3':
|
357
345
|
name: entity.name.function.ruby
|
358
|
-
match: (
|
346
|
+
match: "(?<=^|\\s)(def)\\b(\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?)))?"
|
359
347
|
comment: " the optional name is just to catch the def also without a method-name"
|
360
348
|
- name: constant.numeric.ruby
|
361
|
-
match:
|
349
|
+
match: "\\b(0[xX]\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0[bB][01]+)\\b"
|
362
350
|
- name: constant.other.symbol.single-quoted.ruby
|
363
|
-
captures:
|
364
|
-
|
351
|
+
captures:
|
352
|
+
'0':
|
365
353
|
name: punctuation.definition.constant.ruby
|
366
354
|
begin: ":'"
|
367
355
|
end: "'"
|
368
|
-
patterns:
|
356
|
+
patterns:
|
369
357
|
- name: constant.character.escape.ruby
|
370
|
-
match:
|
358
|
+
match: "\\\\['\\\\]"
|
371
359
|
- name: constant.other.symbol.double-quoted.ruby
|
372
|
-
captures:
|
373
|
-
|
360
|
+
captures:
|
361
|
+
'0':
|
374
362
|
name: punctuation.definition.constant.ruby
|
375
363
|
begin: ":\""
|
376
364
|
end: "\""
|
377
|
-
patterns:
|
365
|
+
patterns:
|
378
366
|
- include: "#interpolated_ruby"
|
379
367
|
- include: "#escaped_char"
|
380
368
|
- name: string.quoted.single.ruby
|
381
|
-
endCaptures:
|
382
|
-
|
369
|
+
endCaptures:
|
370
|
+
'0':
|
383
371
|
name: punctuation.definition.string.end.ruby
|
384
372
|
begin: "'"
|
385
|
-
beginCaptures:
|
386
|
-
|
373
|
+
beginCaptures:
|
374
|
+
'0':
|
387
375
|
name: punctuation.definition.string.begin.ruby
|
388
376
|
end: "'"
|
389
|
-
patterns:
|
377
|
+
patterns:
|
390
378
|
- name: constant.character.escape.ruby
|
391
|
-
match:
|
379
|
+
match: "\\\\'|\\\\\\\\"
|
392
380
|
comment: single quoted string (does not allow interpolation)
|
393
381
|
- name: string.quoted.double.ruby
|
394
|
-
endCaptures:
|
395
|
-
|
382
|
+
endCaptures:
|
383
|
+
'0':
|
396
384
|
name: punctuation.definition.string.end.ruby
|
397
385
|
begin: "\""
|
398
|
-
beginCaptures:
|
399
|
-
|
386
|
+
beginCaptures:
|
387
|
+
'0':
|
400
388
|
name: punctuation.definition.string.begin.ruby
|
401
389
|
end: "\""
|
402
|
-
patterns:
|
390
|
+
patterns:
|
403
391
|
- include: "#interpolated_ruby"
|
404
392
|
- include: "#escaped_char"
|
405
393
|
comment: double quoted string (allows for interpolation)
|
406
394
|
- name: string.interpolated.ruby
|
407
|
-
endCaptures:
|
408
|
-
|
395
|
+
endCaptures:
|
396
|
+
'0':
|
409
397
|
name: punctuation.definition.string.end.ruby
|
410
|
-
begin: `
|
411
|
-
beginCaptures:
|
412
|
-
|
398
|
+
begin: "`"
|
399
|
+
beginCaptures:
|
400
|
+
'0':
|
413
401
|
name: punctuation.definition.string.begin.ruby
|
414
|
-
end: `
|
415
|
-
patterns:
|
402
|
+
end: "`"
|
403
|
+
patterns:
|
416
404
|
- include: "#interpolated_ruby"
|
417
405
|
- include: "#escaped_char"
|
418
406
|
comment: execute string (allows for interpolation)
|
419
407
|
- name: string.interpolated.ruby
|
420
|
-
endCaptures:
|
421
|
-
|
408
|
+
endCaptures:
|
409
|
+
'0':
|
422
410
|
name: punctuation.definition.string.end.ruby
|
423
411
|
begin: "%x\\{"
|
424
|
-
beginCaptures:
|
425
|
-
|
412
|
+
beginCaptures:
|
413
|
+
'0':
|
426
414
|
name: punctuation.definition.string.begin.ruby
|
427
|
-
end:
|
428
|
-
patterns:
|
415
|
+
end: "\\}"
|
416
|
+
patterns:
|
429
417
|
- include: "#interpolated_ruby"
|
430
418
|
- include: "#escaped_char"
|
431
419
|
- include: "#nest_curly_i"
|
432
420
|
comment: execute string (allow for interpolation)
|
433
421
|
- name: string.interpolated.ruby
|
434
|
-
endCaptures:
|
435
|
-
|
422
|
+
endCaptures:
|
423
|
+
'0':
|
436
424
|
name: punctuation.definition.string.end.ruby
|
437
425
|
begin: "%x\\["
|
438
|
-
beginCaptures:
|
439
|
-
|
426
|
+
beginCaptures:
|
427
|
+
'0':
|
440
428
|
name: punctuation.definition.string.begin.ruby
|
441
|
-
end:
|
442
|
-
patterns:
|
429
|
+
end: "\\]"
|
430
|
+
patterns:
|
443
431
|
- include: "#interpolated_ruby"
|
444
432
|
- include: "#escaped_char"
|
445
433
|
- include: "#nest_brackets_i"
|
446
434
|
comment: execute string (allow for interpolation)
|
447
435
|
- name: string.interpolated.ruby
|
448
|
-
endCaptures:
|
449
|
-
|
436
|
+
endCaptures:
|
437
|
+
'0':
|
450
438
|
name: punctuation.definition.string.end.ruby
|
451
439
|
begin: "%x\\<"
|
452
|
-
beginCaptures:
|
453
|
-
|
440
|
+
beginCaptures:
|
441
|
+
'0':
|
454
442
|
name: punctuation.definition.string.begin.ruby
|
455
|
-
end:
|
456
|
-
patterns:
|
443
|
+
end: "\\>"
|
444
|
+
patterns:
|
457
445
|
- include: "#interpolated_ruby"
|
458
446
|
- include: "#escaped_char"
|
459
447
|
- include: "#nest_ltgt_i"
|
460
448
|
comment: execute string (allow for interpolation)
|
461
449
|
- name: string.interpolated.ruby
|
462
|
-
endCaptures:
|
463
|
-
|
450
|
+
endCaptures:
|
451
|
+
'0':
|
464
452
|
name: punctuation.definition.string.end.ruby
|
465
453
|
begin: "%x\\("
|
466
|
-
beginCaptures:
|
467
|
-
|
454
|
+
beginCaptures:
|
455
|
+
'0':
|
468
456
|
name: punctuation.definition.string.begin.ruby
|
469
|
-
end:
|
470
|
-
patterns:
|
457
|
+
end: "\\)"
|
458
|
+
patterns:
|
471
459
|
- include: "#interpolated_ruby"
|
472
460
|
- include: "#escaped_char"
|
473
461
|
- include: "#nest_parens_i"
|
474
462
|
comment: execute string (allow for interpolation)
|
475
463
|
- name: string.interpolated.ruby
|
476
|
-
endCaptures:
|
477
|
-
|
464
|
+
endCaptures:
|
465
|
+
'0':
|
478
466
|
name: punctuation.definition.string.end.ruby
|
479
467
|
begin: "%x([^\\w])"
|
480
|
-
beginCaptures:
|
481
|
-
|
468
|
+
beginCaptures:
|
469
|
+
'0':
|
482
470
|
name: punctuation.definition.string.begin.ruby
|
483
|
-
end:
|
484
|
-
patterns:
|
471
|
+
end: "\\1"
|
472
|
+
patterns:
|
485
473
|
- include: "#interpolated_ruby"
|
486
474
|
- include: "#escaped_char"
|
487
475
|
comment: execute string (allow for interpolation)
|
488
|
-
- captures:
|
489
|
-
|
476
|
+
- captures:
|
477
|
+
'1':
|
490
478
|
name: string.regexp.classic.ruby
|
491
|
-
|
479
|
+
'2':
|
492
480
|
name: punctuation.definition.string.ruby
|
493
|
-
begin: "(?x)\n\
|
494
|
-
\t\t\t
|
495
|
-
\t\t\t
|
496
|
-
\t\t\t
|
497
|
-
\t\t\t
|
498
|
-
\t\t\t | (?:\\s
|
499
|
-
\t\t\t | (?:\\s|;)
|
500
|
-
\
|
501
|
-
\t\t\t
|
502
|
-
\t\t\t
|
503
|
-
\t\t\t
|
504
|
-
\t\t\t
|
505
|
-
\t\t\t
|
506
|
-
\t\t\t
|
507
|
-
\t\t\t | (?:\\s|;|\\.)match\\s\n\
|
508
|
-
\t\t\t | (?:\\s|;)if\\s\n\
|
509
|
-
\t\t\t | (?:\\s|;)elsif\\s\n\
|
510
|
-
\t\t\t | (?:\\s|;)while\\s\n\
|
511
|
-
\t\t\t | (?:\\s|;)unless\\s\n\
|
512
|
-
\t\t\t )\n\
|
513
|
-
\t\t\t | (?<= # or a look-behind with line anchor:\n\
|
514
|
-
\t\t\t ^when\\s # duplication necessary due to limits of regex\n\
|
515
|
-
\t\t\t | ^index\\s\n\
|
516
|
-
\t\t\t | ^scan\\s\n\
|
517
|
-
\t\t\t | ^sub\\s\n\
|
518
|
-
\t\t\t | ^gsub\\s\n\
|
519
|
-
\t\t\t | ^sub!\\s\n\
|
520
|
-
\t\t\t | ^gsub!\\s\n\
|
521
|
-
\t\t\t | ^match\\s\n\
|
522
|
-
\t\t\t | ^if\\s\n\
|
523
|
-
\t\t\t | ^elsif\\s\n\
|
524
|
-
\t\t\t | ^while\\s\n\
|
525
|
-
\t\t\t | ^unless\\s\n\
|
526
|
-
\t\t\t )\n\
|
527
|
-
\t\t\t )\n\
|
528
|
-
\t\t\t \\s*((/))(?![*+{}?])\n\
|
529
|
-
\t\t\t"
|
481
|
+
begin: "(?x)\n\t\t\t (?:\n\t\t\t ^ # beginning of line\n\t\t\t
|
482
|
+
\ | (?<= # or look-behind on:\n\t\t\t [=>~(?:\\[,|&]\n\t\t\t
|
483
|
+
\ | (?:\\s|;)when\\s\n\t\t\t | (?:\\s|;)or\\s\n\t\t\t | (?:\\s|;)and\\s\n\t\t\t
|
484
|
+
\ | (?:\\s|;|\\.)index\\s\n\t\t\t | (?:\\s|;|\\.)scan\\s\n\t\t\t |
|
485
|
+
(?:\\s|;|\\.)sub\\s\n\t\t\t | (?:\\s|l|\\.)sub!\\s\n\t\t\t | (?:\\s|;|\\.)gsub\\s\n\t\t\t
|
486
|
+
\ | (?:\\s|;|\\.)gsub!\\s\n\t\t\t | (?:\\s|;|\\.)match\\s\n\t\t\t |
|
487
|
+
(?:\\s|;)if\\s\n\t\t\t | (?:\\s|;)elsif\\s\n\t\t\t | (?:\\s|;)while\\s\n\t\t\t
|
488
|
+
\ | (?:\\s|;)unless\\s\n\t\t\t )\n\t\t\t | (?<= # or
|
489
|
+
a look-behind with line anchor:\n\t\t\t ^when\\s # duplication
|
490
|
+
necessary due to limits of regex\n\t\t\t | ^index\\s\n\t\t\t | ^scan\\s\n\t\t\t
|
491
|
+
\ | ^sub\\s\n\t\t\t | ^gsub\\s\n\t\t\t | ^sub!\\s\n\t\t\t |
|
492
|
+
^gsub!\\s\n\t\t\t | ^match\\s\n\t\t\t | ^if\\s\n\t\t\t | ^elsif\\s\n\t\t\t
|
493
|
+
\ | ^while\\s\n\t\t\t | ^unless\\s\n\t\t\t )\n\t\t\t )\n\t\t\t
|
494
|
+
\ \\s*((/))(?![*+{}?])\n\t\t\t"
|
530
495
|
contentName: string.regexp.classic.ruby
|
531
|
-
end: ((/[eimnosux]*))
|
532
|
-
patterns:
|
496
|
+
end: "((/[eimnosux]*))"
|
497
|
+
patterns:
|
533
498
|
- include: "#regex_sub"
|
534
|
-
comment: "regular expressions (normal)\n\
|
535
|
-
\t\t\
|
536
|
-
\t\t\tis what we think is before a regexp\n\
|
537
|
-
\t\t\t"
|
499
|
+
comment: "regular expressions (normal)\n\t\t\twe only start a regexp if the character
|
500
|
+
before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t"
|
538
501
|
- name: string.regexp.mod-r.ruby
|
539
|
-
endCaptures:
|
540
|
-
|
502
|
+
endCaptures:
|
503
|
+
'0':
|
541
504
|
name: punctuation.definition.string.end.ruby
|
542
505
|
begin: "%r\\{"
|
543
|
-
beginCaptures:
|
544
|
-
|
506
|
+
beginCaptures:
|
507
|
+
'0':
|
545
508
|
name: punctuation.definition.string.begin.ruby
|
546
|
-
end:
|
547
|
-
patterns:
|
509
|
+
end: "\\}[eimnosux]*"
|
510
|
+
patterns:
|
548
511
|
- include: "#regex_sub"
|
549
512
|
- include: "#nest_curly_r"
|
550
513
|
comment: regular expressions (literal)
|
551
514
|
- name: string.regexp.mod-r.ruby
|
552
|
-
endCaptures:
|
553
|
-
|
515
|
+
endCaptures:
|
516
|
+
'0':
|
554
517
|
name: punctuation.definition.string.end.ruby
|
555
518
|
begin: "%r\\["
|
556
|
-
beginCaptures:
|
557
|
-
|
519
|
+
beginCaptures:
|
520
|
+
'0':
|
558
521
|
name: punctuation.definition.string.begin.ruby
|
559
|
-
end:
|
560
|
-
patterns:
|
522
|
+
end: "\\][eimnosux]*"
|
523
|
+
patterns:
|
561
524
|
- include: "#regex_sub"
|
562
525
|
- include: "#nest_brackets_r"
|
563
526
|
comment: regular expressions (literal)
|
564
527
|
- name: string.regexp.mod-r.ruby
|
565
|
-
endCaptures:
|
566
|
-
|
528
|
+
endCaptures:
|
529
|
+
'0':
|
567
530
|
name: punctuation.definition.string.end.ruby
|
568
531
|
begin: "%r\\("
|
569
|
-
beginCaptures:
|
570
|
-
|
532
|
+
beginCaptures:
|
533
|
+
'0':
|
571
534
|
name: punctuation.definition.string.begin.ruby
|
572
|
-
end:
|
573
|
-
patterns:
|
535
|
+
end: "\\)[eimnosux]*"
|
536
|
+
patterns:
|
574
537
|
- include: "#regex_sub"
|
575
538
|
- include: "#nest_parens_r"
|
576
539
|
comment: regular expressions (literal)
|
577
540
|
- name: string.regexp.mod-r.ruby
|
578
|
-
endCaptures:
|
579
|
-
|
541
|
+
endCaptures:
|
542
|
+
'0':
|
580
543
|
name: punctuation.definition.string.end.ruby
|
581
544
|
begin: "%r\\<"
|
582
|
-
beginCaptures:
|
583
|
-
|
545
|
+
beginCaptures:
|
546
|
+
'0':
|
584
547
|
name: punctuation.definition.string.begin.ruby
|
585
|
-
end:
|
586
|
-
patterns:
|
548
|
+
end: "\\>[eimnosux]*"
|
549
|
+
patterns:
|
587
550
|
- include: "#regex_sub"
|
588
551
|
- include: "#nest_ltgt_r"
|
589
552
|
comment: regular expressions (literal)
|
590
553
|
- name: string.regexp.mod-r.ruby
|
591
|
-
endCaptures:
|
592
|
-
|
554
|
+
endCaptures:
|
555
|
+
'0':
|
593
556
|
name: punctuation.definition.string.end.ruby
|
594
557
|
begin: "%r([^\\w])"
|
595
|
-
beginCaptures:
|
596
|
-
|
558
|
+
beginCaptures:
|
559
|
+
'0':
|
597
560
|
name: punctuation.definition.string.begin.ruby
|
598
|
-
end:
|
599
|
-
patterns:
|
561
|
+
end: "\\1[eimnosux]*"
|
562
|
+
patterns:
|
600
563
|
- include: "#regex_sub"
|
601
564
|
comment: regular expressions (literal)
|
602
565
|
- name: string.quoted.other.literal.upper.ruby
|
603
|
-
endCaptures:
|
604
|
-
|
566
|
+
endCaptures:
|
567
|
+
'0':
|
605
568
|
name: punctuation.definition.string.end.ruby
|
606
569
|
begin: "%[QWSR]?\\("
|
607
|
-
beginCaptures:
|
608
|
-
|
570
|
+
beginCaptures:
|
571
|
+
'0':
|
609
572
|
name: punctuation.definition.string.begin.ruby
|
610
|
-
end:
|
611
|
-
patterns:
|
573
|
+
end: "\\)"
|
574
|
+
patterns:
|
612
575
|
- include: "#interpolated_ruby"
|
613
576
|
- include: "#escaped_char"
|
614
577
|
- include: "#nest_parens_i"
|
615
578
|
comment: literal capable of interpolation ()
|
616
579
|
- name: string.quoted.other.literal.upper.ruby
|
617
|
-
endCaptures:
|
618
|
-
|
580
|
+
endCaptures:
|
581
|
+
'0':
|
619
582
|
name: punctuation.definition.string.end.ruby
|
620
583
|
begin: "%[QWSR]?\\["
|
621
|
-
beginCaptures:
|
622
|
-
|
584
|
+
beginCaptures:
|
585
|
+
'0':
|
623
586
|
name: punctuation.definition.string.begin.ruby
|
624
|
-
end:
|
625
|
-
patterns:
|
587
|
+
end: "\\]"
|
588
|
+
patterns:
|
626
589
|
- include: "#interpolated_ruby"
|
627
590
|
- include: "#escaped_char"
|
628
591
|
- include: "#nest_brackets_i"
|
629
592
|
comment: literal capable of interpolation []
|
630
593
|
- name: string.quoted.other.literal.upper.ruby
|
631
|
-
endCaptures:
|
632
|
-
|
594
|
+
endCaptures:
|
595
|
+
'0':
|
633
596
|
name: punctuation.definition.string.end.ruby
|
634
597
|
begin: "%[QWSR]?\\<"
|
635
|
-
beginCaptures:
|
636
|
-
|
598
|
+
beginCaptures:
|
599
|
+
'0':
|
637
600
|
name: punctuation.definition.string.begin.ruby
|
638
|
-
end:
|
639
|
-
patterns:
|
601
|
+
end: "\\>"
|
602
|
+
patterns:
|
640
603
|
- include: "#interpolated_ruby"
|
641
604
|
- include: "#escaped_char"
|
642
605
|
- include: "#nest_ltgt_i"
|
643
606
|
comment: literal capable of interpolation <>
|
644
607
|
- name: string.quoted.double.ruby.mod
|
645
|
-
endCaptures:
|
646
|
-
|
608
|
+
endCaptures:
|
609
|
+
'0':
|
647
610
|
name: punctuation.definition.string.end.ruby
|
648
611
|
begin: "%[QWSR]?\\{"
|
649
|
-
beginCaptures:
|
650
|
-
|
612
|
+
beginCaptures:
|
613
|
+
'0':
|
651
614
|
name: punctuation.definition.string.begin.ruby
|
652
|
-
end:
|
653
|
-
patterns:
|
615
|
+
end: "\\}"
|
616
|
+
patterns:
|
654
617
|
- include: "#interpolated_ruby"
|
655
618
|
- include: "#escaped_char"
|
656
619
|
- include: "#nest_curly_i"
|
657
620
|
comment: literal capable of interpolation -- {}
|
658
621
|
- name: string.quoted.other.literal.upper.ruby
|
659
|
-
endCaptures:
|
660
|
-
|
622
|
+
endCaptures:
|
623
|
+
'0':
|
661
624
|
name: punctuation.definition.string.end.ruby
|
662
625
|
begin: "%[QWSR]([^\\w])"
|
663
|
-
beginCaptures:
|
664
|
-
|
626
|
+
beginCaptures:
|
627
|
+
'0':
|
665
628
|
name: punctuation.definition.string.begin.ruby
|
666
|
-
end:
|
667
|
-
patterns:
|
629
|
+
end: "\\1"
|
630
|
+
patterns:
|
668
631
|
- include: "#interpolated_ruby"
|
669
632
|
- include: "#escaped_char"
|
670
633
|
comment: literal capable of interpolation -- wildcard
|
671
634
|
- name: string.quoted.other.literal.other.ruby
|
672
|
-
endCaptures:
|
673
|
-
|
635
|
+
endCaptures:
|
636
|
+
'0':
|
674
637
|
name: punctuation.definition.string.end.ruby
|
675
638
|
begin: "%([^\\w\\s=])"
|
676
|
-
beginCaptures:
|
677
|
-
|
639
|
+
beginCaptures:
|
640
|
+
'0':
|
678
641
|
name: punctuation.definition.string.begin.ruby
|
679
|
-
end:
|
680
|
-
patterns:
|
642
|
+
end: "\\1"
|
643
|
+
patterns:
|
681
644
|
- include: "#interpolated_ruby"
|
682
645
|
- include: "#escaped_char"
|
683
646
|
comment: literal capable of interpolation -- wildcard
|
684
647
|
- name: string.quoted.other.literal.lower.ruby
|
685
|
-
endCaptures:
|
686
|
-
|
648
|
+
endCaptures:
|
649
|
+
'0':
|
687
650
|
name: punctuation.definition.string.end.ruby
|
688
651
|
begin: "%[qws]\\("
|
689
|
-
beginCaptures:
|
690
|
-
|
652
|
+
beginCaptures:
|
653
|
+
'0':
|
691
654
|
name: punctuation.definition.string.begin.ruby
|
692
|
-
end:
|
693
|
-
patterns:
|
655
|
+
end: "\\)"
|
656
|
+
patterns:
|
694
657
|
- name: constant.character.escape.ruby
|
695
|
-
match:
|
658
|
+
match: "\\\\\\)|\\\\\\\\"
|
696
659
|
- include: "#nest_parens"
|
697
660
|
comment: literal incapable of interpolation -- ()
|
698
661
|
- name: string.quoted.other.literal.lower.ruby
|
699
|
-
endCaptures:
|
700
|
-
|
662
|
+
endCaptures:
|
663
|
+
'0':
|
701
664
|
name: punctuation.definition.string.end.ruby
|
702
665
|
begin: "%[qws]\\<"
|
703
|
-
beginCaptures:
|
704
|
-
|
666
|
+
beginCaptures:
|
667
|
+
'0':
|
705
668
|
name: punctuation.definition.string.begin.ruby
|
706
|
-
end:
|
707
|
-
patterns:
|
669
|
+
end: "\\>"
|
670
|
+
patterns:
|
708
671
|
- name: constant.character.escape.ruby
|
709
|
-
match:
|
672
|
+
match: "\\\\\\>|\\\\\\\\"
|
710
673
|
- include: "#nest_ltgt"
|
711
674
|
comment: literal incapable of interpolation -- <>
|
712
675
|
- name: string.quoted.other.literal.lower.ruby
|
713
|
-
endCaptures:
|
714
|
-
|
676
|
+
endCaptures:
|
677
|
+
'0':
|
715
678
|
name: punctuation.definition.string.end.ruby
|
716
679
|
begin: "%[qws]\\["
|
717
|
-
beginCaptures:
|
718
|
-
|
680
|
+
beginCaptures:
|
681
|
+
'0':
|
719
682
|
name: punctuation.definition.string.begin.ruby
|
720
|
-
end:
|
721
|
-
patterns:
|
683
|
+
end: "\\]"
|
684
|
+
patterns:
|
722
685
|
- name: constant.character.escape.ruby
|
723
|
-
match:
|
686
|
+
match: "\\\\\\]|\\\\\\\\"
|
724
687
|
- include: "#nest_brackets"
|
725
688
|
comment: literal incapable of interpolation -- []
|
726
689
|
- name: string.quoted.other.literal.lower.ruby
|
727
|
-
endCaptures:
|
728
|
-
|
690
|
+
endCaptures:
|
691
|
+
'0':
|
729
692
|
name: punctuation.definition.string.end.ruby
|
730
693
|
begin: "%[qws]\\{"
|
731
|
-
beginCaptures:
|
732
|
-
|
694
|
+
beginCaptures:
|
695
|
+
'0':
|
733
696
|
name: punctuation.definition.string.begin.ruby
|
734
|
-
end:
|
735
|
-
patterns:
|
697
|
+
end: "\\}"
|
698
|
+
patterns:
|
736
699
|
- name: constant.character.escape.ruby
|
737
|
-
match:
|
700
|
+
match: "\\\\\\}|\\\\\\\\"
|
738
701
|
- include: "#nest_curly"
|
739
702
|
comment: literal incapable of interpolation -- {}
|
740
703
|
- name: string.quoted.other.literal.lower.ruby
|
741
|
-
endCaptures:
|
742
|
-
|
704
|
+
endCaptures:
|
705
|
+
'0':
|
743
706
|
name: punctuation.definition.string.end.ruby
|
744
707
|
begin: "%[qws]([^\\w])"
|
745
|
-
beginCaptures:
|
746
|
-
|
708
|
+
beginCaptures:
|
709
|
+
'0':
|
747
710
|
name: punctuation.definition.string.begin.ruby
|
748
|
-
end:
|
749
|
-
patterns:
|
750
|
-
- match:
|
711
|
+
end: "\\1"
|
712
|
+
patterns:
|
713
|
+
- match: "\\\\."
|
751
714
|
comment: Cant be named because its not neccesarily an escape.
|
752
715
|
comment: literal incapable of interpolation -- wildcard
|
753
716
|
- name: constant.other.symbol.ruby
|
754
|
-
captures:
|
755
|
-
|
717
|
+
captures:
|
718
|
+
'1':
|
756
719
|
name: punctuation.definition.constant.ruby
|
757
|
-
match: (?<!:)(:)(?>[a-zA-Z_]
|
720
|
+
match: "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|@@?[a-zA-Z_]\\w*)"
|
758
721
|
comment: symbols
|
759
722
|
- name: comment.block.documentation.ruby
|
760
|
-
captures:
|
761
|
-
|
723
|
+
captures:
|
724
|
+
'0':
|
762
725
|
name: punctuation.definition.comment.ruby
|
763
|
-
begin: ^=begin
|
764
|
-
end: ^=end
|
726
|
+
begin: "^=begin"
|
727
|
+
end: "^=end"
|
765
728
|
comment: multiline comments
|
766
729
|
- name: comment.line.number-sign.ruby
|
767
|
-
captures:
|
768
|
-
|
730
|
+
captures:
|
731
|
+
'1':
|
769
732
|
name: punctuation.definition.comment.ruby
|
770
|
-
match: (?:^[
|
733
|
+
match: "(?:^[ \\t]+)?(#).*$\\n?"
|
771
734
|
- name: constant.numeric.ruby
|
772
|
-
match: (
|
773
|
-
comment: "\n\
|
774
|
-
\t\t\
|
775
|
-
\t\t\texamples (
|
776
|
-
\
|
777
|
-
\t\t\texamples (
|
778
|
-
\t\t\t
|
779
|
-
\t\t\
|
780
|
-
|
781
|
-
|
782
|
-
\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\
|
783
|
-
\t\t\texamples (4th alternation = normal):\n\
|
784
|
-
\t\t\t?a ?A ?0 \n\
|
785
|
-
\t\t\t?* ?\" ?( \n\
|
786
|
-
\t\t\t?. ?#\n\
|
787
|
-
\t\t\t\n\
|
788
|
-
\t\t\t\n\
|
789
|
-
\t\t\tthe negative lookbehind prevents against matching\n\
|
790
|
-
\t\t\tp(42.tainted?)\n\
|
791
|
-
\t\t\t"
|
792
|
-
- captures:
|
793
|
-
"0":
|
735
|
+
match: "(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])"
|
736
|
+
comment: "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation
|
737
|
+
= hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0
|
738
|
+
\ ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n
|
739
|
+
\ ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a
|
740
|
+
\ ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a
|
741
|
+
\ ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe
|
742
|
+
negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t"
|
743
|
+
- captures:
|
744
|
+
'0':
|
794
745
|
name: string.unquoted.program-block.ruby
|
795
|
-
begin: ^__END__
|
746
|
+
begin: "^__END__\\n"
|
796
747
|
contentName: text.plain
|
797
|
-
end: (?=not)impossible
|
798
|
-
patterns:
|
748
|
+
end: "(?=not)impossible"
|
749
|
+
patterns:
|
799
750
|
- name: text.html.embedded.ruby
|
800
|
-
begin: (?=<?xml|<(?i:html
|
801
|
-
end: (?=not)impossible
|
802
|
-
patterns:
|
751
|
+
begin: "(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))"
|
752
|
+
end: "(?=not)impossible"
|
753
|
+
patterns:
|
803
754
|
- include: text.html.basic
|
804
755
|
comment: __END__ marker
|
805
756
|
- name: string.unquoted.heredoc.ruby
|
806
|
-
endCaptures:
|
807
|
-
|
757
|
+
endCaptures:
|
758
|
+
'0':
|
808
759
|
name: punctuation.definition.string.end.ruby
|
809
|
-
begin: (
|
810
|
-
beginCaptures:
|
811
|
-
|
760
|
+
begin: "(?>\\=\\s*<<(\\w+))(?!\\s+#\\s*([Cc]|sh|[Jj]ava))"
|
761
|
+
beginCaptures:
|
762
|
+
'0':
|
812
763
|
name: punctuation.definition.string.begin.ruby
|
813
|
-
end:
|
814
|
-
patterns:
|
764
|
+
end: "^\\1$"
|
765
|
+
patterns:
|
815
766
|
- include: "#heredoc"
|
816
767
|
- include: "#interpolated_ruby"
|
817
768
|
- include: "#escaped_char"
|
818
769
|
- name: string.unquoted.embedded.html.ruby
|
819
|
-
endCaptures:
|
820
|
-
|
770
|
+
endCaptures:
|
771
|
+
'0':
|
821
772
|
name: punctuation.definition.string.end.ruby
|
822
|
-
begin: (?><<-HTML
|
773
|
+
begin: "(?><<-HTML\\b)"
|
823
774
|
contentName: text.html.embedded.ruby
|
824
|
-
beginCaptures:
|
825
|
-
|
775
|
+
beginCaptures:
|
776
|
+
'0':
|
826
777
|
name: punctuation.definition.string.begin.ruby
|
827
|
-
end:
|
828
|
-
patterns:
|
778
|
+
end: "\\s*HTML$"
|
779
|
+
patterns:
|
829
780
|
- include: "#heredoc"
|
830
781
|
- include: text.html.basic
|
831
782
|
- include: "#interpolated_ruby"
|
832
783
|
- include: "#escaped_char"
|
833
784
|
comment: heredoc with embedded HTML and indented terminator
|
834
785
|
- name: string.unquoted.embedded.ruby.ruby
|
835
|
-
endCaptures:
|
836
|
-
|
786
|
+
endCaptures:
|
787
|
+
'0':
|
837
788
|
name: punctuation.definition.string.end.ruby
|
838
|
-
begin: (?><<-(["
|
839
|
-
beginCaptures:
|
840
|
-
|
789
|
+
begin: "(?><<-([\"\\\\']?)(\\w+_(?i:eval))\\1)"
|
790
|
+
beginCaptures:
|
791
|
+
'0':
|
841
792
|
name: punctuation.definition.string.begin.ruby
|
842
|
-
end:
|
843
|
-
patterns:
|
793
|
+
end: "\\s*\\2$"
|
794
|
+
patterns:
|
844
795
|
- include: "#heredoc"
|
845
796
|
- include: "#interpolated_ruby"
|
846
797
|
- include: source.ruby
|
847
798
|
- include: "#escaped_char"
|
848
799
|
comment: ruby code in heredoc, interpolated
|
849
800
|
- name: string.unquoted.heredoc.ruby
|
850
|
-
endCaptures:
|
851
|
-
|
801
|
+
endCaptures:
|
802
|
+
'0':
|
852
803
|
name: punctuation.definition.string.end.ruby
|
853
|
-
begin: (?><<-(
|
854
|
-
beginCaptures:
|
855
|
-
|
804
|
+
begin: "(?><<-(\\w+))"
|
805
|
+
beginCaptures:
|
806
|
+
'0':
|
856
807
|
name: punctuation.definition.string.begin.ruby
|
857
|
-
end:
|
858
|
-
patterns:
|
808
|
+
end: "\\s*\\1$"
|
809
|
+
patterns:
|
859
810
|
- include: "#heredoc"
|
860
811
|
- include: "#interpolated_ruby"
|
861
812
|
- include: "#escaped_char"
|
862
813
|
comment: heredoc with indented terminator
|
863
814
|
- name: string.unquoted.embedded.c.ruby
|
864
|
-
endCaptures:
|
865
|
-
|
815
|
+
endCaptures:
|
816
|
+
'0':
|
866
817
|
name: punctuation.definition.string.end.ruby
|
867
|
-
begin: (
|
868
|
-
beginCaptures:
|
869
|
-
|
818
|
+
begin: "(?>\\=\\s*<<(\\w+))(?=\\s+#\\s*[Cc](?!(\\+\\+|[Ss][Ss])))"
|
819
|
+
beginCaptures:
|
820
|
+
'0':
|
870
821
|
name: punctuation.definition.string.begin.ruby
|
871
|
-
end:
|
872
|
-
patterns:
|
822
|
+
end: "^\\1$"
|
823
|
+
patterns:
|
873
824
|
- include: "#heredoc"
|
874
825
|
- include: source.c
|
875
826
|
- include: "#interpolated_ruby"
|
876
827
|
- include: "#escaped_char"
|
877
828
|
- name: string.unquoted.embedded.cplusplus.ruby
|
878
|
-
endCaptures:
|
879
|
-
|
829
|
+
endCaptures:
|
830
|
+
'0':
|
880
831
|
name: punctuation.definition.string.end.ruby
|
881
|
-
begin: (
|
882
|
-
beginCaptures:
|
883
|
-
|
832
|
+
begin: "(?>\\=\\s*<<(\\w+))(?=\\s+#\\s*[Cc]\\+\\+)"
|
833
|
+
beginCaptures:
|
834
|
+
'0':
|
884
835
|
name: punctuation.definition.string.begin.ruby
|
885
|
-
end:
|
886
|
-
patterns:
|
836
|
+
end: "^\\1$"
|
837
|
+
patterns:
|
887
838
|
- include: "#heredoc"
|
888
839
|
- include: source.c++
|
889
840
|
- include: "#interpolated_ruby"
|
890
841
|
- include: "#escaped_char"
|
891
842
|
- name: string.unquoted.embedded.css.ruby
|
892
|
-
endCaptures:
|
893
|
-
|
843
|
+
endCaptures:
|
844
|
+
'0':
|
894
845
|
name: punctuation.definition.string.end.ruby
|
895
|
-
begin: (
|
896
|
-
beginCaptures:
|
897
|
-
|
846
|
+
begin: "(?>\\=\\s*<<(\\w+))(?=\\s+#\\s*[Cc][Ss][Ss])"
|
847
|
+
beginCaptures:
|
848
|
+
'0':
|
898
849
|
name: punctuation.definition.string.begin.ruby
|
899
|
-
end:
|
900
|
-
patterns:
|
850
|
+
end: "^\\1$"
|
851
|
+
patterns:
|
901
852
|
- include: "#heredoc"
|
902
853
|
- include: source.css
|
903
854
|
- include: "#interpolated_ruby"
|
904
855
|
- include: "#escaped_char"
|
905
856
|
- name: string.unquoted.embedded.js.ruby
|
906
|
-
endCaptures:
|
907
|
-
|
857
|
+
endCaptures:
|
858
|
+
'0':
|
908
859
|
name: punctuation.definition.string.end.ruby
|
909
|
-
begin: (
|
910
|
-
beginCaptures:
|
911
|
-
|
860
|
+
begin: "(?>\\=\\s*<<(\\w+))(?=\\s+#\\s*[Jj]ava[Ss]cript)"
|
861
|
+
beginCaptures:
|
862
|
+
'0':
|
912
863
|
name: punctuation.definition.string.begin.ruby
|
913
|
-
end:
|
914
|
-
patterns:
|
864
|
+
end: "^\\1$"
|
865
|
+
patterns:
|
915
866
|
- include: "#heredoc"
|
916
867
|
- include: source.js
|
917
868
|
- include: "#interpolated_ruby"
|
918
869
|
- include: "#escaped_char"
|
919
870
|
- name: string.unquoted.embedded.shell.ruby
|
920
|
-
endCaptures:
|
921
|
-
|
871
|
+
endCaptures:
|
872
|
+
'0':
|
922
873
|
name: punctuation.definition.string.end.ruby
|
923
|
-
begin: (
|
924
|
-
beginCaptures:
|
925
|
-
|
874
|
+
begin: "(?>\\=\\s*<<(\\w+))(?=\\s+#\\s*sh)"
|
875
|
+
beginCaptures:
|
876
|
+
'0':
|
926
877
|
name: punctuation.definition.string.begin.ruby
|
927
|
-
end:
|
928
|
-
patterns:
|
878
|
+
end: "^\\1$"
|
879
|
+
patterns:
|
929
880
|
- include: "#heredoc"
|
930
881
|
- include: source.shell
|
931
882
|
- include: "#interpolated_ruby"
|
932
883
|
- include: "#escaped_char"
|
933
884
|
- name: meta.function-call.method.with-arguments.ruby
|
934
|
-
begin: (?<=[
|
935
|
-
beginCaptures:
|
936
|
-
|
885
|
+
begin: "(?<=[^\\.])(?=(\\.|::)[a-zA-Z][a-zA-Z0-9_!?=]*\\()(\\.|::)"
|
886
|
+
beginCaptures:
|
887
|
+
'1':
|
937
888
|
name: punctuation.separator.method.ruby
|
938
|
-
end: (?<=[a-zA-Z0-9_!?=])(
|
939
|
-
patterns:
|
940
|
-
- comment:
|
889
|
+
end: "(?<=[a-zA-Z0-9_!?=])(?=\\()"
|
890
|
+
patterns:
|
891
|
+
- comment: 'made this way to eventually support including #known_function_names'
|
941
892
|
- name: entity.name.function.ruby
|
942
|
-
match: ([a-zA-Z][a-zA-Z0-9_!?=]*)(?=[^a-zA-Z0-9_!?])
|
893
|
+
match: "([a-zA-Z][a-zA-Z0-9_!?=]*)(?=[^a-zA-Z0-9_!?])"
|
943
894
|
- name: meta.function-call.method.without-arguments.ruby
|
944
|
-
begin: (?<=[
|
945
|
-
beginCaptures:
|
946
|
-
|
895
|
+
begin: "(?<=[^\\.])(?=(\\.|::)[a-zA-Z][a-zA-Z0-9_!?]*[^a-zA-Z0-9_!?])(\\.|::)"
|
896
|
+
beginCaptures:
|
897
|
+
'1':
|
947
898
|
name: punctuation.separator.method.ruby
|
948
|
-
end: (?<=[a-zA-Z0-9_!?])(?=[^a-zA-Z0-9_!?])
|
949
|
-
patterns:
|
950
|
-
- comment:
|
899
|
+
end: "(?<=[a-zA-Z0-9_!?])(?=[^a-zA-Z0-9_!?])"
|
900
|
+
patterns:
|
901
|
+
- comment: 'made this way to eventually support including #known_function_names'
|
951
902
|
- name: entity.name.function.ruby
|
952
|
-
match: ([a-zA-Z][a-zA-Z0-9_!?]*)(?=[^a-zA-Z0-9_!?])
|
903
|
+
match: "([a-zA-Z][a-zA-Z0-9_!?]*)(?=[^a-zA-Z0-9_!?])"
|
953
904
|
- name: meta.function-call.ruby
|
954
|
-
begin: (?=[a-zA-Z][a-zA-Z0-9_!?]
|
955
|
-
end: (
|
956
|
-
patterns:
|
957
|
-
- comment:
|
905
|
+
begin: "(?=[a-zA-Z][a-zA-Z0-9_!?]+\\()"
|
906
|
+
end: "(?=\\()"
|
907
|
+
patterns:
|
908
|
+
- comment: 'eventually include #known_function_names'
|
958
909
|
- name: entity.name.function.ruby
|
959
|
-
match: ([a-zA-Z0-9_!?]+)(
|
960
|
-
- captures:
|
961
|
-
|
910
|
+
match: "([a-zA-Z0-9_!?]+)(?=\\()"
|
911
|
+
- captures:
|
912
|
+
'1':
|
962
913
|
name: punctuation.separator.variable.ruby
|
963
|
-
begin: (
|
964
|
-
end: (
|
965
|
-
patterns:
|
914
|
+
begin: "(?<=\\{|do|\\{\\s|do\\s)(\\|)"
|
915
|
+
end: "(\\|)"
|
916
|
+
patterns:
|
966
917
|
- name: variable.other.block.ruby
|
967
918
|
match: "[_a-zA-Z][_a-zA-Z0-9]*"
|
968
919
|
- name: punctuation.separator.variable.ruby
|
969
920
|
match: ","
|
970
921
|
- name: punctuation.separator.key-value
|
971
|
-
match: =>
|
922
|
+
match: "=>"
|
972
923
|
- name: keyword.operator.unary.ruby
|
973
|
-
match:
|
924
|
+
match: "\\+@|-@"
|
974
925
|
- name: keyword.operator.assignment.augmented.ruby
|
975
|
-
match:
|
926
|
+
match: "<<=|%=|&=|\\*=|\\*\\*=|\\+=|\\-=|\\^=|\\|{1,2}=|/=|<<"
|
976
927
|
- name: keyword.operator.comparison.ruby
|
977
|
-
match: <=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[
|
928
|
+
match: "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?"
|
978
929
|
- name: keyword.operator.logical.ruby
|
979
|
-
match: (?<=[
|
930
|
+
match: "(?<=[ \\t])!|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\^"
|
980
931
|
- name: keyword.operator.arithmetic.ruby
|
981
|
-
match: (
|
932
|
+
match: "(%|&|\\*\\*|\\*|\\+|\\-|/)"
|
982
933
|
- name: keyword.operator.assignment.ruby
|
983
934
|
match: "="
|
984
935
|
- name: keyword.operator.other.ruby
|
985
|
-
match:
|
936
|
+
match: "\\||~|>>"
|
986
937
|
- name: punctuation.separator.other.ruby
|
987
938
|
match: ":"
|
988
939
|
- name: punctuation.separator.statement.ruby
|
989
|
-
match:
|
940
|
+
match: "\\;"
|
990
941
|
- name: punctuation.separator.object.ruby
|
991
942
|
match: ","
|
992
943
|
- name: punctuation.separator.method.ruby
|
993
944
|
match: "\\.|::"
|
994
945
|
- name: punctuation.section.scope.ruby
|
995
|
-
match:
|
946
|
+
match: "\\{|\\}"
|
996
947
|
- name: punctuation.section.array.ruby
|
997
|
-
match:
|
948
|
+
match: "\\[|\\]"
|
998
949
|
- name: punctuation.section.function.ruby
|
999
|
-
match:
|
1000
|
-
foldingStopMarker: "(?x)\n\
|
1001
|
-
\t\t
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
\
|
1006
|
-
\
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
\
|
1011
|
-
\t\"
|
1012
|
-
|
1013
|
-
\
|
1014
|
-
\
|
1015
|
-
|
1016
|
-
\
|
1017
|
-
\tthere is no way to distinguish perfectly between the << operator and the start\n\
|
1018
|
-
\tof a heredoc. Currently, we require assignment to recognize a heredoc. More\n\
|
1019
|
-
\trefinement is possible.\n\
|
1020
|
-
\t\xE2\x80\xA2 Heredocs with indented terminators (<<-) are always distinguishable, however.\n\
|
1021
|
-
\t\xE2\x80\xA2 Nested heredocs are not really supportable at present\n\n\
|
1022
|
-
\ttext:\n\
|
1023
|
-
\tprint <<-'THERE' \n\
|
1024
|
-
\tThis is single quoted. \n\
|
1025
|
-
\tThe above used #{Time.now} \n\
|
1026
|
-
\tTHERE \n\
|
1027
|
-
\tsymtoms:\n\
|
1028
|
-
\tFrom Programming Ruby p306; should be a non-interpolated heredoc.\n\
|
1029
|
-
\t\n\
|
1030
|
-
\ttext:\n\
|
1031
|
-
\t\"a\\332a\"\n\
|
1032
|
-
\tsymptoms:\n\
|
1033
|
-
\t'\\332' is not recognized as slash3.. which should be octal 332.\n\
|
1034
|
-
\tsolution:\n\
|
1035
|
-
\tplain regexp.. should be easy.\n\n text:\n val?(a):p(b)\n val?'a':'b'\n symptoms:\n ':p' is recognized as a symbol.. its 2 things ':' and 'p'.\n :'b' has same problem.\n solution:\n ternary operator rule, precedence stuff, symbol rule.\n but also consider 'a.b?(:c)' ??\n"
|
950
|
+
match: "\\(|\\)"
|
951
|
+
foldingStopMarker: "(?x)\n\t\t( (^|;) \\s*+ end \\s*+ ([#].*)? $\n\t\t| (^|;)
|
952
|
+
\\s*+ end \\. .* $\n\t\t| ^ \\s*+ [}\\]] \\s*+ ([#].*)? $\n\t\t| [#] .*?
|
953
|
+
\\(end\\) \\s*+ $ # Sune’s special marker\n\t\t| ^=end\n\t\t)"
|
954
|
+
keyEquivalent: "^~R"
|
955
|
+
comment: "\n\tTODO: unresolved issues\n\n\ttext:\n\t\"p << end\n\tprint me!\n\tend\"\n\tsymptoms:\n\tnot
|
956
|
+
recognized as a heredoc\n\tsolution:\n\tthere is no way to distinguish perfectly
|
957
|
+
between the << operator and the start\n\tof a heredoc. Currently, we require assignment
|
958
|
+
to recognize a heredoc. More\n\trefinement is possible.\n\t• Heredocs with indented
|
959
|
+
terminators (<<-) are always distinguishable, however.\n\t• Nested heredocs are
|
960
|
+
not really supportable at present\n\n\ttext:\n\tprint <<-'THERE' \n\tThis is single
|
961
|
+
quoted. \n\tThe above used #{Time.now} \n\tTHERE \n\tsymtoms:\n\tFrom Programming
|
962
|
+
Ruby p306; should be a non-interpolated heredoc.\n\t\n\ttext:\n\t\"a\\332a\"\n\tsymptoms:\n\t'\\332'
|
963
|
+
is not recognized as slash3.. which should be octal 332.\n\tsolution:\n\tplain regexp..
|
964
|
+
should be easy.\n\n text:\n val?(a):p(b)\n val?'a':'b'\n symptoms:\n
|
965
|
+
\ ':p' is recognized as a symbol.. its 2 things ':' and 'p'.\n :'b' has same
|
966
|
+
problem.\n solution:\n ternary operator rule, precedence stuff, symbol rule.\n
|
967
|
+
\ but also consider 'a.b?(:c)' ??\n"
|