rubybuntu-gedit 11.09.14 → 11.09.19

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ Part of {RubyBuntuGedit}[https://github.com/janlelis/rubybuntu-gedit]
5
5
  == Features
6
6
  Contains various language specs needed by Ruby/Rails/Web developers and also tries to maintain them.
7
7
 
8
- * The Ruby language specification has been improved alot. It uses 1.9.2 as reference implementation, recognizes many Ruby-specific language constructs (that can be highlighted differently) and implements many language details. To see all these changes, you need a style that supports ("uses") the new specification, for example, {these styles}[https://github.com/janlelis/rubybuntu-editor-styles]. See below for a changelog summary.
8
+ * The Ruby language specification has been improved a lot. It uses 1.9.2 as reference implementation, recognizes many Ruby-specific language constructs (that can be highlighted differently) and implements many language details. To see all these changes, you need a style that supports ("uses") the new specification, for example, {these styles}[https://github.com/janlelis/rubybuntu-editor-styles]. See below for a changelog summary.
9
9
  * ERB is not only usable with HTML, but also with JavaScript, YAML and XML...
10
10
  * Gemfile.lock highlighting
11
11
 
@@ -49,12 +49,12 @@ You should also use up-to-date {mime types}[https://github.com/janlelis/rubybunt
49
49
  * Based on https://github.com/gmate/gmate/blob/master/lang-specs/ruby_on_rails.lang
50
50
 
51
51
  == TODO
52
- === ruby.lang - Advanced TODOs (or: build a "real" parser)
52
+ === ruby.lang - Advanced TODOs [or: build a "real" parser, not (easily) possible with gtksourceview]
53
53
  * Improve heredocs (e.g. nested ones)
54
54
  * Different colorizations for "end"s (e.g. def/begin, class/module, while/until, if/case, block), needs to detect modifier statements correctly
55
55
  * Detect (multi-line) yard doc tag values
56
56
  * Add escapable char for generic string delimiters
57
- * Advanced regex highlighting (maybe there is already something for pcre out there?)
57
+ * Advanced regex highlighting + multi-line regexes
58
58
  * ruby.lang-extras/known-bugs.rb
59
59
 
60
60
  === Languages to add/import/update
@@ -78,7 +78,7 @@
78
78
  <style id="integer" _name="Integer number" map-to="def:decimal"/>
79
79
  <style id="base-n-integer" _name="Base-N number" map-to="def:base-n-integer"/>
80
80
 
81
- <style id="error" _name="Erroneous syntax" map-to="def:error"/>
81
+ <style id="error" _name="Erroneous syntax" map-to="def:error"/>
82
82
  </styles>
83
83
 
84
84
  <definitions>
@@ -152,140 +152,146 @@
152
152
  </context>
153
153
 
154
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>
155
166
  <keyword>allocate</keyword>
156
- <keyword>new</keyword>
157
- <keyword>superclass</keyword>
158
- <keyword>freeze</keyword>
159
- <keyword>to_s</keyword>
160
- <keyword>included_modules</keyword>
161
- <keyword>include\?</keyword>
162
- <keyword>name</keyword>
163
167
  <keyword>ancestors</keyword>
164
- <keyword>instance_methods</keyword>
165
- <keyword>public_instance_methods</keyword>
166
- <keyword>protected_instance_methods</keyword>
167
- <keyword>private_instance_methods</keyword>
168
- <keyword>constants</keyword>
169
- <keyword>const_get</keyword>
170
- <keyword>const_set</keyword>
171
- <keyword>const_defined\?</keyword>
172
- <keyword>const_missing</keyword>
173
- <keyword>class_variables</keyword>
174
- <keyword>remove_class_variable</keyword>
175
- <keyword>class_variable_get</keyword>
176
- <keyword>class_variable_set</keyword>
177
- <keyword>class_variable_defined\?</keyword>
178
- <keyword>module_exec</keyword>
179
- <keyword>class_exec</keyword>
180
- <keyword>module_eval</keyword>
181
- <keyword>class_eval</keyword>
182
- <keyword>method_defined\?</keyword>
183
- <keyword>public_method_defined\?</keyword>
184
- <keyword>private_method_defined\?</keyword>
185
- <keyword>protected_method_defined\?</keyword>
186
- <keyword>public_class_method</keyword>
187
- <keyword>private_class_method</keyword>
168
+ <keyword>at_exit</keyword>
188
169
  <keyword>autoload</keyword>
189
170
  <keyword>autoload\?</keyword>
190
- <keyword>instance_method</keyword>
191
- <keyword>public_instance_method</keyword>
192
- <keyword>nil\?</keyword>
193
- <keyword>eql\?</keyword>
194
- <keyword>hash</keyword>
171
+ <keyword>binding</keyword>
172
+ <keyword>block_given\?</keyword>
173
+ <keyword>caller</keyword>
174
+ <keyword>catch</keyword>
195
175
  <keyword>class</keyword>
196
- <keyword>singleton_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>
197
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>
198
190
  <keyword>dup</keyword>
199
- <keyword>initialize_dup</keyword>
200
- <keyword>initialize_clone</keyword>
201
- <keyword>taint</keyword>
202
- <keyword>tainted\?</keyword>
203
- <keyword>untaint</keyword>
204
- <keyword>untrust</keyword>
205
- <keyword>untrusted\?</keyword>
206
- <keyword>trust</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>
207
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>
208
211
  <keyword>inspect</keyword>
209
- <keyword>methods</keyword>
210
- <keyword>singleton_methods</keyword>
211
- <keyword>protected_methods</keyword>
212
- <keyword>private_methods</keyword>
213
- <keyword>public_methods</keyword>
214
- <keyword>instance_variables</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>
215
218
  <keyword>instance_variable_get</keyword>
216
219
  <keyword>instance_variable_set</keyword>
217
- <keyword>instance_variable_defined\?</keyword>
218
- <keyword>instance_of\?</keyword>
219
- <keyword>kind_of\?</keyword>
220
+ <keyword>instance_variables</keyword>
220
221
  <keyword>is_a\?</keyword>
221
- <keyword>tap</keyword>
222
- <keyword>send</keyword>
223
- <keyword>public_send</keyword>
224
- <keyword>respond_to\?</keyword>
225
- <keyword>respond_to_missing\?</keyword>
226
- <keyword>extend</keyword>
227
- <keyword>display</keyword>
228
- <keyword>method</keyword>
229
- <keyword>public_method</keyword>
230
- <keyword>define_singleton_method</keyword>
231
- <keyword>__id__</keyword>
232
- <keyword>object_id</keyword>
233
- <keyword>to_enum</keyword>
234
- <keyword>enum_for</keyword>
235
- <keyword>equal\?</keyword>
236
- <keyword>instance_eval</keyword>
237
- <keyword>instance_exec</keyword>
238
- <keyword>__send__</keyword>
239
- <keyword>nesting</keyword>
240
- <keyword>sprintf</keyword>
241
- <keyword>format</keyword>
242
- <keyword>warn</keyword>
243
- <keyword>raise</keyword>
244
- <keyword>fail</keyword>
245
- <keyword>global_variables</keyword>
246
- <keyword>__method__</keyword>
247
- <keyword>__callee__</keyword>
248
- <keyword>eval</keyword>
249
- <keyword>local_variables</keyword>
250
222
  <keyword>iterator\?</keyword>
251
- <keyword>block_given\?</keyword>
252
- <keyword>catch</keyword>
253
- <keyword>throw</keyword>
223
+ <keyword>kind_of\?</keyword>
224
+ <keyword>lambda</keyword>
225
+ <keyword>load</keyword>
226
+ <keyword>local_variables</keyword>
254
227
  <keyword>loop</keyword>
255
- <keyword>caller</keyword>
256
- <keyword>trace_var</keyword>
257
- <keyword>untrace_var</keyword>
258
- <keyword>at_exit</keyword>
259
- <keyword>syscall</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>
260
238
  <keyword>open</keyword>
261
- <keyword>printf</keyword>
239
+ <keyword>p</keyword>
262
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>
263
257
  <keyword>putc</keyword>
264
258
  <keyword>puts</keyword>
265
- <keyword>gets</keyword>
259
+ <keyword>raise</keyword>
260
+ <keyword>rand</keyword>
266
261
  <keyword>readline</keyword>
267
- <keyword>select</keyword>
268
262
  <keyword>readlines</keyword>
269
- <keyword>p</keyword>
270
- <keyword>test</keyword>
271
- <keyword>srand</keyword>
272
- <keyword>rand</keyword>
273
- <keyword>trap</keyword>
274
- <keyword>exec</keyword>
275
- <keyword>fork</keyword>
276
- <keyword>exit!</keyword>
277
- <keyword>system</keyword>
278
- <keyword>spawn</keyword>
279
- <keyword>sleep</keyword>
280
- <keyword>exit</keyword>
281
- <keyword>abort</keyword>
282
- <keyword>load</keyword>
263
+ <keyword>remove_class_variable</keyword>
283
264
  <keyword>require</keyword>
284
265
  <keyword>require_relative</keyword>
285
- <keyword>proc</keyword>
286
- <keyword>lambda</keyword>
287
- <keyword>binding</keyword>
266
+ <keyword>respond_to\?</keyword>
267
+ <keyword>respond_to_missing\?</keyword>
268
+ <keyword>select</keyword>
269
+ <keyword>send</keyword>
288
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>
293
+ <keyword>untrusted\?</keyword>
294
+ <keyword>warn</keyword>
289
295
  </context>
290
296
 
291
297
  <context id="important-constants" style-ref="important-constant" extend-parent="false">
@@ -397,6 +403,8 @@
397
403
  <define-regex id="special-variables-1-char">[;@!~&amp;`'+=,/\\_&gt;&lt;.*?$:"0-9]</define-regex>
398
404
  <define-regex id="special-variables-2-chars">-[FK0iIvwWdpla]</define-regex>
399
405
 
406
+ <define-regex id="alnum">[^&amp;&gt;&lt;!?"'`@$%/()=\\{\[\]}*+~#|;,:.\-\^\s]</define-regex>
407
+
400
408
  <context id="special-variables" style-ref="special-variable">
401
409
  <match extended="true">
402
410
  \$( \%{special-variables-1-char}
@@ -412,14 +420,16 @@
412
420
  | stdin
413
421
  | stdout
414
422
  | stderr
415
- | binding )
423
+ | binding ) (?!\%{alnum})
416
424
  </match>
417
425
  </context>
418
426
 
419
- <define-regex id="alnum">[^&amp;&gt;&lt;!?"'`@$%/()=\\{\[\]}*+~#|;,:.\-\^\s]</define-regex>
420
-
421
427
  <context id="methods" style-ref="method" extend-parent="false">
422
- <match>\%{alnum}(?&lt;![A-Z0-9:])\%{alnum}*[!?]?</match>
428
+ <match extended="true">
429
+ ( \%{alnum}(?&lt;![A-Z0-9:])\%{alnum}*[!?]?
430
+ | [A-Z]\%{alnum}*[!?]?(?=\()
431
+ )
432
+ </match>
423
433
  </context>
424
434
 
425
435
  <context id="global-variables" style-ref="global-variable">
@@ -1030,14 +1040,34 @@
1030
1040
  </context>
1031
1041
 
1032
1042
  <context id="symbol" style-ref="symbol">
1043
+ <start extended="true">
1044
+ (?&lt;!:)(:)
1045
+ ( \$ \%{special-variables-1-char}
1046
+ | \$ \%{special-variables-2-chars}
1047
+ | (?:\%{alnum}|\$|@@?) (?&lt;![0-9]) \%{alnum}* [?!=]?
1048
+ | &lt;=&gt; | &lt;= | &gt;= | &lt;&lt;? | &gt;&gt;? | != | [!=]~ | ===? | \[\]=? | \*\*? | [+-]@?
1049
+ | [!|~\^&amp;]
1050
+ )
1051
+ </start>
1052
+ <end></end>
1053
+ <include>
1054
+ <context where="start" sub-pattern="1" style-ref="symbol-delimiter"/>
1055
+ </include>
1056
+ </context>
1057
+
1058
+ <context id="ternary-operators">
1059
+ <start>\?</start>
1060
+ <end>:</end>
1061
+ <include>
1062
+ <context where="start" sub-pattern="0" style-ref="operator"/>
1063
+ <context where="end" sub-pattern="0" style-ref="operator"/>
1064
+ <context ref="ruby:*"/>
1065
+ </include>
1066
+ </context>
1067
+
1068
+ <context id="hash-symbols" style-ref="symbol" extend-parent="false">
1033
1069
  <start extended="true">
1034
- (?&lt;!:)(:)
1035
- ( \$ \%{special-variables-1-char}
1036
- | \$ \%{special-variables-2-chars}
1037
- | (?:\%{alnum}|\$|@@?) (?&lt;![0-9]) \%{alnum}* [?!=]?
1038
- | &lt;=&gt; | &lt;= | &gt;= | &lt;&lt;? | &gt;&gt;? | != | [!=]~ | ===? | \[\]=? | \*\*? | [+-]@?
1039
- | [!|~\^&amp;]
1040
- )
1070
+ (?=\%{alnum}+:) \%{alnum} (?&lt;![0-9]) \%{alnum}* [?!=]? (:) (?!:)
1041
1071
  </start>
1042
1072
  <end></end>
1043
1073
  <include>
@@ -1131,7 +1161,7 @@
1131
1161
  </context>
1132
1162
 
1133
1163
  <context id="operators" style-ref="operator" extend-parent="false">
1134
- <match>&lt;=&gt;|(?&lt;!%)=(?!&gt;)|~|&lt;|&amp;|(?&lt;!=)&gt;|\.|::|\*|/|\+|-|\||!|not|and|or|defined\?|\?|:</match>
1164
+ <match>&lt;=&gt;|(?&lt;!%)=(?!&gt;)|~|&lt;|&amp;|(?&lt;!=)&gt;|\.|::|\*|/|\+|-|\||!|not|and|or|defined\?</match>
1135
1165
  </context>
1136
1166
 
1137
1167
  <context id="syntax-chars" style-ref="syntax-char" extend-parent="false">
@@ -1167,22 +1197,12 @@
1167
1197
  </include>
1168
1198
  </context>
1169
1199
 
1170
- <context id="hash-symbol" style-ref="symbol">
1171
- <match>[a-zA-Z0-9_]+(!|\?)?:(?!:)</match>
1172
- </context>
1173
-
1174
- <context id="hash-strings" style-ref="string">
1175
- <match>(?&lt;![\s{>])\:(?!:)</match>
1176
- </context>
1177
-
1178
1200
  <context id="hash">
1179
1201
  <start>(?&lt;!(?:.[\])\w]|->))\s*\{</start>
1180
1202
  <end>\}</end>
1181
1203
  <include>
1182
1204
  <context where="start" sub-pattern="0" style-ref="collection"/>
1183
1205
  <context where="end" sub-pattern="0" style-ref="collection"/>
1184
- <context ref="hash-symbol"/>
1185
- <context ref="hash-strings"/>
1186
1206
  <context ref="ruby:*"/>
1187
1207
  </include>
1188
1208
  </context>
@@ -1242,7 +1262,6 @@
1242
1262
  <context ref="single-quoted-symbol-angle"/>
1243
1263
  <context ref="single-quoted-symbol-generic"/>
1244
1264
 
1245
-
1246
1265
  <context ref="double-quoted-string"/>
1247
1266
  <context ref="double-quoted-string-curly"/>
1248
1267
  <context ref="double-quoted-string-normal"/>
@@ -1285,15 +1304,17 @@
1285
1304
 
1286
1305
  <context ref="keywords"/>
1287
1306
  <context ref="special-values"/>
1288
- <context ref="important-methods"/>
1289
-
1290
- <context ref="important-constants"/>
1291
- <context ref="constants"/>
1292
1307
 
1293
1308
  <context ref="special-variables"/>
1294
1309
  <context ref="global-variables"/>
1310
+ <context ref="ternary-operators"/>
1311
+ <context ref="hash-symbols"/>
1312
+ <context ref="important-methods"/>
1295
1313
  <context ref="methods"/>
1296
1314
 
1315
+ <context ref="important-constants"/>
1316
+ <context ref="constants"/>
1317
+
1297
1318
  <context ref="class-variables"/>
1298
1319
  <context ref="instance-variables"/>
1299
1320
 
@@ -11,9 +11,6 @@ end
11
11
  def $*.important!
12
12
  end
13
13
 
14
- # 1.9 hash symbols
15
- { strange: 'symbols' }
16
-
17
14
  # Highlights important methods
18
15
  normal_method
19
16
  require_relative
@@ -26,6 +23,21 @@ File
26
23
  $blubb
27
24
  $stdin
28
25
 
26
+ # Hash symbols (1.9)
27
+ some_method({ with_symbol_hash: 42,
28
+ another_one: 42 })
29
+ some_method( with_symbol_hash: 42,
30
+ another_one: 42 )
31
+ some_method with_symbol_hash: 42,
32
+ another_one: 42 ?
33
+ some_method: 42
34
+
35
+ # Uppercased method names
36
+ Array(42)
37
+
38
+ # Colorful special values :D
39
+ [true, false, nil]
40
+
29
41
  # Different heredoc matching (however, still far from perfect)
30
42
  here = "doc"
31
43
  %w[string array] <<here # no heredoc
@@ -34,10 +46,7 @@ variable = <<here
34
46
  this one is a heredoc °_°
35
47
  here
36
48
 
37
- # colorful special values :D
38
- [true, false, nil]
39
-
40
- # strange literals are mostly supported
49
+ # Strange literals are mostly supported
41
50
  %x[ls]
42
51
  %r>[\>]>
43
52
 
@@ -1,7 +1,6 @@
1
- puts ((Object.constants | Module.constants) + %w[
1
+ puts (Object.constants + %w[
2
2
  DATA
3
3
  SCRIPT_LINES__
4
-
5
4
  ]).map{ |e|
6
- " <keyword>#{e}</keyword>"
5
+ " <keyword>#{e}</keyword>"
7
6
  }.uniq
@@ -1,3 +1,3 @@
1
- puts (Object.methods | Module.methods | Kernel.methods).select{|e| e =~ /^[a-z_][a-zA-Z0-9?!_]*$/}.map{ |e|
2
- " <keyword>#{e.to_s.gsub /\?/,'\\?'}</keyword>"
3
- }.uniq
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
@@ -12,6 +12,13 @@ a☆b
12
12
  :☆☆
13
13
  :☆
14
14
 
15
+ # hash symbols
16
+ {
17
+ a☆b: 1.9,
18
+ ☆☆: 1.9,
19
+ ☆: 1.9,
20
+ }
21
+
15
22
  # variables
16
23
  @@a☆b
17
24
  @@☆☆
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.14
4
+ version: 11.09.19
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-14 00:00:00.000000000Z
14
+ date: 2011-09-18 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: paint
18
- requirement: &22906640 !ruby/object:Gem::Requirement
18
+ requirement: &15591760 !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: *22906640
26
+ version_requirements: *15591760
27
27
  description: Ruby/Rails/Web related gedit language definitions, mime types, styles
28
28
  and snippets.
29
29
  email: mail@janlelis.de