rubybuntu-gedit 11.09.19 → 11.09.29

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.
@@ -48,16 +48,15 @@ You should also use up-to-date {mime types}[https://github.com/janlelis/rubybunt
48
48
  * See `git log` for full details
49
49
  * Based on https://github.com/gmate/gmate/blob/master/lang-specs/ruby_on_rails.lang
50
50
 
51
- == TODO
52
- === ruby.lang - Advanced TODOs [or: build a "real" parser, not (easily) possible with gtksourceview]
51
+ == ruby.lang - Advanced TODOs [not (easily) possible with gtksourceview]
53
52
  * Improve heredocs (e.g. nested ones)
54
- * Different colorizations for "end"s (e.g. def/begin, class/module, while/until, if/case, block), needs to detect modifier statements correctly
53
+ * Different colorizations for "end"s (e.g. def/begin, class/module, while/until, if/case, block), needs to detect modifier statements correctly :/
55
54
  * Detect (multi-line) yard doc tag values
56
55
  * Add escapable char for generic string delimiters
57
56
  * Advanced regex highlighting + multi-line regexes
58
57
  * ruby.lang-extras/known-bugs.rb
59
58
 
60
- === Languages to add/import/update
59
+ == Languages to add/import/update
61
60
  * SASS / SCSS / CSS
62
61
  * COFFEE
63
62
  * HAML
@@ -67,7 +66,7 @@ You should also use up-to-date {mime types}[https://github.com/janlelis/rubybunt
67
66
 
68
67
  Meanwhile, you can, for example, use the ones found in gmate[https://github.com/gmate/gmate/tree/master/lang-specs]
69
68
 
70
- === MAYBE
69
+ == MAYBE
71
70
  * RDOC markup support (and cross-referencing in ruby)
72
71
 
73
72
  == J-_-L
@@ -26,7 +26,7 @@
26
26
  <include>
27
27
  <context where="start" sub-pattern="0" style-ref="output"/>
28
28
  <context where="end" sub-pattern="0" style-ref="output"/>
29
- <context ref="ruby:ruby"/>
29
+ <context ref="ruby-code"/>
30
30
  </include>
31
31
  </context>
32
32
 
@@ -36,6 +36,13 @@
36
36
  <include>
37
37
  <context where="start" sub-pattern="0" style-ref="tag"/>
38
38
  <context where="end" sub-pattern="0" style-ref="tag"/>
39
+ <context ref="ruby-code"/>
40
+ </include>
41
+ </context>
42
+
43
+ <context id="ruby-code" extend-parent="false"><!-- extend false -->
44
+ <start></start><end>$^</end><!-- everything -->
45
+ <include>
39
46
  <context ref="ruby:ruby"/>
40
47
  </include>
41
48
  </context>
@@ -114,11 +114,13 @@
114
114
  <match case-sensitive="false">\s*#.*coding.*</match>
115
115
  </context>
116
116
 
117
+ <define-regex id="alnum">[^&amp;&gt;&lt;!?"'`@$%/()=\\{\[\]}*+~#|;,:.\-\^\s]</define-regex>
117
118
  <define-regex id="no_method_prefix">(?&lt;![\w\.\:])</define-regex>
119
+ <define-regex id="no_method_suffix">(?!(\%{alnum}|[?!]))</define-regex>
118
120
 
119
121
  <context id="keywords" style-ref="keyword">
120
- <!-- do not highlight methods like .class -->
121
122
  <prefix>\%{no_method_prefix}</prefix>
123
+ <suffix>\%{no_method_suffix}</suffix>
122
124
  <!-- only put here if not already used at another place -->
123
125
  <keyword>BEGIN</keyword>
124
126
  <keyword>END</keyword>
@@ -151,260 +153,295 @@
151
153
  <keyword>yield</keyword>
152
154
  </context>
153
155
 
154
- <context id="important-methods" style-ref="important-method" extend-parent="false">
155
- <keyword>Array(?=\()</keyword>
156
- <keyword>Complex(?=\()</keyword>
157
- <keyword>Float(?=\()</keyword>
158
- <keyword>Integer(?=\()</keyword>
159
- <keyword>Rational(?=\()</keyword>
160
- <keyword>String(?=\()</keyword>
161
- <keyword>__callee__</keyword>
162
- <keyword>__id__</keyword>
163
- <keyword>__method__</keyword>
164
- <keyword>__send__</keyword>
165
- <keyword>abort</keyword>
166
- <keyword>allocate</keyword>
167
- <keyword>ancestors</keyword>
168
- <keyword>at_exit</keyword>
169
- <keyword>autoload</keyword>
170
- <keyword>autoload\?</keyword>
171
- <keyword>binding</keyword>
172
- <keyword>block_given\?</keyword>
173
- <keyword>caller</keyword>
174
- <keyword>catch</keyword>
175
- <keyword>class</keyword>
176
- <keyword>class_eval</keyword>
177
- <keyword>class_exec</keyword>
178
- <keyword>class_variable_defined\?</keyword>
179
- <keyword>class_variable_get</keyword>
180
- <keyword>class_variable_set</keyword>
181
- <keyword>class_variables</keyword>
182
- <keyword>clone</keyword>
183
- <keyword>const_defined\?</keyword>
184
- <keyword>const_get</keyword>
185
- <keyword>const_missing</keyword>
186
- <keyword>const_set</keyword>
187
- <keyword>constants</keyword>
188
- <keyword>define_singleton_method</keyword>
189
- <keyword>display</keyword>
190
- <keyword>dup</keyword>
191
- <keyword>enum_for</keyword>
192
- <keyword>eql\?</keyword>
193
- <keyword>equal\?</keyword>
194
- <keyword>eval</keyword>
195
- <keyword>exec</keyword>
196
- <keyword>exit!</keyword>
197
- <keyword>exit</keyword>
198
- <keyword>extend</keyword>
199
- <keyword>fail</keyword>
200
- <keyword>fork</keyword>
201
- <keyword>format</keyword>
202
- <keyword>freeze</keyword>
203
- <keyword>frozen\?</keyword>
204
- <keyword>gets</keyword>
205
- <keyword>global_variables</keyword>
206
- <keyword>hash</keyword>
207
- <keyword>include\?</keyword>
208
- <keyword>included_modules</keyword>
209
- <keyword>initialize_clone</keyword>
210
- <keyword>initialize_dup</keyword>
211
- <keyword>inspect</keyword>
212
- <keyword>instance_eval</keyword>
213
- <keyword>instance_exec</keyword>
214
- <keyword>instance_method</keyword>
215
- <keyword>instance_methods</keyword>
216
- <keyword>instance_of\?</keyword>
217
- <keyword>instance_variable_defined\?</keyword>
218
- <keyword>instance_variable_get</keyword>
219
- <keyword>instance_variable_set</keyword>
220
- <keyword>instance_variables</keyword>
221
- <keyword>is_a\?</keyword>
222
- <keyword>iterator\?</keyword>
223
- <keyword>kind_of\?</keyword>
224
- <keyword>lambda</keyword>
225
- <keyword>load</keyword>
226
- <keyword>local_variables</keyword>
227
- <keyword>loop</keyword>
228
- <keyword>method</keyword>
229
- <keyword>method_defined\?</keyword>
230
- <keyword>methods</keyword>
231
- <keyword>module_eval</keyword>
232
- <keyword>module_exec</keyword>
233
- <keyword>name</keyword>
234
- <keyword>nesting</keyword>
235
- <keyword>new</keyword>
236
- <keyword>nil\?</keyword>
237
- <keyword>object_id</keyword>
238
- <keyword>open</keyword>
239
- <keyword>p</keyword>
240
- <keyword>print</keyword>
241
- <keyword>printf</keyword>
242
- <keyword>private_class_method</keyword>
243
- <keyword>private_instance_methods</keyword>
244
- <keyword>private_method_defined\?</keyword>
245
- <keyword>private_methods</keyword>
246
- <keyword>proc</keyword>
247
- <keyword>protected_instance_methods</keyword>
248
- <keyword>protected_method_defined\?</keyword>
249
- <keyword>protected_methods</keyword>
250
- <keyword>public_class_method</keyword>
251
- <keyword>public_instance_method</keyword>
252
- <keyword>public_instance_methods</keyword>
253
- <keyword>public_method</keyword>
254
- <keyword>public_method_defined\?</keyword>
255
- <keyword>public_methods</keyword>
256
- <keyword>public_send</keyword>
257
- <keyword>putc</keyword>
258
- <keyword>puts</keyword>
259
- <keyword>raise</keyword>
260
- <keyword>rand</keyword>
261
- <keyword>readline</keyword>
262
- <keyword>readlines</keyword>
263
- <keyword>remove_class_variable</keyword>
264
- <keyword>require</keyword>
265
- <keyword>require_relative</keyword>
266
- <keyword>respond_to\?</keyword>
267
- <keyword>respond_to_missing\?</keyword>
268
- <keyword>select</keyword>
269
- <keyword>send</keyword>
270
- <keyword>set_trace_func</keyword>
271
- <keyword>singleton_class</keyword>
272
- <keyword>singleton_methods</keyword>
273
- <keyword>sleep</keyword>
274
- <keyword>spawn</keyword>
275
- <keyword>sprintf</keyword>
276
- <keyword>srand</keyword>
277
- <keyword>superclass</keyword>
278
- <keyword>syscall</keyword>
279
- <keyword>system</keyword>
280
- <keyword>taint</keyword>
281
- <keyword>tainted\?</keyword>
282
- <keyword>tap</keyword>
283
- <keyword>test</keyword>
284
- <keyword>throw</keyword>
285
- <keyword>to_enum</keyword>
286
- <keyword>to_s</keyword>
287
- <keyword>trace_var</keyword>
288
- <keyword>trap</keyword>
289
- <keyword>trust</keyword>
290
- <keyword>untaint</keyword>
291
- <keyword>untrace_var</keyword>
292
- <keyword>untrust</keyword>
156
+ <context id="important-methods" style-ref="important-method">
157
+ <suffix></suffix>
158
+ <keyword>warn\%{no_method_suffix}</keyword>
293
159
  <keyword>untrusted\?</keyword>
294
- <keyword>warn</keyword>
160
+ <keyword>untrust\%{no_method_suffix}</keyword>
161
+ <keyword>untrace_var\%{no_method_suffix}</keyword>
162
+ <keyword>untaint\%{no_method_suffix}</keyword>
163
+ <keyword>undef_method\%{no_method_suffix}</keyword>
164
+ <keyword>trust\%{no_method_suffix}</keyword>
165
+ <keyword>trap\%{no_method_suffix}</keyword>
166
+ <keyword>trace_var\%{no_method_suffix}</keyword>
167
+ <keyword>to_s\%{no_method_suffix}</keyword>
168
+ <keyword>to_enum\%{no_method_suffix}</keyword>
169
+ <keyword>throw\%{no_method_suffix}</keyword>
170
+ <keyword>test\%{no_method_suffix}</keyword>
171
+ <keyword>tap\%{no_method_suffix}</keyword>
172
+ <keyword>tainted\?</keyword>
173
+ <keyword>taint\%{no_method_suffix}</keyword>
174
+ <keyword>system\%{no_method_suffix}</keyword>
175
+ <keyword>syscall\%{no_method_suffix}</keyword>
176
+ <keyword>superclass\%{no_method_suffix}</keyword>
177
+ <keyword>srand\%{no_method_suffix}</keyword>
178
+ <keyword>sprintf\%{no_method_suffix}</keyword>
179
+ <keyword>spawn\%{no_method_suffix}</keyword>
180
+ <keyword>sleep\%{no_method_suffix}</keyword>
181
+ <keyword>singleton_methods\%{no_method_suffix}</keyword>
182
+ <keyword>singleton_method_undefined\%{no_method_suffix}</keyword>
183
+ <keyword>singleton_method_removed\%{no_method_suffix}</keyword>
184
+ <keyword>singleton_method_added\%{no_method_suffix}</keyword>
185
+ <keyword>singleton_class\%{no_method_suffix}</keyword>
186
+ <keyword>set_trace_func\%{no_method_suffix}</keyword>
187
+ <keyword>send\%{no_method_suffix}</keyword>
188
+ <keyword>select\%{no_method_suffix}</keyword>
189
+ <keyword>respond_to_missing\?</keyword>
190
+ <keyword>respond_to\?</keyword>
191
+ <keyword>require_relative\%{no_method_suffix}</keyword>
192
+ <keyword>require\%{no_method_suffix}</keyword>
193
+ <keyword>remove_method\%{no_method_suffix}</keyword>
194
+ <keyword>remove_instance_variable\%{no_method_suffix}</keyword>
195
+ <keyword>remove_const\%{no_method_suffix}</keyword>
196
+ <keyword>remove_class_variable\%{no_method_suffix}</keyword>
197
+ <keyword>readlines\%{no_method_suffix}</keyword>
198
+ <keyword>readline\%{no_method_suffix}</keyword>
199
+ <keyword>rand\%{no_method_suffix}</keyword>
200
+ <keyword>raise\%{no_method_suffix}</keyword>
201
+ <keyword>puts\%{no_method_suffix}</keyword>
202
+ <keyword>putc\%{no_method_suffix}</keyword>
203
+ <keyword>public_send\%{no_method_suffix}</keyword>
204
+ <keyword>public_methods\%{no_method_suffix}</keyword>
205
+ <keyword>public_method_defined\?</keyword>
206
+ <keyword>public_method\%{no_method_suffix}</keyword>
207
+ <keyword>public_instance_methods\%{no_method_suffix}</keyword>
208
+ <keyword>public_instance_method\%{no_method_suffix}</keyword>
209
+ <keyword>public_constant\%{no_method_suffix}</keyword>
210
+ <keyword>public_class_method\%{no_method_suffix}</keyword>
211
+ <keyword>public\%{no_method_suffix}</keyword>
212
+ <keyword>protected_methods\%{no_method_suffix}</keyword>
213
+ <keyword>protected_method_defined\?</keyword>
214
+ <keyword>protected_instance_methods\%{no_method_suffix}</keyword>
215
+ <keyword>protected\%{no_method_suffix}</keyword>
216
+ <keyword>proc\%{no_method_suffix}</keyword>
217
+ <keyword>private_methods\%{no_method_suffix}</keyword>
218
+ <keyword>private_method_defined\?</keyword>
219
+ <keyword>private_instance_methods\%{no_method_suffix}</keyword>
220
+ <keyword>private_constant\%{no_method_suffix}</keyword>
221
+ <keyword>private_class_method\%{no_method_suffix}</keyword>
222
+ <keyword>private\%{no_method_suffix}</keyword>
223
+ <keyword>printf\%{no_method_suffix}</keyword>
224
+ <keyword>print\%{no_method_suffix}</keyword>
225
+ <keyword>p\%{no_method_suffix}</keyword>
226
+ <keyword>open\%{no_method_suffix}</keyword>
227
+ <keyword>object_id\%{no_method_suffix}</keyword>
228
+ <keyword>nil\?</keyword>
229
+ <keyword>new\%{no_method_suffix}</keyword>
230
+ <keyword>nesting\%{no_method_suffix}</keyword>
231
+ <keyword>name\%{no_method_suffix}</keyword>
232
+ <keyword>module_function\%{no_method_suffix}</keyword>
233
+ <keyword>module_exec\%{no_method_suffix}</keyword>
234
+ <keyword>module_eval\%{no_method_suffix}</keyword>
235
+ <keyword>methods\%{no_method_suffix}</keyword>
236
+ <keyword>method_undefined\%{no_method_suffix}</keyword>
237
+ <keyword>method_removed\%{no_method_suffix}</keyword>
238
+ <keyword>method_missing\%{no_method_suffix}</keyword>
239
+ <keyword>method_defined\?</keyword>
240
+ <keyword>method_added\%{no_method_suffix}</keyword>
241
+ <keyword>method\%{no_method_suffix}</keyword>
242
+ <keyword>loop\%{no_method_suffix}</keyword>
243
+ <keyword>local_variables\%{no_method_suffix}</keyword>
244
+ <keyword>load\%{no_method_suffix}</keyword>
245
+ <keyword>lambda\%{no_method_suffix}</keyword>
246
+ <keyword>kind_of\?</keyword>
247
+ <keyword>iterator\?</keyword>
248
+ <keyword>is_a\?</keyword>
249
+ <keyword>instance_variables\%{no_method_suffix}</keyword>
250
+ <keyword>instance_variable_set\%{no_method_suffix}</keyword>
251
+ <keyword>instance_variable_get\%{no_method_suffix}</keyword>
252
+ <keyword>instance_variable_defined\?</keyword>
253
+ <keyword>instance_of\?</keyword>
254
+ <keyword>instance_methods\%{no_method_suffix}</keyword>
255
+ <keyword>instance_method\%{no_method_suffix}</keyword>
256
+ <keyword>instance_exec\%{no_method_suffix}</keyword>
257
+ <keyword>instance_eval\%{no_method_suffix}</keyword>
258
+ <keyword>inspect\%{no_method_suffix}</keyword>
259
+ <keyword>initialize_dup\%{no_method_suffix}</keyword>
260
+ <keyword>initialize_copy\%{no_method_suffix}</keyword>
261
+ <keyword>initialize_clone\%{no_method_suffix}</keyword>
262
+ <keyword>initialize\%{no_method_suffix}</keyword>
263
+ <keyword>included_modules\%{no_method_suffix}</keyword>
264
+ <keyword>included\%{no_method_suffix}</keyword>
265
+ <keyword>include\?</keyword>
266
+ <keyword>include\%{no_method_suffix}</keyword>
267
+ <keyword>hash\%{no_method_suffix}</keyword>
268
+ <keyword>global_variables\%{no_method_suffix}</keyword>
269
+ <keyword>gets\%{no_method_suffix}</keyword>
270
+ <keyword>gem_original_require\%{no_method_suffix}</keyword>
271
+ <keyword>gem\%{no_method_suffix}</keyword>
272
+ <keyword>frozen\?</keyword>
273
+ <keyword>freeze\%{no_method_suffix}</keyword>
274
+ <keyword>format\%{no_method_suffix}</keyword>
275
+ <keyword>fork\%{no_method_suffix}</keyword>
276
+ <keyword>fail\%{no_method_suffix}</keyword>
277
+ <keyword>extended\%{no_method_suffix}</keyword>
278
+ <keyword>extend_object\%{no_method_suffix}</keyword>
279
+ <keyword>extend\%{no_method_suffix}</keyword>
280
+ <keyword>exit\%{no_method_suffix}</keyword>
281
+ <keyword>exit!</keyword>
282
+ <keyword>exec\%{no_method_suffix}</keyword>
283
+ <keyword>eval\%{no_method_suffix}</keyword>
284
+ <keyword>equal\?</keyword>
285
+ <keyword>eql\?</keyword>
286
+ <keyword>enum_for\%{no_method_suffix}</keyword>
287
+ <keyword>dup\%{no_method_suffix}</keyword>
288
+ <keyword>display\%{no_method_suffix}</keyword>
289
+ <keyword>define_singleton_method\%{no_method_suffix}</keyword>
290
+ <keyword>define_method\%{no_method_suffix}</keyword>
291
+ <keyword>constants\%{no_method_suffix}</keyword>
292
+ <keyword>const_set\%{no_method_suffix}</keyword>
293
+ <keyword>const_missing\%{no_method_suffix}</keyword>
294
+ <keyword>const_get\%{no_method_suffix}</keyword>
295
+ <keyword>const_defined\?</keyword>
296
+ <keyword>clone\%{no_method_suffix}</keyword>
297
+ <keyword>class_variables\%{no_method_suffix}</keyword>
298
+ <keyword>class_variable_set\%{no_method_suffix}</keyword>
299
+ <keyword>class_variable_get\%{no_method_suffix}</keyword>
300
+ <keyword>class_variable_defined\?</keyword>
301
+ <keyword>class_exec\%{no_method_suffix}</keyword>
302
+ <keyword>class_eval\%{no_method_suffix}</keyword>
303
+ <keyword>class\%{no_method_suffix}</keyword>
304
+ <keyword>catch\%{no_method_suffix}</keyword>
305
+ <keyword>caller\%{no_method_suffix}</keyword>
306
+ <keyword>block_given\?</keyword>
307
+ <keyword>binding\%{no_method_suffix}</keyword>
308
+ <keyword>autoload\?</keyword>
309
+ <keyword>autoload\%{no_method_suffix}</keyword>
310
+ <keyword>attr_writer\%{no_method_suffix}</keyword>
311
+ <keyword>attr_reader\%{no_method_suffix}</keyword>
312
+ <keyword>attr_accessor\%{no_method_suffix}</keyword>
313
+ <keyword>attr\%{no_method_suffix}</keyword>
314
+ <keyword>at_exit\%{no_method_suffix}</keyword>
315
+ <keyword>append_features\%{no_method_suffix}</keyword>
316
+ <keyword>ancestors\%{no_method_suffix}</keyword>
317
+ <keyword>allocate\%{no_method_suffix}</keyword>
318
+ <keyword>alias_method\%{no_method_suffix}</keyword>
319
+ <keyword>abort\%{no_method_suffix}</keyword>
320
+ <keyword>__send__\%{no_method_suffix}</keyword>
321
+ <keyword>__method__\%{no_method_suffix}</keyword>
322
+ <keyword>__id__\%{no_method_suffix}</keyword>
323
+ <keyword>__callee__\%{no_method_suffix}</keyword>
324
+ <keyword>String(?=\()</keyword>
325
+ <keyword>Rational(?=\()</keyword>
326
+ <keyword>Integer(?=\()</keyword>
327
+ <keyword>Float(?=\()</keyword>
328
+ <keyword>Complex(?=\()</keyword>
329
+ <keyword>Array(?=\()</keyword>
295
330
  </context>
296
331
 
297
332
  <context id="important-constants" style-ref="important-constant" extend-parent="false">
298
- <keyword>Object</keyword>
299
- <keyword>Module</keyword>
300
- <keyword>Class</keyword>
301
- <keyword>Kernel</keyword>
302
- <keyword>NilClass</keyword>
303
- <keyword>NIL</keyword>
304
- <keyword>Data</keyword>
333
+ <prefix>(?&lt;!\%{alnum}::)</prefix><!-- fails on spaces or non alnum -->
334
+ <keyword>ZeroDivisionError</keyword>
335
+ <keyword>UnboundMethod</keyword>
336
+ <keyword>TypeError</keyword>
305
337
  <keyword>TrueClass</keyword>
338
+ <keyword>Time</keyword>
339
+ <keyword>ThreadGroup</keyword>
340
+ <keyword>ThreadError</keyword>
341
+ <keyword>Thread</keyword>
306
342
  <keyword>TRUE</keyword>
307
- <keyword>FalseClass</keyword>
308
- <keyword>FALSE</keyword>
309
- <keyword>Encoding</keyword>
310
- <keyword>Comparable</keyword>
311
- <keyword>Enumerable</keyword>
312
- <keyword>String</keyword>
313
- <keyword>Symbol</keyword>
314
- <keyword>Exception</keyword>
343
+ <keyword>TOPLEVEL_BINDING</keyword>
344
+ <keyword>SystemStackError</keyword>
315
345
  <keyword>SystemExit</keyword>
316
- <keyword>SignalException</keyword>
317
- <keyword>Interrupt</keyword>
346
+ <keyword>SystemCallError</keyword>
347
+ <keyword>SyntaxError</keyword>
348
+ <keyword>Symbol</keyword>
349
+ <keyword>Struct</keyword>
350
+ <keyword>String</keyword>
351
+ <keyword>StopIteration</keyword>
318
352
  <keyword>StandardError</keyword>
319
- <keyword>TypeError</keyword>
320
- <keyword>ArgumentError</keyword>
321
- <keyword>IndexError</keyword>
322
- <keyword>KeyError</keyword>
323
- <keyword>RangeError</keyword>
353
+ <keyword>SignalException</keyword>
354
+ <keyword>Signal</keyword>
355
+ <keyword>SecurityError</keyword>
324
356
  <keyword>ScriptError</keyword>
325
- <keyword>SyntaxError</keyword>
326
- <keyword>LoadError</keyword>
327
- <keyword>NotImplementedError</keyword>
328
- <keyword>NameError</keyword>
329
- <keyword>NoMethodError</keyword>
357
+ <keyword>STDOUT</keyword>
358
+ <keyword>STDIN</keyword>
359
+ <keyword>STDERR</keyword>
360
+ <keyword>SCRIPT_LINES__</keyword>
330
361
  <keyword>RuntimeError</keyword>
331
- <keyword>SecurityError</keyword>
332
- <keyword>NoMemoryError</keyword>
333
- <keyword>EncodingError</keyword>
334
- <keyword>SystemCallError</keyword>
335
- <keyword>Errno</keyword>
336
- <keyword>ZeroDivisionError</keyword>
337
- <keyword>FloatDomainError</keyword>
338
- <keyword>Numeric</keyword>
339
- <keyword>Integer</keyword>
340
- <keyword>Fixnum</keyword>
341
- <keyword>Float</keyword>
342
- <keyword>Bignum</keyword>
343
- <keyword>Array</keyword>
344
- <keyword>Hash</keyword>
345
- <keyword>ENV</keyword>
346
- <keyword>Struct</keyword>
362
+ <keyword>RubyVM</keyword>
347
363
  <keyword>RegexpError</keyword>
348
364
  <keyword>Regexp</keyword>
349
- <keyword>MatchData</keyword>
350
- <keyword>Marshal</keyword>
365
+ <keyword>RbConfig</keyword>
366
+ <keyword>Rational</keyword>
367
+ <keyword>RangeError</keyword>
351
368
  <keyword>Range</keyword>
352
- <keyword>IOError</keyword>
353
- <keyword>EOFError</keyword>
354
- <keyword>IO</keyword>
355
- <keyword>STDIN</keyword>
356
- <keyword>STDOUT</keyword>
357
- <keyword>STDERR</keyword>
358
- <keyword>ARGF</keyword>
359
- <keyword>FileTest</keyword>
360
- <keyword>File</keyword>
361
- <keyword>Dir</keyword>
362
- <keyword>Time</keyword>
363
369
  <keyword>Random</keyword>
364
- <keyword>Signal</keyword>
365
- <keyword>Process</keyword>
366
- <keyword>Proc</keyword>
367
- <keyword>LocalJumpError</keyword>
368
- <keyword>SystemStackError</keyword>
369
- <keyword>Method</keyword>
370
- <keyword>UnboundMethod</keyword>
371
- <keyword>Binding</keyword>
372
- <keyword>Math</keyword>
373
- <keyword>GC</keyword>
374
- <keyword>ObjectSpace</keyword>
375
- <keyword>Enumerator</keyword>
376
- <keyword>StopIteration</keyword>
377
- <keyword>RubyVM</keyword>
378
- <keyword>Thread</keyword>
379
- <keyword>TOPLEVEL_BINDING</keyword>
380
- <keyword>ThreadGroup</keyword>
381
- <keyword>Mutex</keyword>
382
- <keyword>ThreadError</keyword>
383
- <keyword>Fiber</keyword>
384
- <keyword>FiberError</keyword>
385
- <keyword>Rational</keyword>
386
- <keyword>Complex</keyword>
387
370
  <keyword>RUBY_VERSION</keyword>
371
+ <keyword>RUBY_REVISION</keyword>
388
372
  <keyword>RUBY_RELEASE_DATE</keyword>
389
373
  <keyword>RUBY_PLATFORM</keyword>
390
374
  <keyword>RUBY_PATCHLEVEL</keyword>
391
- <keyword>RUBY_REVISION</keyword>
375
+ <keyword>RUBY_ENGINE</keyword>
392
376
  <keyword>RUBY_DESCRIPTION</keyword>
393
377
  <keyword>RUBY_COPYRIGHT</keyword>
394
- <keyword>RUBY_ENGINE</keyword>
395
- <keyword>ARGV</keyword>
378
+ <keyword>Process</keyword>
379
+ <keyword>Proc</keyword>
380
+ <keyword>ObjectSpace</keyword>
381
+ <keyword>Object</keyword>
382
+ <keyword>Numeric</keyword>
383
+ <keyword>NotImplementedError</keyword>
384
+ <keyword>NoMethodError</keyword>
385
+ <keyword>NoMemoryError</keyword>
386
+ <keyword>NilClass</keyword>
387
+ <keyword>NameError</keyword>
388
+ <keyword>NIL</keyword>
389
+ <keyword>Mutex</keyword>
390
+ <keyword>Module</keyword>
391
+ <keyword>Method</keyword>
392
+ <keyword>Math</keyword>
393
+ <keyword>MatchData</keyword>
394
+ <keyword>Marshal</keyword>
395
+ <keyword>LocalJumpError</keyword>
396
+ <keyword>LoadError</keyword>
397
+ <keyword>KeyError</keyword>
398
+ <keyword>Kernel</keyword>
399
+ <keyword>Interrupt</keyword>
400
+ <keyword>Integer</keyword>
401
+ <keyword>IndexError</keyword>
402
+ <keyword>IOError</keyword>
403
+ <keyword>IO</keyword>
404
+ <keyword>Hash</keyword>
396
405
  <keyword>Gem</keyword>
397
- <keyword>BasicObject</keyword>
406
+ <keyword>GC</keyword>
407
+ <keyword>FloatDomainError</keyword>
408
+ <keyword>Float</keyword>
409
+ <keyword>Fixnum</keyword>
410
+ <keyword>FileTest</keyword>
411
+ <keyword>File</keyword>
412
+ <keyword>FiberError</keyword>
413
+ <keyword>Fiber</keyword>
414
+ <keyword>FalseClass</keyword>
415
+ <keyword>FALSE</keyword>
416
+ <keyword>Exception</keyword>
417
+ <keyword>Errno</keyword>
418
+ <keyword>Enumerator</keyword>
419
+ <keyword>Enumerable</keyword>
420
+ <keyword>EncodingError</keyword>
421
+ <keyword>Encoding</keyword>
422
+ <keyword>EOFError</keyword>
423
+ <keyword>ENV</keyword>
424
+ <keyword>Dir</keyword>
425
+ <keyword>Deprecate</keyword>
426
+ <keyword>Data</keyword>
398
427
  <keyword>DATA</keyword>
399
- <keyword>SCRIPT_LINES__</keyword>
428
+ <keyword>Config</keyword>
429
+ <keyword>Complex</keyword>
430
+ <keyword>Comparable</keyword>
431
+ <keyword>Class</keyword>
432
+ <keyword>CROSS_COMPILING</keyword>
433
+ <keyword>Binding</keyword>
434
+ <keyword>Bignum</keyword>
435
+ <keyword>BasicObject</keyword>
436
+ <keyword>Array</keyword>
437
+ <keyword>ArgumentError</keyword>
438
+ <keyword>ARGV</keyword>
439
+ <keyword>ARGF</keyword>
400
440
  </context>
401
441
 
402
-
403
442
  <define-regex id="special-variables-1-char">[;@!~&amp;`'+=,/\\_&gt;&lt;.*?$:"0-9]</define-regex>
404
443
  <define-regex id="special-variables-2-chars">-[FK0iIvwWdpla]</define-regex>
405
444
 
406
- <define-regex id="alnum">[^&amp;&gt;&lt;!?"'`@$%/()=\\{\[\]}*+~#|;,:.\-\^\s]</define-regex>
407
-
408
445
  <context id="special-variables" style-ref="special-variable">
409
446
  <match extended="true">
410
447
  \$( \%{special-variables-1-char}
@@ -424,12 +461,14 @@
424
461
  </match>
425
462
  </context>
426
463
 
464
+ <define-regex id="method" extended="true">
465
+ ( \%{alnum}(?&lt;![A-Z0-9:])\%{alnum}*[!?]?
466
+ | [A-Z]\%{alnum}*[!?]?(?=\()
467
+ )
468
+ </define-regex>
469
+
427
470
  <context id="methods" style-ref="method" extend-parent="false">
428
- <match extended="true">
429
- ( \%{alnum}(?&lt;![A-Z0-9:])\%{alnum}*[!?]?
430
- | [A-Z]\%{alnum}*[!?]?(?=\()
431
- )
432
- </match>
471
+ <match>\%{method}</match>
433
472
  </context>
434
473
 
435
474
  <context id="global-variables" style-ref="global-variable">
@@ -476,26 +515,31 @@
476
515
  <include>
477
516
  <context id="self" style-ref="self">
478
517
  <prefix>\%{no_method_prefix}</prefix>
518
+ <suffix>\%{no_method_suffix}</suffix>
479
519
  <keyword>self</keyword>
480
520
  </context>
481
521
 
482
522
  <context id="false" style-ref="false">
483
523
  <prefix>\%{no_method_prefix}</prefix>
524
+ <suffix>\%{no_method_suffix}</suffix>
484
525
  <keyword>false</keyword>
485
526
  </context>
486
527
 
487
528
  <context id="true" style-ref="true">
488
529
  <prefix>\%{no_method_prefix}</prefix>
530
+ <suffix>\%{no_method_suffix}</suffix>
489
531
  <keyword>true</keyword>
490
532
  </context>
491
533
 
492
534
  <context id="nil" style-ref="nil">
493
535
  <prefix>\%{no_method_prefix}</prefix>
536
+ <suffix>\%{no_method_suffix}</suffix>
494
537
  <keyword>nil</keyword>
495
538
  </context>
496
539
 
497
540
  <context id="special-values-words" style-ref="special-value">
498
541
  <prefix>\%{no_method_prefix}</prefix>
542
+ <suffix>\%{no_method_suffix}</suffix>
499
543
  <keyword>__ENCODING__</keyword>
500
544
  <keyword>__FILE__</keyword>
501
545
  <keyword>__LINE__</keyword>
@@ -509,8 +553,7 @@
509
553
  <include>
510
554
  <context sub-pattern="1" where="start" style-ref="syntax-char"/>
511
555
  <context sub-pattern="0" where="end" style-ref="syntax-char"/>
512
-
513
- <context ref="ruby:*"/>
556
+ <context ref="ruby-end-at-line-end"/>
514
557
  </include>
515
558
  </context>
516
559
 
@@ -608,7 +651,7 @@
608
651
  </context>
609
652
 
610
653
  <!-- %Q-Hello world- %-Hello world- %+hello world+ and so on... -->
611
- <context id="double-quoted-string-generic" style-ref="string" extend-parent="false">
654
+ <context id="double-quoted-string-generic" style-ref="string">
612
655
  <start>%Q?([[:print:]])(?&lt;![[:alnum:]])</start>
613
656
  <end>\%{1@start}</end>
614
657
  <include>
@@ -865,12 +908,13 @@
865
908
  </include>
866
909
  </context>
867
910
 
868
- <define-regex id="start-heredoc">([^a-zA-Z0-9\s\]\)&gt;}])\s*(&lt;&lt;)</define-regex>
911
+ <define-regex id="start-heredoc">([^a-zA-Z0-9\s\]\)&gt;}]|^)\s*(&lt;&lt;)</define-regex>
869
912
 
870
913
  <context id="heredoc-string" style-ref="string">
871
914
  <start>\%{start-heredoc}((\w+))</start>
872
915
  <end>^\%{4@start}$</end>
873
916
  <include>
917
+ <context ref="ruby-end-at-line-end"/>
874
918
  <context ref="double-quoted"/>
875
919
  <context where="start" sub-pattern="1" style-ref="operator"/>
876
920
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
@@ -883,6 +927,7 @@
883
927
  <start>\%{start-heredoc}(-(\w+))</start>
884
928
  <end>^\s*\%{4@start}$</end>
885
929
  <include>
930
+ <context ref="ruby-end-at-line-end"/>
886
931
  <context ref="double-quoted"/>
887
932
  <context where="start" sub-pattern="1" style-ref="operator"/>
888
933
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
@@ -895,6 +940,7 @@
895
940
  <start>\%{start-heredoc}('(\w+)')</start>
896
941
  <end>^\%{4@start}$</end>
897
942
  <include>
943
+ <context ref="ruby-end-at-line-end"/>
898
944
  <context where="start" sub-pattern="1" style-ref="operator"/>
899
945
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
900
946
  <context where="start" sub-pattern="3" style-ref="string-delimiter"/>
@@ -906,6 +952,7 @@
906
952
  <start>\%{start-heredoc}("(\w+)")</start>
907
953
  <end>^\%{4@start}$</end>
908
954
  <include>
955
+ <context ref="ruby-end-at-line-end"/>
909
956
  <context ref="double-quoted"/>
910
957
  <context where="start" sub-pattern="1" style-ref="operator"/>
911
958
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
@@ -918,6 +965,7 @@
918
965
  <start>\%{start-heredoc}(`(\w+)`)</start>
919
966
  <end>^\%{4@start}$</end>
920
967
  <include>
968
+ <context ref="ruby-end-at-line-end"/>
921
969
  <context ref="double-quoted"/>
922
970
  <context where="start" sub-pattern="1" style-ref="operator"/>
923
971
  <context where="start" sub-pattern="2" style-ref="system-delimiter"/>
@@ -930,6 +978,7 @@
930
978
  <start>\%{start-heredoc}(-'(\w+)')</start>
931
979
  <end>^\s*\%{4@start}$</end>
932
980
  <include>
981
+ <context ref="ruby-end-at-line-end"/>
933
982
  <context where="start" sub-pattern="1" style-ref="operator"/>
934
983
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
935
984
  <context where="start" sub-pattern="3" style-ref="string-delimiter"/>
@@ -941,6 +990,7 @@
941
990
  <start>\%{start-heredoc}(-"(\w+)")</start>
942
991
  <end>^\s*\%{4@start}$</end>
943
992
  <include>
993
+ <context ref="ruby-end-at-line-end"/>
944
994
  <context where="start" sub-pattern="1" style-ref="operator"/>
945
995
  <context where="start" sub-pattern="2" style-ref="string-delimiter"/>
946
996
  <context where="start" sub-pattern="3" style-ref="string-delimiter"/>
@@ -952,6 +1002,7 @@
952
1002
  <start>\%{start-heredoc}(-`(\w+)`)</start>
953
1003
  <end>^\s*\%{4@start}$</end>
954
1004
  <include>
1005
+ <context ref="ruby-end-at-line-end"/>
955
1006
  <context where="start" sub-pattern="1" style-ref="operator"/>
956
1007
  <context where="start" sub-pattern="2" style-ref="system-delimiter"/>
957
1008
  <context where="start" sub-pattern="3" style-ref="system-delimiter"/>
@@ -1150,18 +1201,38 @@
1150
1201
  </include>
1151
1202
  </context>
1152
1203
 
1204
+ <define-regex id="definable-operator" extended="true">
1205
+ ===?
1206
+ | &lt;=&gt;
1207
+ | &lt;[&lt;=]?
1208
+ | (?&lt;!=)&gt;[&gt;=]?
1209
+ | =?~
1210
+ | \*\*?
1211
+ | \[\]=?
1212
+ | [+%^!/|&amp;-]
1213
+ </define-regex>
1214
+
1153
1215
  <context id="function">
1154
1216
  <start>(?&lt;![\w\.])\b(def)\b\s*</start>
1155
- <end>([^.]+?)(?=[\s(;]|$)</end>
1217
+ <end>(\%{definable-operator}|[A-Z]?\%{method}(?:(?&lt;![!?])=)?)(?=[\s(;]|$)</end>
1156
1218
  <include>
1157
1219
  <context where="start" sub-pattern="1" style-ref="keyword"/>
1158
- <context where="end" sub-pattern="1" style-ref="function"/>
1159
- <context ref="ruby:*"/>
1220
+ <context where="end" sub-pattern="0" style-ref="function"/>
1221
+ <context ref="ruby-end-at-line-end"/>
1160
1222
  </include>
1161
1223
  </context>
1162
1224
 
1163
- <context id="operators" style-ref="operator" extend-parent="false">
1164
- <match>&lt;=&gt;|(?&lt;!%)=(?!&gt;)|~|&lt;|&amp;|(?&lt;!=)&gt;|\.|::|\*|/|\+|-|\||!|not|and|or|defined\?</match>
1225
+ <context id="operators" style-ref="operator">
1226
+ <match extended="true">
1227
+ ( [+-]@
1228
+ | \%{definable-operator}
1229
+ | (?&lt;!%)=(?!&gt;)
1230
+ | \.
1231
+ | ::
1232
+ | \%{no_method_prefix}(?:not|and|or)\%{no_method_suffix}
1233
+ | \%{no_method_prefix}defined\?
1234
+ )
1235
+ </match>
1165
1236
  </context>
1166
1237
 
1167
1238
  <context id="syntax-chars" style-ref="syntax-char" extend-parent="false">
@@ -1179,61 +1250,89 @@
1179
1250
  </include>
1180
1251
  </context>
1181
1252
  <context id="square-brackets">
1182
- <start>\[</start><end>\]</end>
1253
+ <start extended="true">
1254
+ (?: (?&lt;= \%{alnum}[!?] )
1255
+ | (?&lt;= \%{alnum} | [})\]] )
1256
+ ) \s*(\[)
1257
+ </start>
1258
+ <end>\]</end>
1183
1259
  <include>
1184
- <context where="start" sub-pattern="0" style-ref="syntax-char"/>
1260
+ <context where="start" sub-pattern="1" style-ref="syntax-char"/>
1185
1261
  <context where="end" sub-pattern="0" style-ref="syntax-char"/>
1186
1262
  <context ref="ruby:*"/>
1187
1263
  </include>
1188
1264
  </context>
1189
- <context id="curly-brackets">
1190
- <start>(?&lt;=(?:.[\])\w]|->))\s*(\{)</start><end>\}</end>
1265
+ <context id="curly-brackets"><!--(?&lt;= [)\w\]] ) -->
1266
+ <start extended="true">
1267
+ (?: (?&lt;= -> | \%{alnum}[!?] )
1268
+ | (?&lt;= \%{alnum} | [)\]] )
1269
+ ) \s*(\{)
1270
+ </start>
1271
+ <end>\}</end>
1191
1272
  <include>
1192
- <context where="start" sub-pattern="1" style-ref="syntax-char"/>
1193
- <context where="end" sub-pattern="0" style-ref="syntax-char"/>
1273
+ <context where="start" sub-pattern="1" style-ref="syntax-char"/>
1274
+ <context where="end" sub-pattern="0" style-ref="syntax-char"/>
1194
1275
  <context ref="ruby:*"/>
1195
1276
  </include>
1196
1277
  </context>
1197
1278
  </include>
1198
1279
  </context>
1199
1280
 
1200
- <context id="hash">
1201
- <start>(?&lt;!(?:.[\])\w]|->))\s*\{</start>
1281
+ <context id="hash" extend-parent="false">
1282
+ <start extended="true">
1283
+ (?&lt;! -> | \%{alnum}[!?] )
1284
+ (?&lt;! \%{alnum} | [)\]] )
1285
+ (\{)
1286
+ </start>
1202
1287
  <end>\}</end>
1203
1288
  <include>
1204
- <context where="start" sub-pattern="0" style-ref="collection"/>
1289
+ <context where="start" sub-pattern="1" style-ref="collection"/>
1205
1290
  <context where="end" sub-pattern="0" style-ref="collection"/>
1206
1291
  <context ref="ruby:*"/>
1207
1292
  </include>
1208
1293
  </context>
1209
1294
 
1210
- <context id="collection-chars" style-ref="collection">
1211
- <match>(=&gt;|,)</match>
1212
- </context>
1213
-
1214
1295
  <context id="array">
1215
- <start>(?&lt;![\])}\w])\[</start>
1296
+ <start extended="true">
1297
+ (?&lt;! \%{alnum}[!?] )
1298
+ (?&lt;! \%{alnum} | [})\]] )
1299
+ (\[)
1300
+ </start>
1216
1301
  <end>\]</end>
1217
1302
  <include>
1218
- <context where="start" sub-pattern="0" style-ref="collection"/>
1303
+ <context where="start" sub-pattern="1" style-ref="collection"/>
1219
1304
  <context where="end" sub-pattern="0" style-ref="collection"/>
1220
1305
  <context ref="ruby:*"/>
1221
1306
  </include>
1222
1307
  </context>
1223
1308
 
1309
+ <context id="collection-chars" style-ref="collection">
1310
+ <match>(=&gt;|,)</match>
1311
+ </context>
1312
+
1224
1313
  <context id="data" style-ref="string">
1225
- <start>__END__</start>
1314
+ <start>^__END__</start>
1226
1315
  <include>
1227
1316
  <context where="start" sub-pattern="0" style-ref="string-delimiter"/>
1228
1317
  </include>
1229
1318
  </context>
1230
1319
 
1231
- <context id="errors" style-ref="error" extend-parent="false">
1320
+ <context id="errors" style-ref="error" extend-parent="false"><!-- split if needed -->
1232
1321
  <match extended="true">
1233
- [}\])]
1322
+ (?: [}\])]
1323
+ | =end\%{no_method_suffix}
1324
+ )
1234
1325
  </match>
1235
1326
  </context>
1236
1327
 
1328
+ <context id="ruby-end-at-line-end" end-at-line-end="true" once-only="true" extend-parent="false">
1329
+ <start></start>
1330
+ <end>(^|$)</end>
1331
+ <include>
1332
+ <context ref="ruby:*"/>
1333
+ </include>
1334
+ </context>
1335
+
1237
1336
  <context id="ruby" class="no-spell-check">
1238
1337
  <include>
1239
1338
  <context ref="def:shebang"/>
@@ -1251,8 +1350,6 @@
1251
1350
  <context ref="heredoc-double-quoted-indented-string"/>
1252
1351
  <context ref="heredoc-backtick-quoted-indented-string"/>
1253
1352
 
1254
- <context ref="question-mark-string"/>
1255
-
1256
1353
  <context ref="symbol"/>
1257
1354
  <context ref="single-quoted-symbol"/>
1258
1355
  <context ref="double-quoted-symbol"/>
@@ -1302,15 +1399,14 @@
1302
1399
 
1303
1400
  <context ref="function"/>
1304
1401
 
1305
- <context ref="keywords"/>
1306
- <context ref="special-values"/>
1307
-
1308
1402
  <context ref="special-variables"/>
1309
1403
  <context ref="global-variables"/>
1404
+
1310
1405
  <context ref="ternary-operators"/>
1311
1406
  <context ref="hash-symbols"/>
1407
+
1312
1408
  <context ref="important-methods"/>
1313
- <context ref="methods"/>
1409
+ <context ref="special-values"/>
1314
1410
 
1315
1411
  <context ref="important-constants"/>
1316
1412
  <context ref="constants"/>
@@ -1327,12 +1423,19 @@
1327
1423
  <context ref="block-parameters"/>
1328
1424
  <context ref="hash"/>
1329
1425
  <context ref="array"/>
1426
+ <context ref="brackets"/>
1427
+
1428
+ <context ref="errors"/>
1330
1429
 
1331
1430
  <context ref="collection-chars"/>
1332
1431
  <context ref="operators"/>
1333
1432
  <context ref="syntax-chars"/>
1334
- <context ref="brackets"/>
1335
- <context ref="errors"/>
1433
+
1434
+ <context ref="keywords"/>
1435
+ <context ref="methods"/>
1436
+
1437
+ <context ref="question-mark-string"/>
1438
+
1336
1439
  </include>
1337
1440
  </context>
1338
1441
  </definitions>
@@ -0,0 +1,60 @@
1
+ # hashs
2
+ {}
3
+ {}
4
+ {}
5
+ a={}
6
+ a= {}
7
+ a ?{} :{}
8
+ !{}
9
+
10
+ # arrays
11
+ []
12
+ []
13
+ []
14
+ a=[]
15
+ a= []
16
+
17
+ # procs/square brackets
18
+ a{}
19
+ ☆{}
20
+ A{}
21
+ ->{}
22
+ ->(x){}
23
+ a?{}
24
+ a!{}
25
+
26
+ a {}
27
+ ☆ {}
28
+ A {}
29
+ -> {}
30
+ -> (x) {}
31
+ a? {}
32
+ a! {}
33
+
34
+ a[]
35
+ a []
36
+ a[b]
37
+ a [b]
38
+ a[[a]]
39
+ a [[b]]
40
+ ☆[]
41
+ ☆ []
42
+ A[]
43
+ A []
44
+ a?[]
45
+ a? []
46
+ a![]
47
+ a! []
48
+ a[][]
49
+ b [] []
50
+
51
+ a(){}
52
+ a () {}
53
+ a()[]
54
+ a () []
55
+ a[]{}
56
+ a [] {}
57
+ a[b]{}
58
+ a [b] {}
59
+ a{}[]
60
+ a {} []
@@ -4,13 +4,6 @@
4
4
  # Interpolation with instance variables
5
5
  "example #@variable"
6
6
 
7
- # Improved method defintions
8
- def self.some_method(a, b)
9
- end
10
-
11
- def $*.important!
12
- end
13
-
14
7
  # Highlights important methods
15
8
  normal_method
16
9
  require_relative
@@ -35,17 +28,29 @@ some_method with_symbol_hash: 42,
35
28
  # Uppercased method names
36
29
  Array(42)
37
30
 
31
+ # Improved method defintions
32
+ def self.some_method(a, b) end
33
+ def $*.important!; end
34
+ def self; end
35
+ def [](arg) nil; end
36
+ def setter=(v); end
37
+ def Array; end
38
+
38
39
  # Colorful special values :D
39
40
  [true, false, nil]
40
41
 
41
- # Different heredoc matching (however, still far from perfect)
42
+ # Different heredoc matching (however, still *far* from correct)
42
43
  here = "doc"
43
44
  %w[string array] <<here # no heredoc
44
45
 
45
- variable = <<here
46
- this one is a heredoc °_°
46
+ variable = <<here + "°_°"
47
+ this one is a heredoc
47
48
  here
48
49
 
50
+ <<OR
51
+ this one
52
+ OR
53
+
49
54
  # Strange literals are mostly supported
50
55
  %x[ls]
51
56
  %r>[\>]>
@@ -3,4 +3,4 @@ DATA
3
3
  SCRIPT_LINES__
4
4
  ]).map{ |e|
5
5
  " <keyword>#{e}</keyword>"
6
- }.uniq
6
+ }.uniq.sort.reverse
@@ -1,3 +1,25 @@
1
- puts (Object.methods | Module.methods | Kernel.methods).select{|e| e =~ /^[a-zA-Z_][a-zA-Z0-9?!_]*$/}.map{ |e|
2
- " <keyword>#{e.to_s.gsub /\?/,'\\?'}#{ '(?=\()' if e.to_s[0] =~ /[A-Z]/ }</keyword>"
3
- }.uniq.sort
1
+ puts (
2
+ Object.methods |
3
+ Module.methods |
4
+ Kernel.methods |
5
+ Object.private_instance_methods |
6
+ Module.private_instance_methods |
7
+ Kernel.private_instance_methods |
8
+ Object.protected_instance_methods |
9
+ Module.protected_instance_methods |
10
+ Kernel.protected_instance_methods |
11
+ Object.public_instance_methods |
12
+ Module.public_instance_methods |
13
+ Kernel.public_instance_methods
14
+ ).select{|e| e =~ /^[a-zA-Z_][a-zA-Z0-9?!_]*$/}.map{ |e|
15
+ suffix =
16
+ if e.to_s[0] =~ /[A-Z]/
17
+ '(?=\()'
18
+ elsif e.to_s[-1] =~ /[?!]/
19
+ ''
20
+ else
21
+ '\%{no_method_suffix}'
22
+ end
23
+
24
+ " <keyword>#{e.to_s.gsub /\?/,'\\?'}#{ suffix }</keyword>"
25
+ }.uniq.sort.reverse
@@ -9,4 +9,13 @@
9
9
  # question mark madness vs ternary operator
10
10
  [?', ?(, :vs] ?'a':'b'
11
11
 
12
+ # nested heredocs
13
+ a = <<FIRST + "yeah" + <<SECOND
14
+ some text
15
+ FIRST
16
+ more text
17
+ SECOND
18
+
12
19
  # multi-line regex
20
+ /
21
+ /
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubybuntu-gedit
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.09.19
4
+ version: 11.09.29
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-09-18 00:00:00.000000000Z
14
+ date: 2011-09-29 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: paint
18
- requirement: &15591760 !ruby/object:Gem::Requirement
18
+ requirement: &6480020 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,7 +23,7 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *15591760
26
+ version_requirements: *6480020
27
27
  description: Ruby/Rails/Web related gedit language definitions, mime types, styles
28
28
  and snippets.
29
29
  email: mail@janlelis.de
@@ -42,6 +42,7 @@ files:
42
42
  - data/language-specs/ruby.lang-extras/important-methods.rb
43
43
  - data/language-specs/ruby.lang-extras/unicode.rb
44
44
  - data/language-specs/ruby.lang-extras/important-constants.rb
45
+ - data/language-specs/ruby.lang-extras/brackets.rb
45
46
  - data/language-specs/ruby.lang-extras/known-bugs.rb
46
47
  - data/language-specs/ruby.lang-extras/examples.rb
47
48
  - data/language-specs/html-erb.lang