rmthemegen 0.0.2 → 0.0.3

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.
@@ -0,0 +1,63 @@
1
+ require 'color'
2
+
3
+ module ColorThemeGen
4
+
5
+ # Outputs how much contrast this color has with another rgb color. Computes the same
6
+ # regardless of which one is considered foreground.
7
+ # If the other color does not have a to_rgb method, this will throw an exception
8
+ # anything over about 0.22 should have a high likelihood of begin legible.
9
+ # otherwise, to be safe go with something > 0.3
10
+ def contrast(other_rgb)
11
+ if other_rgb.respond_to? :to_rgb then
12
+ c2 = other_rgb.to_rgb
13
+ else
14
+ raise "rgb.rb unable to calculate contrast with object #{other_rgb.to_s}"
15
+ end
16
+ #the following numbers have been set with some care.
17
+ return (
18
+ self.diff_bri(other_rgb)*0.65 +
19
+ self.diff_hue(other_rgb)*0.20 +
20
+ self.diff_lum(other_rgb)*0.15 )
21
+ end
22
+
23
+
24
+ #provides the luminosity difference between two rbg vals
25
+ def diff_lum(rgb)
26
+ rgb=rgb.to_rgb
27
+ l1 = 0.2126 * (rgb.r) ** 2.2 +
28
+ 0.7152 * (rgb.b) ** 2.2 +
29
+ 0.0722 * (rgb.g) ** 2.2;
30
+
31
+ l2 = 0.2126 * (self.r) ** 2.2 +
32
+ 0.7152 * (self.b) ** 2.2 +
33
+ 0.0722 * (self.g) ** 2.2;
34
+
35
+ return ( ( ([l1,l2].max) + 0.05 )/ ( ([l1,l2].min) + 0.05 ) - 1 ) / 20
36
+ end
37
+
38
+ #provides the brightness difference.
39
+ def diff_bri(rgb)
40
+ rgb=rgb.to_rgb
41
+ br1 = (299 * rgb.r + 587 * rgb.g + 114 * rgb.b) ;
42
+ br2 = (299 * self.r + 587 * self.g + 114 * self.b) ;
43
+ return (br1-br2).abs/1000;
44
+ end
45
+
46
+ #provides the euclidean distance between the two color values
47
+ def diff_pyt(rgb)
48
+ rgb=rgb.to_rgb
49
+ (((rgb.r - self.r)**2 +
50
+ (rgb.g - self.g)**2 +
51
+ (rgb.b - self.b)**2)**0.5)/(1.7320508075688772)
52
+ end
53
+
54
+ #difference in the two colors' hue
55
+ def diff_hue(rgb)
56
+ rgb=rgb.to_rgb
57
+ return ((self.r-rgb.r).abs +
58
+ (self.g-rgb.g).abs +
59
+ (self.b-rgb.b).abs)/3
60
+ end
61
+
62
+ end
63
+
@@ -1,43 +1,73 @@
1
- #loads color info from Rubymine .xml color files
2
-
3
1
  require 'xmlsimple'
4
- #require File.dirname(__FILE__)+'/color/lib/color'
5
2
  require 'color'
6
3
  require File.dirname(__FILE__)+"/token_list"
4
+ require File.dirname(__FILE__)+'/rgb_contrast_methods'
7
5
 
8
- module ColorThemeGen
6
+ module RMThemeGen
9
7
 
10
- class ReadRMcolor
8
+ class ThemeGenerator
11
9
 
12
10
  attr_reader :xmlout #a huge structure of xml that can be given to XmlSimple.xml_out() to create that actual color theme file
13
11
 
14
12
  def initialize
15
13
  @rand = Random.new
16
- puts @@adjectives.size * @@nouns.size
14
+
15
+ @iterations = 0
16
+ @iterations = ARGV[0].to_s.to_i
17
+
18
+ puts "rmthemegen - creates theme files for use with rubymine (3.0.0 and up) "
19
+ puts "by David Heitzman 2011 "
20
+ puts (@@adjectives.size * @@nouns.size).to_s + " possible theme names "
21
+
22
+ puts "generating #{@iterations.to_s} themes into current directory. Filenames: rmt_xyz.xml "
23
+
17
24
  =begin
18
25
  #for testing purposes of the RGB contrast evaluator
19
26
  f = File.open("index.html","w+")
20
27
  st1="<html>"
21
- 100.times do
28
+ h = Hash.new
29
+ #generate histogram
30
+ 0.times do
31
+ begin
32
+ grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
33
+ brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
34
+ #puts grkcol.contrast(brkcol)
35
+ end until true# grkcol.contrast(brkcol) > 0.20
36
+ key =(grkcol.contrast(brkcol)*100).to_i
37
+ h[key] = h.has_key?(key) ? h[key] += 1 : 1
38
+
39
+ end
40
+
41
+ 0.upto 0 do |f|
42
+ st1 += "<p>"+f.to_s+": "+ ( h[f.to_i] ? h[f.to_i].to_s : "nada")+"</p>"
43
+
44
+ end
45
+
46
+ 0.upto 255 do |i|
22
47
  begin
23
- grkcol = Color::RGB.new(@rand.rand*255,@rand.rand*256,@rand.rand*256)
24
- brkcol = Color::RGB.new(@rand.rand*255,@rand.rand*256,@rand.rand*256)
48
+ # grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
49
+ # brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
50
+ grkcol = Color::RGB.new( 0,0,0 )
51
+ brkcol = Color::RGB.new(i,0,0)
25
52
  #puts grkcol.contrast(brkcol)
26
- end until grkcol.contrast(brkcol) > 0.20
27
- st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
28
- st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
29
- grkcol = Color::RGB.new(0xf1,0x11,0x9a)
30
- brkcol = Color::RGB.new(0xa0,0xf4,0x2f)
31
- st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
32
- st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
33
- grkcol = Color::RGB.new(0x42,0x08,0x11)
34
- brkcol = Color::RGB.new(0x48,0x19,0xd0)
35
- st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
36
- st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
53
+ end until true# grkcol.contrast(brkcol) > 0.20
54
+ st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
55
+ st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
56
+ # grkcol = Color::RGB.new(0xf1,0x11,0x9a)
57
+ # brkcol = Color::RGB.new(0xa0,0xf4,0x2f)
58
+ # st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
59
+ # st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
60
+ # grkcol = Color::RGB.new(0x42,0x08,0x11)
61
+ # brkcol = Color::RGB.new(0x48,0x19,0xd0)
62
+ # st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
63
+ #st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
37
64
  end
65
+
38
66
  st1+="</html>"
39
67
  printf(f,st1)
40
68
  f.close
69
+
70
+ Kernel.exit
41
71
  =end
42
72
 
43
73
  #bold: <option name="FONT_TYPE" value="1" />
@@ -57,32 +87,45 @@ module ColorThemeGen
57
87
  # be exposed equally to
58
88
  # underline not implemented yet. There are several font decorations in rubymine,
59
89
  # probably should be used sparingly.
60
- @italic_candidates = ["STRING"]
90
+ @italic_candidates = ["STRING", "SYMBOL", "REQUIRE"]
61
91
 
62
- @bold_candidates = ["KEYWORD","RUBY_SPECIFIC_CALL", "CONSTANT", "COMMENT", "COMMA", "PAREN"]
92
+ @bold_candidates = ["KEYWORD","RUBY_SPECIFIC_CALL", "CONSTANT", "COMMA", "PAREN","RUBY_ATTR_ACCESSOR_CALL", "RUBY_ATTR_READER_CALL" ,"RUBY_ATTR_WRITER_CALL", "IDENTIFIER"]
63
93
  # with code inspections we don't color the text, we just put a line or something under it .
64
94
  @code_inspections = ["ERROR","WARNING_ATTRIBUTES","DEPRECATED", "TYPO","WARNING_ATTRIBUTES", "BAD_CHARACTER",
65
- "CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES","ERRORS_ATTRIBUTES"]
95
+ "CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES","ERRORS_ATTRIBUTES", "MATCHED_BRACE_ATTRIBUTES"]
66
96
  @cross_out = ["DEPRECATED_ATTRIBUTES" ]
67
97
 
68
98
  @unders = %w(-1 0 1 2 5 )
69
99
  @underline_candidates = ["STRING"]
70
- @italic_chance = 0.5
71
- @bold_chance = 0.7
100
+ @italic_chance = 0.2
101
+ @bold_chance = 0.4
72
102
  @underline_chance = 0.3
73
- # @loadfile = "stellar.xml"
74
- # @schemename = "Efficient Wasteland"
75
103
  @bright_median = 0.85
76
104
  @min_bright = @bright_median * 0.65
77
- @max_bright = [@bright_median * 1.35,1.0].max
105
+ @max_bright = [@bright_median * 1.35,1.0].max
106
+
107
+ @min_bright = 0.0
108
+ @max_bright = 1.0
109
+
110
+ # if we avoid any notion of "brightness", which is an absolute quality, then we
111
+ # can make our background any color we want !
112
+
113
+ #tighter contrast spec
114
+ @cont_median = 0.85
115
+ @min_cont = @cont_median * 0.65
116
+ @max_cont = [@cont_median * 1.35,1.0].max
117
+
118
+ #broad contrast spec
119
+ @min_cont = 0.30
120
+ @max_cont = 1.0
121
+
78
122
  @schemeversion = 1
79
- @background_max_brightness = 0.16
123
+ @background_max_brightness = 0.14
80
124
  @background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
81
- @foreground_min_brightness = 0.4
82
- @min_cont = 0.25
125
+ # @foreground_min_brightness = 0.4
83
126
 
84
127
 
85
- @backgroundcolor= randcolor(:shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
128
+ @backgroundcolor= randcolor( :shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
86
129
 
87
130
  end
88
131
 
@@ -108,13 +151,15 @@ module ColorThemeGen
108
151
  return "rmt_"+out+".xml"
109
152
  end
110
153
 
154
+
111
155
  def randcolor(opts={})
156
+
112
157
  df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255
113
158
  :bg_rgb => nil,
114
- :min_cont => 0.0, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
115
- :max_cont => 1.0,
116
- :max_bright => 1.0,
117
- :min_bright => 0.0,
159
+ :min_cont => @min_cont, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
160
+ :max_cont => @max_cont,
161
+ :max_bright => @max_bright,
162
+ :min_bright => @min_bright,
118
163
  # :bright_median => 0.5,
119
164
  :shade_of_grey => false} #forces r == g == b
120
165
  df = df.merge opts
@@ -126,13 +171,13 @@ module ColorThemeGen
126
171
  b = (df[:b] || @rand.rand*256)%256
127
172
  g = b = r if df[:shade_of_grey] == true
128
173
  color = Color::RGB.new(r,g,b)
129
- # puts "color "+color.html
130
- # puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
131
- bright =
174
+ #puts "bg" + @backgroundcolor if df[:bg_rgb]
175
+ #puts "color "+color.html
176
+ #puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
132
177
  contok = df[:bg_rgb] ? (df[:min_cont]..df[:max_cont]).cover?( color.contrast(df[:bg_rgb]) ) : true
133
- # puts "contok "+contok.to_s
178
+ #puts "contok "+contok.to_s
134
179
  brightok = (df[:min_bright]..df[:max_bright]).cover?( color.to_hsl.brightness )
135
- # puts "brightok "+brightok.to_s
180
+ #puts "brightok "+brightok.to_s
136
181
  end
137
182
 
138
183
  cn = color.html
@@ -144,16 +189,26 @@ module ColorThemeGen
144
189
  newopt = []
145
190
  @@doc_color_keys.each do |o|
146
191
  if o == "CARET_ROW_COLOR" then
147
- @caret_row_color = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.04,:max_cont => 0.06,:shade_of_grey=>false)
192
+ @caret_row_color = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.05,:max_cont => 0.08,:shade_of_grey=>false)
148
193
  newopt << {:name=> o, :value => @caret_row_color }
149
194
  elsif o.include?("SELECTION_BACKGROUND") then
150
195
  @selection_background = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.07,:max_cont => 0.09,:shade_of_grey=>false)
151
196
  newopt << {:name=> o, :value => @selection_background }
197
+ elsif o.include?("SELECTION_FOREGROUND") then
198
+ newopt << {:name=> o }
152
199
  elsif o.include?("GUTTER_BACKGROUND") then
153
200
  newopt << {:name=> o, :value => @backgroundcolor }
201
+ elsif o.include?("CARET_COLOR") then
202
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.30,:max_cont=>0.7,:shade_of_grey=>true) }
203
+
204
+ elsif o.include?("READONLY_BACKGROUND") then
205
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
206
+ elsif o.include?("READONLY_FRAGMENT_BACKGROUND") then
207
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
208
+
154
209
  else
155
210
  # puts "bgc"+@backgroundcolor
156
- newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont,:max_bright=>0.5,:min_bright=>0.3,:shade_of_grey=>@background_grey).to_s }
211
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont,:max_cont=>@max_cont,:shade_of_grey=>@background_grey).to_s }
157
212
  end
158
213
  end
159
214
 
@@ -163,10 +218,9 @@ module ColorThemeGen
163
218
 
164
219
  def set_doc_options
165
220
  newopt = []
166
- newopt << {:name => "LINE_SPACING",:value=>'1.3' } #:value=>'1.3' works all right
167
- newopt << {:name => "EDITOR_FONT_SIZE",:value => "14"} #:value = "14" is a safe default if you want to specify something
168
- newopt << {:name => "EDITOR_FONT_NAME" }
169
-
221
+ newopt << {:name => "LINE_SPACING",:value=>'1.0' } #:value=>'1.3' works all right
222
+ newopt << {:name => "EDITOR_FONT_SIZE",:value => "16"} #:value = "14" is a safe default if you want to specify something
223
+ newopt << {:name => "EDITOR_FONT_NAME",:value => "DejaVu Sans Mono" }
170
224
  @xmlout[:scheme][0][:option] = newopt
171
225
  end
172
226
 
@@ -178,12 +232,12 @@ module ColorThemeGen
178
232
  fonttype = 0 #bold: 1, #italic: 2, bold & italic: 3
179
233
  @bold_candidates.each do |bc|
180
234
  if o.include? bc.to_s then
181
- fonttype = 1
235
+ if @rand.rand < @bold_chance then fonttype = 1 end
182
236
  end
183
237
  end
184
238
  @italic_candidates.each do |ic|
185
239
  if o.include? ic.to_s then
186
- fonttype += 2
240
+ if @rand.rand < @italic_chance then fonttype += 2 end
187
241
  end
188
242
  end
189
243
  #this block is for setting up special cases for the new color - ie, comments darker,
@@ -192,50 +246,85 @@ module ColorThemeGen
192
246
  case
193
247
  when o.include?( "COMMENT")
194
248
  #comments -- this is done so that COMMENTED texts skew toward darker shades.
195
- newcol = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_cont => @min_cont*1.2, :min_cont=>@min_cont )
249
+ newcol = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont => 0.27)
196
250
  optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
197
251
  # {:name => "BACKGROUND", :value =>@backgroundcolor},
198
252
  {:name => "BACKGROUND"},
199
253
  {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
200
- {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )}]}]
254
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
201
255
  #default text and background for whole document
202
256
  when ["TEXT","FOLDED_TEXT_ATTRIBUTES"].include?( o.to_s)
203
- newcol = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )
257
+ newcol = randcolor(:bg_rgb=>@backgroundcolor )
204
258
  optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
205
259
  {:name => "BACKGROUND", :value =>@backgroundcolor},
206
260
  {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
207
- {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )}]}]
261
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
208
262
  when @code_inspections.include?(o.to_s)
209
- newcol = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )
263
+ newcol = randcolor(:bg_rgb=>@backgroundcolor)
210
264
  optblj=[{:option=>[ {:name => "FOREGROUND"},
211
265
  {:name => "BACKGROUND"},
212
266
  {:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
213
267
  {:name => "EFFECT_TYPE", :value=>@unders.shuffle[0].to_s },
214
- {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )}]}]
268
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
215
269
  when @cross_out.include?(o.to_s)
216
- newcol = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )
270
+ newcol = randcolor(:bg_rgb=>@backgroundcolor)
217
271
  optblj=[{:option=>[ {:name => "FOREGROUND"},
218
272
  {:name => "BACKGROUND"},
219
273
  {:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
220
274
  {:name => "EFFECT_TYPE", :value=>"3" },
221
- {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )}]}]
275
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
222
276
  else
223
- newcol=randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )
277
+ newcol=randcolor(:bg_rgb=>@backgroundcolor)
224
278
  optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
225
279
  {:name => "BACKGROUND"},
226
280
  {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
227
- {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>@min_cont,:max_bright => @max_bright, :min_bright=>@min_bright )}]}]
281
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
228
282
  end
229
283
  newopt[0][:option] << {:name =>o.to_s , :value=>optblj}
230
284
  end
231
285
  @xmlout[:scheme][0][:attributes] = newopt
232
286
  end
287
+
288
+ def make_geany_files
289
+ rantm = randthemename
290
+ geanydir ="geany_"+rantm
291
+ Dir.mkdir(geanydir)
292
+ f=File.new(geanydir+"/filetypes.xml","w+")
293
+ f.puts('[styling]')
294
+ #these are for php, html, sgml, xml
295
+ @@geany_tokens.each do |t|
296
+ # foreground;background;bold;italic
297
+ if t.upcase.include? "COMMENT" then
298
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
299
+ else
300
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
301
+ end
302
+ end
303
+ f.puts(@@geany_filetypes_post)
304
+ f.close
305
+
306
+ geanydir ="geany_"+rantm
307
+ f=File.new(geanydir+"/filetypes.ruby","w+")
308
+ f.puts('[styling]')
309
+ @@geany_ruby_tokens.each do |t|
310
+ # foreground;background;bold;italic
311
+ if t.upcase.include? "COMMENT" then
312
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
313
+ else
314
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
315
+ end
316
+ end
317
+ f.puts(@@geany_filetypes_post)
318
+ f.close
319
+ end
233
320
 
234
- def make_theme_file
321
+ def make_theme_files
235
322
  # @default_fg = @backgroundcolor
236
323
  # puts "backgroundcolor = "+@backgroundcolor
237
- @schemename = randthemename
238
- @xmlout = {:scheme=>
324
+ @iterations.times do
325
+ @backgroundcolor= randcolor(:shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
326
+ @schemename = randthemename
327
+ @xmlout = {:scheme=>
239
328
  [{:name => @schemename,:version=>@schemeversion,:parent_scheme=>"Default",
240
329
  :option =>[{:name=>"pencil length",:value=>"48 cm"},{:name => "Doowop level", :value=>"medium"}],
241
330
  :colors => [{ :option => [{:name=>"foreground",:value => "yellow"},{:name=>"background",:value => "black"} ] }],
@@ -246,25 +335,23 @@ module ColorThemeGen
246
335
  }]
247
336
  }]
248
337
  }
249
-
250
- @savefile = randfilename(@schemename)
251
- begin
338
+ @savefile = randfilename(@schemename)
252
339
  @outf = File.new(@savefile, "w+")
253
- rescue
340
+
341
+ set_doc_options
342
+ set_doc_colors
343
+ set_element_colors
344
+ # @outf.puts @@mybanner
345
+ XmlSimple.xml_out(@xmlout,{:keeproot=>true,:xmldeclaration=>true,:outputfile=> @outf, :rootname => "scheme"})
346
+ puts "outputting to file "+@savefile
347
+ @outf.close
348
+ puts "making geany directory "+make_geany_files.to_s
254
349
  end
255
-
256
- set_doc_options
257
- set_doc_colors
258
- set_element_colors
259
- XmlSimple.xml_out(@xmlout,{:keeproot=>true,:xmldeclaration=>true,:outputfile=> @outf, :rootname => "scheme"})
260
- puts "outputting to file "+@savefile
261
350
  end
262
351
 
263
352
 
264
353
  end #class
265
354
  end #module
266
355
 
267
- l = ColorThemeGen::ReadRMcolor.new
268
- 5.times do
269
- l.make_theme_file
270
- end
356
+ l = RMThemeGen::ThemeGenerator.new
357
+ l.make_theme_files
@@ -1,19 +1,143 @@
1
1
 
2
- module ColorThemeGen
2
+ module RMThemeGen
3
3
 
4
- class ReadRMcolor
4
+ class ThemeGenerator
5
5
  @@doc_opt_keys = %w( LINE_SPACING EDITOR_FONT_SIZE EDITOR_FONT_NAME)
6
6
  @@doc_color_keys = %w(ANNOTATIONS_COLOR CARET_COLOR CARET_ROW_COLOR CONSOLE_BACKGROUND_KEY GUTTER_BACKGROUND INDENT_GUIDE LINE_NUMBERS_COLOR
7
7
  METHOD_SEPARATORS_COLOR MODIFIED_LINES_COLOR READONLY_BACKGROUND READONLY_FRAGMENT_BACKGROUND RECURSIVE_CALL_ATTRIBUTES RIGHT_MARGIN_COLOR
8
8
  SELECTED_INDENT_GUIDE SELECTED_TEARLINE_COLOR SELECTION_BACKGROUND SELECTION_FOREGROUND TEARLINE_COLOR WHITESPACES)
9
- @@element_keys = %w( ABSTRACT_CLASS_NAME_ATTRIBUTES ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES ANNOTATION_NAME_ATTRIBUTES ATTR_INTERNAL_CALL_ID BAD_CHARACTER BREAKPOINT_ATTRIBUTES CLASS_NAME_ATTRIBUTES CONSOLE_BLUE_OUTPUT CONSOLE_CYAN_OUTPUT CONSOLE_ERROR_OUTPUT CONSOLE_GRAY_OUTPUT CONSOLE_GREEN_OUTPUT CONSOLE_MAGENTA_OUTPUT CONSOLE_NORMAL_OUTPUT CONSOLE_OUTPUT CONSOLE_RED_OUTPUT CONSOLE_SYSTEM_OUTPUT CONSOLE_USER_INPUT CONSOLE_YELLOW_OUTPUT CSS.COMMENT CSS.FUNCTION CSS.IDENT CSS.KEYWORD CSS.NUMBER CSS.PROPERTY_NAME CSS.PROPERTY_VALUE CSS.STRING CSS.TAG_NAME CSS.URL CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES CUSTOM_KEYWORD1_ATTRIBUTES CUSTOM_KEYWORD2_ATTRIBUTES CUSTOM_KEYWORD3_ATTRIBUTES CUSTOM_KEYWORD4_ATTRIBUTES CUSTOM_LINE_COMMENT_ATTRIBUTES CUSTOM_MULTI_LINE_COMMENT_ATTRIBUTES CUSTOM_NUMBER_ATTRIBUTES CUSTOM_STRING_ATTRIBUTES CUSTOM_VALID_STRING_ESCAPE_ATTRIBUTES DEPRECATED_ATTRIBUTES DIFF_CONFLICT DIFF_DELETED DIFF_INSERTED DIFF_MODIFIED DUPLICATE_FROM_SERVER EL.BOUNDS EL.BRACKETS EL.IDENT EL.KEYWORD EL.NUMBER EL.PARENTHS EL.STRING EL_BACKGROUND ERRORS_ATTRIBUTES EXECUTIONPOINT_ATTRIBUTES FOLDED_TEXT_ATTRIBUTES FOLLOWED_HYPERLINK_ATTRIBUTES GENERIC_SERVER_ERROR_OR_WARNING GHERKIN_KEYWORD HAML_CLASS HAML_COMMENT HAML_FILTER HAML_FILTER_CONTENT HAML_ID HAML_LINE_CONTINUATION HAML_RUBY_CODE HAML_RUBY_START HAML_TAG HAML_TEXT HAML_XHTML HTML_ATTRIBUTE_NAME HTML_ATTRIBUTE_VALUE HTML_COMMENT HTML_ENTITY_REFERENCE HTML_TAG HTML_TAG_NAME HYPERLINK_ATTRIBUTES IDENTIFIER_UNDER_CARET_ATTRIBUTES INCLUDE_JAVA_CALL INFO_ATTRIBUTES INJECTED_LANGUAGE_FRAGMENT INSPECTION_MULTIPLE_RESOLVE_WARNING_ID INSTANCE_FIELD_ATTRIBUTES INTERFACE_NAME_ATTRIBUTES JAVA_DOC_COMMENT JAVA_DOC_MARKUP JAVA_INVALID_STRING_ESCAPE JAVA_KEYWORD JAVA_NUMBER JAVA_STRING JAVA_VALID_STRING_ESCAPE JS.ATTRIBUTE JS.BADCHARACTER JS.BLOCK_COMMENT JS.DOC_COMMENT JS.DOC_MARKUP JS.DOC_TAG JS.GLOBAL_FUNCTION JS.GLOBAL_VARIABLE JS.INSTANCE_MEMBER_FUNCTION JS.INSTANCE_MEMBER_VARIABLE JS.INVALID_STRING_ESCAPE JS.KEYWORD JS.LINE_COMMENT JS.LOCAL_VARIABLE JS.NUMBER JS.PARAMETER JS.REGEXP JS.STATIC_MEMBER_FUNCTION JS.STATIC_MEMBER_VARIABLE JS.STRING JS.VALID_STRING_ESCAPE JSP_ATTRIBUTE_NAME JSP_ATTRIBUTE_VALUE JSP_DIRECTIVE_BACKGROUND JSP_DIRECTIVE_NAME JSP_SCRIPTING_BACKGROUND LESS_VARIABLE MATCHED_BRACE_ATTRIBUTES NOT_USED_ELEMENT_ATTRIBUTES PROPERTIES.INVALID_STRING_ESCAPE PROPERTIES.KEY PROPERTIES.VALID_STRING_ESCAPE PROPERTIES.VALUE REGEXP.BRACES REGEXP.BRACKETS REGEXP.ESC_CHARACTER REGEXP.META REGEXP.PARENTHS REQUIRE_GEM_CALL RHTML_COMMENT_ID RHTML_EXPRESSION_END_ID RHTML_EXPRESSION_START_ID RHTML_OMIT_NEW_LINE_ID RHTML_SCRIPTING_BACKGROUND_ID RHTML_SCRIPTLET_END_ID RHTML_SCRIPTLET_START_ID
9
+ @@element_keys = %w( ABSTRACT_CLASS_NAME_ATTRIBUTES ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES ANNOTATION_NAME_ATTRIBUTES ATTR_INTERNAL_CALL_ID BAD_CHARACTER BREAKPOINT_ATTRIBUTES CLASS_NAME_ATTRIBUTES CONSOLE_BLUE_OUTPUT CONSOLE_CYAN_OUTPUT CONSOLE_ERROR_OUTPUT CONSOLE_GRAY_OUTPUT CONSOLE_GREEN_OUTPUT CONSOLE_MAGENTA_OUTPUT CONSOLE_NORMAL_OUTPUT CONSOLE_OUTPUT CONSOLE_RED_OUTPUT CONSOLE_SYSTEM_OUTPUT CONSOLE_USER_INPUT CONSOLE_YELLOW_OUTPUT CSS.COMMENT CSS.FUNCTION CSS.IDENT CSS.KEYWORD CSS.NUMBER CSS.PROPERTY_NAME CSS.PROPERTY_VALUE CSS.STRING CSS.TAG_NAME CSS.URL CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES CUSTOM_KEYWORD1_ATTRIBUTES CUSTOM_KEYWORD2_ATTRIBUTES CUSTOM_KEYWORD3_ATTRIBUTES CUSTOM_KEYWORD4_ATTRIBUTES CUSTOM_LINE_COMMENT_ATTRIBUTES CUSTOM_MULTI_LINE_COMMENT_ATTRIBUTES CUSTOM_NUMBER_ATTRIBUTES CUSTOM_STRING_ATTRIBUTES CUSTOM_VALID_STRING_ESCAPE_ATTRIBUTES DEPRECATED_ATTRIBUTES DIFF_CONFLICT DIFF_DELETED DIFF_INSERTED DIFF_MODIFIED DUPLICATE_FROM_SERVER EL.BOUNDS EL.BRACKETS EL.IDENT EL.KEYWORD EL.NUMBER EL.PARENTHS EL.STRING EL_BACKGROUND ERRORS_ATTRIBUTES EXECUTIONPOINT_ATTRIBUTES FOLDED_TEXT_ATTRIBUTES FOLLOWED_HYPERLINK_ATTRIBUTES GENERIC_SERVER_ERROR_OR_WARNING GHERKIN_KEYWORD HAML_CLASS HAML_COMMENT HAML_FILTER HAML_FILTER_CONTENT HAML_ID HAML_LINE_CONTINUATION HAML_RUBY_CODE HAML_RUBY_START HAML_TAG HAML_TEXT HAML_XHTML HTML_ATTRIBUTE_NAME HTML_ATTRIBUTE_VALUE HTML_COMMENT HTML_ENTITY_REFERENCE HTML_TAG HTML_TAG_NAME HYPERLINK_ATTRIBUTES IDENTIFIER_UNDER_CARET_ATTRIBUTES INCLUDE_JAVA_CALL INFO_ATTRIBUTES INJECTED_LANGUAGE_FRAGMENT INSPECTION_MULTIPLE_RESOLVE_WARNING_ID INSTANCE_FIELD_ATTRIBUTES INTERFACE_NAME_ATTRIBUTES JAVA_DOC_COMMENT JAVA_DOC_MARKUP JAVA_INVALID_STRING_ESCAPE JAVA_KEYWORD JAVA_NUMBER JAVA_STRING JAVA_VALID_STRING_ESCAPE JS.ATTRIBUTE JS.BADCHARACTER JS.BLOCK_COMMENT JS.DOC_COMMENT JS.DOC_MARKUP JS.DOC_TAG JS.GLOBAL_FUNCTION JS.GLOBAL_VARIABLE JS.INSTANCE_MEMBER_FUNCTION JS.INSTANCE_MEMBER_VARIABLE JS.INVALID_STRING_ESCAPE JS.KEYWORD JS.LINE_COMMENT JS.LOCAL_VARIABLE JS.NUMBER JS.PARAMETER JS.REGEXP JS.STATIC_MEMBER_FUNCTION JS.STATIC_MEMBER_VARIABLE JS.STRING JS.VALID_STRING_ESCAPE JSP_ATTRIBUTE_NAME JSP_ATTRIBUTE_VALUE JSP_DIRECTIVE_BACKGROUND JSP_DIRECTIVE_NAME JSP_SCRIPTING_BACKGROUND LESS_VARIABLE MATCHED_BRACE_ATTRIBUTES NOT_USED_ELEMENT_ATTRIBUTES PROPERTIES.INVALID_STRING_ESCAPE PROPERTIES.KEY PROPERTIES.VALID_STRING_ESCAPE PROPERTIES.VALUE REGEXP.BRACES REGEXP.BRACKETS REGEXP.ESC_CHARACTER REGEXP.META REGEXP.PARENTHS REGEXP.CHAR_CLASS REGEXP.INVALID_STRING_ESCAPE REGEXP.QUOTE_CHARACTER REGEXP.REDUNDANT_ESCAPE REQUIRE_GEM_CALL RHTML_COMMENT_ID RHTML_EXPRESSION_END_ID RHTML_EXPRESSION_START_ID RHTML_OMIT_NEW_LINE_ID RHTML_SCRIPTING_BACKGROUND_ID RHTML_SCRIPTLET_END_ID RHTML_SCRIPTLET_START_ID
10
+
10
11
 
11
12
  RUBY_ATTR_ACCESSOR_CALL RUBY_ATTR_READER_CALL RUBY_ATTR_WRITER_CALL RUBY_BACK_REF RUBY_BAD_CHARACTER RUBY_BRACKETS RUBY_COMMA RUBY_COMMENT RUBY_CONSTANT RUBY_CONSTANT_DEF_ID RUBY_CVAR RUBY_ESCAPE_SEQUENCE RUBY_EXPR_IN_STRING RUBY_GVAR RUBY_HASH_ASSOC RUBY_HEREDOC_CONTENT RUBY_HEREDOC_ID RUBY_IDENTIFIER RUBY_IMPORT_CALL RUBY_INVALID_ESCAPE_SEQUENCE RUBY_IVAR RUBY_KEYWORD RUBY_LINE_CONTINUATION RUBY_LOCAL_VAR_ID RUBY_METHOD_NAME RUBY_NTH_REF RUBY_NUMBER RUBY_OPERATION_SIGN RUBY_PARAMDEF_CALL RUBY_PARAMETER_ID RUBY_PRIVATE_CALL RUBY_PROTECTED_CALL RUBY_PUBLIC_CALL RUBY_REGEXP RUBY_REQUIRE_ARG_CALL RUBY_REQUIRE_CALL RUBY_SEMICOLON RUBY_SPECIFIC_CALL RUBY_STRING RUBY_SYMBOL RUBY_WORDS
12
13
 
13
14
  SASS_ATTRIBUTE SASS_COMMENT SASS_CONSTANT SASS_DIRECTIVE SASS_MIXIN SASS_NUMBER SASS_RULE SASS_STRING SASS_VARIABLE SCOPE_KEY_All SCOPE_KEY_Non-Project Files SCOPE_KEY_Problems SCOPE_KEY_Production SCOPE_KEY_Project Files SCOPE_KEY_Tests SEARCH_RESULT_ATTRIBUTES SQL_KEYWORD STATIC_FIELD_ATTRIBUTES TEMPLATE_VARIABLE_ATTRIBUTES TEXT TEXT_SEARCH_RESULT_ATTRIBUTES TODO_DEFAULT_ATTRIBUTES TYPO WARNING_ATTRIBUTES WRITE_IDENTIFIER_UNDER_CARET_ATTRIBUTES WRITE_SEARCH_RESULT_ATTRIBUTES WRONG_REFERENCES_ATTRIBUTES XML_ATTRIBUTE_NAME XML_ATTRIBUTE_VALUE XML_COMMENT XML_ENTITY_REFERENCE XML_PROLOGUE XML_TAG XML_TAG_DATA XML_TAG_NAME YAML_COMMENT YAML_SCALAR_DSTRING YAML_SCALAR_KEY YAML_SCALAR_LIST YAML_SCALAR_STRING YAML_SCALAR_VALUE YAML_SCALAR_VALUE4 YAML_SIGN YAML_TEXT)
14
- @@adjectives = %w( adorable adventurous aggressive alert attractive average beautiful blue-eyed bloody blushing bright clean clear cloudy colorful crowded cute dark drab distinct dull elegant excited fancy filthy glamorous gleaming gorgeous graceful grotesque handsome homely light long magnificent misty motionless muddy old-fashioned plain poised precious quaint shiny smoggy sparkling spotless stormy strange ugly ugliest unsightly unusual wide-eyed alive annoying bad better beautiful brainy breakable busy careful cautious clever clumsy concerned crazy curious dead different difficult doubtful easy expensive famous fragile frail gifted helpful helpless horrible important impossible inexpensive innocent inquisitive modern mushy odd open outstanding poor powerful prickly puzzled real rich shy sleepy stupid super talented tame tender tough uninterested vast wandering wild wrong angry annoyed anxious arrogant ashamed awful bad bewildered black blue bored clumsy combative condemned confused crazy, flipped-out creepy cruel dangerous defeated defiant depressed disgusted disturbed dizzy dull embarrassed envious evil fierce foolish frantic frightened grieving grumpy helpless homeless hungry hurt ill itchy jealous jittery lazy lonely mysterious nasty naughty nervous nutty obnoxious outrageous panicky repulsive scary selfish sore tense terrible testy thoughtless tired troubled upset uptight weary wicked worried agreeable amused brave calm charming cheerful comfortable cooperative courageous delightful determined eager elated enchanting encouraging energetic enthusiastic excited exuberant fair faithful fantastic fine friendly funny gentle glorious good happy healthy helpful hilarious jolly joyous kind lively lovely lucky nice obedient perfect pleasant proud relieved silly smiling splendid successful thankful thoughtful victorious vivacious witty wonderful zealous zany broad chubby crooked curved deep flat high hollow low narrow round shallow skinny square steep straight wide big colossal fat gigantic great huge immense large little mammoth massive miniature petite puny scrawny short small tall teeny teeny-tiny tiny cooing deafening faint harsh high-pitched hissing hushed husky loud melodic moaning mute noisy purring quiet raspy resonant screeching shrill silent soft squealing thundering voiceless whispering ancient brief Early fast late long modern old old-fashioned quick rapid short slow swift young Taste/Touch bitter delicious fresh juicy ripe rotten salty sour spicy stale sticky strong sweet tart tasteless tasty thirsty fluttering fuzzy greasy grubby hard hot icy loose melted nutritious plastic prickly rainy rough scattered shaggy shaky sharp shivering silky slimy slippery smooth soft solid steady sticky tender tight uneven weak wet wooden yummy boiling breezy broken bumpy chilly cold cool creepy crooked cuddly curly damaged damp dirty dry dusty filthy flaky fluffy freezing hot warm wet abundant empty few heavy light many numerous substantial average big colossal fat giant gigantic great huge immense large little long mammoth massive miniature petite puny short small tall tiny boiling breezy broken bumpy chilly cold cool creepy crooked cuddly curly damaged damp dirty dry dusty filthy flaky fluffy wet broad chubby crooked curved deep flat high hollow low narrow round shallow skinny square steep straight wide ancient brief early fast late long modern old old-fashioned quick rapid short slow swift young abundant empty few heavy light Sound cooing deafening faint harsh high-pitched hissing hushed husky loud melodic moaning mute noisy purring quiet raspy resonant screeching shrill silent soft squealing thundering voiceless whispering bitter delicious fresh juicy ripe rotten salty sour spicy stale sticky strong sweet tasteless tasty thirsty fluttering fuzzy greasy grubby hard hot icy loose melted plastic prickly rainy rough scattered shaggy shaky sharp shivering silky slimy slippery smooth soft solid steady sticky tender tight uneven weak wet wooden afraid angry annoyed anxious arrogant ashamed awful bad bewildered bored combative condemned confused creepy cruel dangerous defeated defiant depressed disgusted disturbed eerie embarrassed envious evil fierce foolish frantic frightened grieving helpless homeless hungry hurt ill jealous lonely mysterious naughty nervous obnoxious outrageous panicky repulsive scary scornful selfish sore tense terrible thoughtless tired troubled upset uptight weary wicked worried agreeable amused brave calm charming cheerful comfortable cooperative courageous delightful determined eager elated enchanting encouraging energetic enthusiastic excited exuberant fair faithful fantastic fine friendly funny gentle glorious good happy healthy helpful hilarious jolly joyous kind lively lovely lucky obedient perfect pleasant proud relieved silly smiling splendid successful thoughtful victorious vivacious witty wonderful zealous zany other good new old great high small different large local social important long young national british right early possible big little political able late general full far low public available bad main sure clear major economic only likely real black particular international special difficult certain open whole white free short easy strong european central similar human common necessary single personal hard private poor financial wide foreign simple recent concerned american various close fine english wrong present royal natural individual nice french following current modern labour legal happy final red normal serious previous total prime significant industrial sorry dead specific appropriate top soviet basic military original successful aware hon popular heavy professional direct dark cold ready green useful effective western traditional scottish german independent deep interesting considerable involved physical left hot existing responsible complete medical blue extra past male interested fair essential beautiful civil primary obvious future environmental positive senior nuclear annual relevant huge rich commercial safe regional practical official separate key chief regular due additional active powerful complex standard impossible light warm middle fresh sexual front domestic actual united technical ordinary cheap strange internal excellent quiet soft potential northern religious quick very famous cultural proper broad joint formal limited conservative lovely usual ltd unable rural initial substantial christian bright average leading reasonable immediate suitable equal detailed working overall female afraid democratic growing sufficient scientific eastern correct inc irish expensive educational mental dangerous critical increased familiar unlikely double perfect slow tiny dry historical thin daily southern increasing wild alone urban empty married narrow liberal supposed upper apparent tall busy bloody prepared russian moral careful clean attractive japanese vital thick alternative fast ancient elderly rare external capable brief wonderful grand typical entire grey constant vast surprised ideal terrible academic funny minor pleased severe ill corporate negative permanent weak brown fundamental odd crucial inner used criminal contemporary sharp sick near roman massive unique secondary parliamentary african unknown subsequent angry alive guilty lucky enormous well communist yellow unusual net long-term tough dear extensive glad remaining agricultural alright healthy italian principal tired efficient comfortable chinese relative friendly conventional willing sudden proposed voluntary slight valuable dramatic golden temporary federal keen flat silent indian video-taped worried pale statutory welsh dependent firm wet competitive armed radical outside acceptable sensitive living pure global emotional sad secret rapid adequate fixed sweet administrative wooden remarkable comprehensive surprising solid rough mere mass brilliant maximum absolute tory electronic visual electric cool spanish literary continuing supreme chemical genuine exciting written stupid advanced extreme classical fit favourite socialist widespread confident straight catholic proud numerous opposite distinct mad helpful given disabled consistent anxious nervous awful stable constitutional satisfied conscious developing strategic holy smooth dominant remote theoretical outstanding pink pretty clinical minimum honest impressive related residential extraordinary plain visible accurate distant still greek complicated musical precise gentle broken live silly fat tight monetary round psychological violent unemployed inevitable junior sensible grateful pleasant dirty structural welcome so-called deaf above continuous blind overseas mean entitled delighted loose occasional evident desperate fellow universal square steady classic equivalent intellectual victorian level ultimate creative lost medieval clever linguistic convinced judicial raw sophisticated asleep vulnerable illegal outer revolutionary bitter changing australian native imperial strict wise informal flexible collective frequent experimental spiritual intense rational ethnic generous inadequate prominent logical bare historic modest dutch acute electrical valid weekly gross automatic loud reliable mutual liable multiple ruling curious arab sole jewish managing pregnant latin nearby exact underlying identical satisfactory marginal distinctive electoral urgent presidential controversial oral everyday encouraging organic continued expected statistical desirable innocent improved exclusive marked experienced unexpected superb sheer disappointed frightened full-time gastric capitalist romantic naked reluctant magnificent convenient established closed uncertain artificial diplomatic tremendous marine mechanical retail institutional mixed required biological known functional straightforward superior digital part-time spectacular unhappy confused unfair aggressive spare painful abstract asian associated legislative monthly intelligent hungry explicit nasty just faint coloured ridiculous amazing comparable successive working-class realistic back decent unnecessary flying fucking random influential dull genetic neat marvellous crazy damp giant secure bottom skilled subtle elegant brave lesser parallel steep intensive casual tropical lonely partial preliminary concrete alleged assistant vertical upset delicate mild occupational excessive progressive iraqi exceptional integrated striking continental okay harsh combined fierce handsome characteristic chronic compulsory interim objective splendid magic short-term systematic obliged payable fun horrible primitive fascinating ideological metropolitan surrounding estimated peaceful premier operational technological kind advisory hostile precious gay accessible determined excited impressed provincial smart endless isolated post-war drunk geographical like dynamic boring forthcoming unfortunate definite super notable indirect stiff wealthy awkward lively neutral artistic content mature colonial ambitious evil magnetic verbal legitimate sympathetic well-known empirical head shallow vague naval depressed shared added shocked mid worthwhile qualified missing blank absent favourable polish israeli developed profound representative enthusiastic dreadful rigid reduced cruel coastal peculiar racial ugly swiss crude extended selected eager feminist canadian bold relaxed corresponding running planned applicable immense allied comparative uncomfortable conservation productive beneficial bored charming minimal mobile turkish orange rear passive suspicious overwhelming fatal resulting symbolic registered neighbouring calm irrelevant patient compact profitable rival loyal moderate distinguished interior noble insufficient eligible mysterious varying middle-class managerial molecular olympic linear prospective printed parental diverse elaborate furious fiscal burning useless semantic embarrassed inherent philosophical deliberate awake variable promising unpleasant varied sacred selective inclined tender hidden worthy intermediate sound protective fortunate slim islamic defensive divine stuck driving invisible misleading circular mathematical inappropriate liquid persistent solar doubtful manual architectural intact incredible devoted prior tragic respectable optimistic convincing unacceptable decisive competent spatial respective binding relieved nursing toxic select redundant integral then probable amateur fond passing specified territorial horizontal old-fashioned inland cognitive regulatory miserable resident polite scared marxist gothic civilian instant lengthy adverse korean unconscious anonymous aesthetic orthodox static unaware costly fantastic foolish fashionable causal compatible wee implicit dual ok cheerful subjective forward surviving exotic purple cautious visiting aggregate ethical protestant teenage large-scale dying disastrous delicious confidential underground thorough grim autonomous atomic frozen colourful injured uniform ashamed glorious wicked coherent rising shy novel balanced delightful arbitrary adjacent psychiatric worrying weird unchanged rolling evolutionary intimate sporting disciplinary formidable lexical noisy gradual accused homeless supporting coming renewed excess retired rubber chosen outdoor embarrassing preferred bizarre appalling agreed imaginative governing accepted vocational palestinian mighty puzzled worldwide handicapped organisational sunny eldest eventual spontaneous vivid rude nineteenth-century faithful ministerial innovative controlled conceptual unwilling civic meaningful disturbing alive brainy breakable busy careful cautious clever concerned crazy curious dead different difficult doubtful easy famous fragile helpful helpless important impossible innocent inquisitive modern open outstanding poor powerful puzzled real rich shy sleepy stupid super tame uninterested wandering wild wrong adorable alert average beautiful blonde bloody blushing bright clean clear cloudy colorful crowded cute dark drab distinct dull elegant fancy filthy glamorous gleaming graceful grotesque homely light misty motionless muddy plain poised quaint shiny smoggy sparkling spotless stormy strange ugly unsightly unusual bad better beautiful big black blue bright clumsy crazy dizzy dull fat frail friendly funny great green gigantic gorgeous grumpy handsome happy horrible itchy jittery jolly kind long lazy magnificent magenta many mighty mushy nasty new nice nosy nutty nutritious odd orange ordinary pretty precious prickly purple quaint quiet quick quickest rainy rare ratty red roasted robust round sad scary scrawny short silly stingy strange striped spotty tart tall tame tan tender testy tricky tough ugly ugliest vast watery wasteful wide-eyed wonderful yellow yummy zany )
15
+
16
+ @@adjectives = %w( adorable adventurous aggressive alert attractive average beautiful blue-eyed bloody blushing bright clean clear cloudy colorful crowded cute dark drab distinct dull elegant excited fancy filthy glamorous gleaming gorgeous graceful grotesque handsome homely light long magnificent misty motionless muddy old-fashioned plain poised precious quaint shiny smoggy sparkling spotless stormy strange ugly ugliest unsightly unusual wide-eyed alive annoying bad better beautiful brainy breakable busy careful cautious clever clumsy concerned crazy curious dead different difficult doubtful easy expensive famous fragile frail gifted helpful helpless horrible important impossible inexpensive innocent inquisitive modern mushy odd open outstanding poor powerful prickly puzzled real rich shy sleepy stupid super talented tame tender tough uninterested vast wandering wild wrong angry annoyed anxious arrogant ashamed awful bad bewildered black blue bored clumsy combative condemned confused crazy, flipped-out creepy cruel dangerous defeated defiant depressed disgusted disturbed dizzy dull embarrassed envious evil fierce foolish frantic frightened grieving grumpy helpless homeless hungry hurt ill itchy jealous jittery lazy lonely mysterious nasty naughty nervous nutty obnoxious outrageous panicky repulsive scary selfish sore tense terrible testy thoughtless tired troubled upset uptight weary wicked worried agreeable amused brave calm charming cheerful comfortable cooperative courageous delightful determined eager elated enchanting encouraging energetic enthusiastic excited exuberant fair faithful fantastic fine friendly funny gentle glorious good happy healthy helpful hilarious jolly joyous kind lively lovely lucky nice obedient perfect pleasant proud relieved silly smiling splendid successful thankful thoughtful victorious vivacious witty wonderful zealous zany broad chubby crooked curved deep flat high hollow low narrow round shallow skinny square steep straight wide big colossal fat gigantic great huge immense large little mammoth massive miniature petite puny scrawny short small tall teeny teeny-tiny tiny cooing deafening faint harsh high-pitched hissing hushed husky loud melodic moaning mute noisy purring quiet raspy resonant screeching shrill silent soft squealing thundering voiceless whispering ancient brief Early fast late long modern old old-fashioned quick rapid short slow swift young bitter delicious fresh juicy ripe rotten salty sour spicy stale sticky strong sweet tart tasteless tasty thirsty fluttering fuzzy greasy grubby hard hot icy loose melted nutritious plastic prickly rainy rough scattered shaggy shaky sharp shivering silky slimy slippery smooth soft solid steady sticky tender tight uneven weak wet wooden yummy boiling breezy broken bumpy chilly cold cool creepy crooked cuddly curly damaged damp dirty dry dusty filthy flaky fluffy freezing hot warm wet abundant empty few heavy light numerous substantial average big colossal fat giant gigantic great huge immense large little long mammoth massive miniature petite puny short small tall tiny boiling breezy broken bumpy chilly cold cool creepy crooked cuddly curly damaged damp dirty dry dusty filthy flaky fluffy wet broad chubby crooked curved deep flat high hollow low narrow round shallow skinny square steep straight wide ancient brief early fast late long modern old old-fashioned quick rapid short slow swift young abundant empty few heavy light Sound cooing deafening faint harsh high-pitched hissing hushed husky loud melodic moaning mute noisy purring quiet raspy resonant screeching shrill silent soft squealing thundering voiceless whispering bitter delicious fresh juicy ripe rotten salty sour spicy stale sticky strong sweet tasteless tasty thirsty fluttering fuzzy greasy grubby hard hot icy loose melted plastic prickly rainy rough scattered shaggy shaky sharp shivering silky slimy slippery smooth soft solid steady sticky tender tight uneven weak wet wooden afraid angry annoyed anxious arrogant ashamed awful bad bewildered bored combative condemned confused creepy cruel dangerous defeated defiant depressed disgusted disturbed eerie embarrassed envious evil fierce foolish frantic frightened grieving helpless homeless hungry hurt ill jealous lonely mysterious naughty nervous obnoxious outrageous panicky repulsive scary scornful selfish sore tense terrible thoughtless tired troubled upset uptight weary wicked worried agreeable amused brave calm charming cheerful comfortable cooperative courageous delightful determined eager elated enchanting encouraging energetic enthusiastic excited exuberant fair faithful fantastic fine friendly funny gentle glorious good happy healthy helpful hilarious jolly joyous kind lively lovely lucky obedient perfect pleasant proud relieved silly smiling splendid successful thoughtful victorious vivacious witty wonderful zealous zany other good new old great high small different large local social important long young national british right early possible big little political able late general full far low public available bad main sure clear major economic only likely real black particular international special difficult certain open whole white free short easy strong european central similar human common necessary single personal hard private poor financial wide foreign simple recent concerned american various close fine english wrong present royal natural individual nice french following current modern labour legal happy final red normal serious previous total prime significant industrial sorry dead specific appropriate top soviet basic military original successful aware hon popular heavy professional direct dark cold ready green useful effective western traditional scottish german independent deep interesting considerable involved physical left hot existing responsible complete medical blue extra past male interested fair essential beautiful civil primary obvious future environmental positive senior nuclear annual relevant huge rich commercial safe regional practical official separate key chief regular due additional active powerful complex standard impossible light warm middle fresh sexual front domestic actual united technical ordinary cheap strange internal excellent quiet soft potential northern religious quick very famous cultural proper broad joint formal limited conservative lovely usual ltd unable rural initial substantial christian bright average leading reasonable immediate suitable equal detailed working overall female afraid democratic growing sufficient scientific eastern correct inc irish expensive educational mental dangerous critical increased familiar unlikely double perfect slow tiny dry historical thin daily southern increasing wild alone urban empty married narrow liberal supposed upper apparent tall busy bloody prepared russian moral careful clean attractive japanese vital thick alternative fast ancient elderly rare external capable brief wonderful grand typical entire grey constant vast surprised ideal terrible academic funny minor pleased severe ill corporate negative permanent weak brown fundamental odd crucial inner used criminal contemporary sharp sick near roman massive unique secondary parliamentary african unknown subsequent angry alive guilty lucky enormous well communist yellow unusual net long-term tough dear extensive glad remaining agricultural alright healthy italian principal tired efficient comfortable chinese relative friendly conventional willing sudden proposed voluntary slight valuable dramatic golden temporary federal keen flat silent indian video-taped worried pale statutory welsh dependent firm wet competitive armed radical outside acceptable sensitive living pure global emotional sad secret rapid adequate fixed sweet administrative wooden remarkable comprehensive surprising solid rough mere mass brilliant maximum absolute tory electronic visual electric cool spanish literary continuing supreme chemical genuine exciting written stupid advanced extreme classical fit favourite socialist widespread confident straight catholic proud numerous opposite distinct mad helpful given disabled consistent anxious nervous awful stable constitutional satisfied conscious developing strategic holy smooth dominant remote theoretical outstanding pink pretty clinical minimum honest impressive related residential extraordinary plain visible accurate distant still greek complicated musical precise gentle broken live silly fat tight monetary round psychological violent unemployed inevitable junior sensible grateful pleasant dirty structural welcome so-called deaf above continuous blind overseas mean entitled delighted loose occasional evident desperate fellow universal square steady classic equivalent intellectual victorian level ultimate creative lost medieval clever linguistic convinced judicial raw sophisticated asleep vulnerable illegal outer revolutionary bitter changing australian native imperial strict wise informal flexible collective frequent experimental spiritual intense rational ethnic generous inadequate prominent logical bare historic modest dutch acute electrical valid weekly gross automatic loud reliable mutual liable multiple ruling curious arab sole jewish managing pregnant latin nearby exact underlying identical satisfactory marginal distinctive electoral urgent presidential controversial oral everyday encouraging organic continued expected statistical desirable innocent improved exclusive marked experienced unexpected superb sheer disappointed frightened full-time gastric capitalist romantic naked reluctant magnificent convenient established closed uncertain artificial diplomatic tremendous marine mechanical retail institutional mixed required biological known functional straightforward superior digital part-time spectacular unhappy confused unfair aggressive spare painful abstract asian associated legislative monthly intelligent hungry explicit nasty just faint coloured ridiculous amazing comparable successive working-class realistic back decent unnecessary flying fucking random influential dull genetic neat marvellous crazy damp giant secure bottom skilled subtle elegant brave lesser parallel steep intensive casual tropical lonely partial preliminary concrete alleged assistant vertical upset delicate mild occupational excessive progressive iraqi exceptional integrated striking continental okay harsh combined fierce handsome characteristic chronic compulsory interim objective splendid magic short-term systematic obliged payable fun horrible primitive fascinating ideological metropolitan surrounding estimated peaceful premier operational technological kind advisory hostile precious gay accessible determined excited impressed provincial smart endless isolated post-war drunk geographical like dynamic boring forthcoming unfortunate definite super notable indirect stiff wealthy awkward lively neutral artistic content mature colonial ambitious evil magnetic verbal legitimate sympathetic well-known empirical head shallow vague naval depressed shared added shocked mid worthwhile qualified missing blank absent favourable polish israeli developed profound representative enthusiastic dreadful rigid reduced cruel coastal peculiar racial ugly swiss crude extended selected eager feminist canadian bold relaxed corresponding running planned applicable immense allied comparative uncomfortable conservation productive beneficial bored charming minimal mobile turkish orange rear passive suspicious overwhelming fatal resulting symbolic registered neighbouring calm irrelevant patient compact profitable rival loyal moderate distinguished interior noble insufficient eligible mysterious varying middle-class managerial molecular olympic linear prospective printed parental diverse elaborate furious fiscal burning useless semantic embarrassed inherent philosophical deliberate awake variable promising unpleasant varied sacred selective inclined tender hidden worthy intermediate sound protective fortunate slim islamic defensive divine stuck driving invisible misleading circular mathematical inappropriate liquid persistent solar doubtful manual architectural intact incredible devoted prior tragic respectable optimistic convincing unacceptable decisive competent spatial respective binding relieved nursing toxic select redundant integral then probable amateur fond passing specified territorial horizontal old-fashioned inland cognitive regulatory miserable resident polite scared marxist gothic civilian instant lengthy adverse korean unconscious anonymous aesthetic orthodox static unaware costly fantastic foolish fashionable causal compatible wee implicit dual ok cheerful subjective forward surviving exotic purple cautious visiting aggregate ethical protestant teenage large-scale dying disastrous delicious confidential underground thorough grim autonomous atomic frozen colourful injured uniform ashamed glorious wicked coherent rising shy novel balanced delightful arbitrary adjacent psychiatric worrying weird unchanged rolling evolutionary intimate sporting disciplinary formidable lexical noisy gradual accused homeless supporting coming renewed excess retired rubber chosen outdoor embarrassing preferred bizarre appalling agreed imaginative governing accepted vocational palestinian mighty puzzled worldwide handicapped organisational sunny eldest eventual spontaneous vivid rude nineteenth-century faithful ministerial innovative controlled conceptual unwilling civic meaningful disturbing alive brainy breakable busy careful cautious clever concerned crazy curious dead different difficult doubtful easy famous fragile helpful helpless important impossible innocent inquisitive modern open outstanding poor powerful puzzled real rich shy sleepy stupid super tame uninterested wandering wild wrong adorable alert average beautiful blonde bloody blushing bright clean clear cloudy colorful crowded cute dark drab distinct dull elegant fancy filthy glamorous gleaming graceful grotesque homely light misty motionless muddy plain poised quaint shiny smoggy sparkling spotless stormy strange ugly unsightly unusual bad better beautiful big black blue bright clumsy crazy dizzy dull fat frail friendly funny great green gigantic gorgeous grumpy handsome happy horrible itchy jittery jolly kind long lazy magnificent magenta many mighty mushy nasty new nice nosy nutty nutritious odd orange ordinary pretty precious prickly purple quaint quiet quick quickest rainy rare ratty red roasted robust round sad scary scrawny short silly stingy strange striped spotty tart tall tame tan tender testy tricky tough ugly ugliest vast watery wasteful wide-eyed wonderful yellow yummy zany )
15
17
 
16
18
  @@nouns = %w(aardvark able Abyssinian accelerator accordion account accountant achieve acknowledgment acoustic acrylic act action active activity actor actress adapter addition address adjustment advantage advertisement advice Afghanistan Africa aftermath afternoon aftershave afterthought age agenda agreement air airbus airmail airplane airport airship alarm albatross alcohol algebra Algeria alibi alley alligator alloy almanac alphabet alto aluminium aluminum ambulance America American amount amusement anatomy anethesiologist anger angle Angora animal anime ankle answer ant Antarctica anteater Anthony anthropology apartment apology apparatus apparel appeal appendix apple appliance apply approval April Aquarius arch archaeology archeology archer architecture area Argentina argument Aries arithmetic arm armadillo armchair armed Armenian army arrow art ash ashtray Asia asparagus asphalt asterisk astronomy athlete ATM atom atomic attack attempt attention attic attraction August aunt Australia Australian author authority authorization avenue baboon baby back backbone bacon badge badger bag bagel bagpipe bail bait baker bakery balance Balinese ball balloon bamboo banana band bandana Bangladesh banjo bank bankbook banker bar Barbara barber barge baritone barometer base baseball basement basin basket basketball bass bassoon bat bath bathroom bathtub battery battle bay beach bead beam bean bear beard beast beat beautician beauty beaver bed bedroom bee beech beef beer beet beetle beggar beginner begonia behavior Belgian belief believe bell belt bench Bengal beret berry bestseller Betty bibliography bicycle bike bill billboard biology biplane birch bird birth birthday bit bite black bladder blade blanket blinker blizzard block blood blouse blow blowgun blue board boat bobcat body bomb bomber bone bongos bonsai book bookcase booklet boot border botany bottle bottom boundary bow bowling box boy bra brace bracket brain brake branch brand brandy brass Brazil bread break breakfast breath Brian brick bridge British broccoli brochure broker bronze brother brother-in-law brow brown brush bubble bucket budget buffer buffet bugle building bulb bull bulldozer bumper bun burglar Burma burn burst bus bush business butane butcher butter button buzzard cabbage cabinet cable cactus cafe cake calculator calculus calendar calf call camel camera camp Canada Canadian Cancer candle cannon canoe canvas cap capital cappelletti Capricorn captain caption car carbon card cardboard cardigan care carnation Carol carp carpenter carriage carrot cart cartoon case cast castanet cat catamaran caterpillar cathedral catsup cattle cauliflower cause caution cave C-clamp CD ceiling celery celeste cell cellar cello Celsius cement cemetery cent centimeter century ceramic cereal certification chain chair chalk chance change channel character chard Charles chauffeur check cheek cheese cheetah chef chemistry cheque cherry chess chest chick chicken chicory chief child children chill chimpanzee chin China Chinese chive chocolate chord Christmas Christopher chronometer church cicada cinema circle circulation cirrus citizenship city clam clarinet Claus clave clef clerk click client climb clipper cloakroom clock close closet cloth cloud cloudy clover club clutch coach coal coast coat cobweb cockroach cocktail cocoa cod coffee coil coin coke cold collar college collision Colombia colon colony color colt column columnist comb comfort comics comma command commission committee community company comparison competition competitor composer composition computer condition condor cone confirmation conga Congo conifer connection consonant continent control cook cooking copper copy copyright cord cork cormorant corn cornet correspondent cost cotton couch cougar cough country course court cousin cover cow cowbell crab crack cracker craftsman crate crawdad crayfish crayon cream creator creature credit creditor creek crib cricket crime criminal crocodile crocus croissant crook crop cross crow crowd crown crush cry cub Cuban cucumber cultivator cup cupboard curler currency current curtain curve cushion customer cut cuticle cycle cyclone cylinder cymbal dad daffodil dahlia daisy damage dance danger Daniel dash dashboard database date daughter David day dead deadline deal death Deborah debt debtor decade December decimal decision decrease dedication deer defense deficit degree delete delivery den denim dentist deodorant department deposit description desert design desire desk dessert destruction detail detective development dew diamond diaphragm dibble dictionary dietician difference digestion digger digital dill dime dimple dinghy dinner dinosaur diploma dipstick direction dirt disadvantage discovery discussion disease disgust dish distance distribution distributor diving division divorced dock doctor dog dogsled doll dollar dolphin domain Donald donkey Donna door Dorothy double doubt downtown dragon dragonfly drain drake drama draw drawbridge drawer dream dredger dress dresser dressing drill drink drive driver driving drizzle drop drug drum dry dryer duck duckling dugout dungeon dust eagle ear earth earthquake ease east edge edger editor editorial education Edward eel effect egg eggnog eggplant Egypt eight elbow element elephant Elizabeth ellipse emery employee employer encyclopedia end enemy energy engine engineer engineering English enquiry entrance environment epoch epoxy equinox equipment era error estimate ethernet Ethiopia euphonium Europe evening event examination example exchange exclamation exhaust ex-husband existence expansion experience expert explanation ex-wife eye eyebrow eyeliner face facilities fact factory Fahrenheit fairies fall family fan fang farm farmer fat father father-in-law faucet fear feast feather feature February fedelini feedback feeling feet felony female fender ferry ferryboat fiber fiberglass fibre fiction field fifth fight fighter file find fine finger fir fire fired fireman fireplace firewall fish fisherman flag flame flare flat flavor flax flesh flight flock flood floor flower flugelhorn flute fly foam fog fold font food foot football footnote force forecast forehead forest forgery fork form format fortnight foundation fountain fowl fox foxglove fragrance frame France freckle freeze freezer freighter French freon friction Friday friend frog front frost fruit fuel fur furniture galley gallon game gander garage garden garlic gas gasoline gate gateway gauge gazelle gear gearshift geese Gemini gender geography geology geometry George geranium German Germany Ghana ghost giraffe girdle girl gladiolus glass glider gliding glockenspiel glove glue goal goat gold goldfish golf gondola gong good-bye goose gore-tex gorilla gosling government governor grade grain gram granddaughter grandfather grandmother grandson grape graphic grass grasshopper gray grease great-grandfather great-grandmother Greece Greek green grenade grey grill grip ground group grouse growth guarantee Guatemalan guide guilty guitar gum gun gym gymnast hacksaw hail hair haircut half-brother half-sister halibut hall hallway hamburger hammer hamster hand handball handicap handle handsaw harbor hardboard hardcover hardhat hardware harmonica harmony harp hat hate hawk head headlight headline health hearing heart heat heaven hedge height Helen helicopter helium hell helmet help hemp hen heron herring hexagon hill Himalayan hip hippopotamus history hockey hoe hole holiday home honey hood hook hope horn horse hose hospital hot hour hourglass house hovercraft hub hubcap humidity humor hurricane hyacinth hydrant hydrofoil hydrogen hyena hygienic ice icebreaker icicle icon idea ikebana illegal imprisonment improvement impulse inch income increase index India Indonesia industry ink innocent input insect instruction instrument insulation insurance interactive interest Internet interviewer intestine invention inventory invoice Iran Iraq iris iron island Israel Italian Italy jacket jaguar jail jam James January Japan Japanese jar jasmine Jason jaw jeans jeep Jeff jelly jellyfish Jennifer jet jewel jogging John join joke Joseph journey judge judo juice July jumbo jump jumper June jury justice jute kale kamikaze kangaroo karate Karen kayak kendo Kenneth Kenya ketchup kettle kettledrum Kevin key keyboard keyboarding kick kilogram kilometer Kimberly kiss kitchen kite kitten kitty knee knickers knife knight knot knowledge kohlrabi Korean laborer lace ladybug lake lamb lamp lan land landmine language larch lasagna latency latex lathe laugh laundry Laura law lawyer layer lead leaf learning leather leek leg legal lemonade lentil Leo leopard letter lettuce level Libra library license lier lift light lightning lilac lily limit Linda line linen link lion lip lipstick liquid liquor Lisa list literature litter liver lizard llama loaf loan lobster lock locket locust look loss lotion love low lumber lunch lunchroom lung lute luttuce lycra lynx lyocell lyre lyric macaroni machine macrame magazine magic magician maid mail mailbox mailman makeup Malaysia male mall mallet man manager mandolin manicure Manx map maple maraca marble March Margaret margin Maria marimba mark Mark market married Mary mascara mask mass match math mattock May mayonnaise meal measure meat mechanic medicine meeting melody memory men menu mercury message metal meteorology meter methane Mexican Mexico mice Michael Michelle microwave middle mile milk milkshake millennium millimeter millisecond mimosa mind mine minibus mini-skirt minister mint minute mirror missile mist mistake mitten moat modem mole mom Monday money monkey month moon morning Morocco mosque mosquito mother mother-in-law motion motorboat motorcycle mountain mouse moustache mouth move multi-hop multimedia muscle museum music musician mustard Myanmar nail name Nancy napkin narcissus nation neck need needle neon Nepal nephew nerve nest net network news newsprint newsstand nic nickel niece Nigeria night nitrogen node noise noodle north North America North Korea Norwegian nose note notebook notify novel November number numeric nurse nut nylon oak oatmeal objective oboe observation occupation ocean ocelot octagon octave October octopus odometer offence offer office oil okra olive onion open opera operation ophthalmologist opinion option orange orchestra orchid order organ organisation organization ornament ostrich otter ounce output outrigger oval oven overcoat owl owner ox oxygen oyster packet page pail pain paint pair pajama Pakistan pamphlet pan pancake pancreas panda pansy panther panties pantry pants panty pantyhose paper paperback parade parallelogram parcel parent parentheses park parrot parsnip part particle partner partridge party passbook passenger passive pasta paste pastor pastry patch path patient patio Patricia Paul payment pea peace peak peanut pear pedestrian pediatrician peen peer-to-peer pelican pen penalty pencil pendulum pentagon peony pepper perch perfume period periodical peripheral permission Persian person Peru pest pet pharmacist pheasant Philippines philosophy phone physician piano piccolo pickle picture pie pig pigeon pike pillow pilot pimple pin pine ping pink pint pipe Pisces pizza place plain plane plant plantation plaster plasterboard plastic plate platinum play playground playroom pleasure plier plot plough plow plywood pocket poet point poison Poland police policeman polish politician pollution polo polyester pond popcorn poppy porch porcupine port porter position possibility postage postbox pot potato poultry pound powder power precipitation preface prepared pressure price priest print printer prison probation process processing produce product production professor profit promotion propane property prose prosecution protest protocol pruner psychiatrist psychology ptarmigan puffin pull puma pump pumpkin punch punishment puppy purchase purple purpose push PVC pyjama pyramid quail quality quart quarter quartz queen question quicksand quiet quill quilt quince quit quiver quotation rabbi rabbit racing radar radiator radio radish raft rail railway rain rainbow raincoat rainstorm rake ramie random range rat rate raven ravioli ray rayon reaction reading reason receipt recess record recorder rectangle red reduction refrigerator refund regret reindeer relation relatives religion relish reminder repair replace report representative request resolution respect responsibility rest restaurant result retailer revolve revolver reward rhinoceros rhythm rice Richard riddle rifle ring rise risk river riverbed road roadway roast Robert robin rock rod roll Romania Romanian Ronald roof room rooster root rose rotate route router rowboat rub rubber rugby rule run Russia Russian rutabaga Ruth sack Sagittarius sail sailboat sailor salad salary sale salesman salmon salt sampan samurai sand Sandra sandwich Santa Sarah sardine satin Saturday sauce Saudi Arabia sausage save saw saxophone scale scallion scanner scarecrow scarf scene scent schedule school science scissors scooter Scorpio scorpion scraper screw screwdriver sea seagull seal seaplane search seashore season seat second secretary secure security seed seeder segment select selection self semicircle semicolon sense sentence separated September servant server session sex shade shadow shake shallot shame shampoo shape share shark Sharon shears sheep sheet shelf shell shield shingle ship shirt shock shoe shoemaker shop shorts shoulder shovel show shrimp shrine Siamese Siberian side sideboard sidecar sidewalk sign signature silica silk silver sing singer single sink sister sister-in-law size skate skiing skill skin skirt sky slash slave sled sleep sleet slice slip slippers slope smash smell smile smoke snail snake sneeze snow snowboarding snowflake snowman snowplow snowstorm soap soccer society sociology sock soda sofa softball softdrink software soldier son song soprano sound soup sousaphone South Africa South America South Korea soy soybean space spade spaghetti Spain spandex spark sparrow spear specialist speedboat sphere Sphynx spider spinach spleen sponge spoon spot spring sprout spruce spy square squash squid squirrel stage staircase stamp star start starter state statement station statistic steam steel stem step step-aunt step-brother stepdaughter step-daughter step-father step-grandfather step-grandmother stepmother step-mother step-sister stepson step-son step-uncle Steven stew stick stitch stock stocking stomach stone stool stop stopwatch store storm story stove stranger straw stream street streetcar stretch string structure study sturgeon submarine substance subway success Sudan suede sugar suggestion suit summer sun Sunday sundial sunflower supermarket supply support surfboard surgeon surname surprise Susan sushi swallow swamp swan sweater sweatshirt sweatshop Swedish sweets swim swimming swing Swiss switch sword swordfish sycamore Syria syrup system table tachometer tadpole tail tailor Taiwan talk tank tanker Tanzania target taste Taurus tax taxi taxicab tea teacher teaching team technician teeth television teller temper temperature temple tempo tendency tennis tenor tent territory test text textbook texture Thailand theater theory thermometer thing thistle Thomas thought thread thrill throat throne thumb thunder thunderstorm Thursday ticket tie tiger tights tile timbales time timer timpani tin tip tire titanium title toad toast toe toilet tomato tomatoes tom-tom ton tongue tooth toothbrush toothpaste top tornado tortellini tortoise touch tower town toy tractor trade traffic trail train tramp transaction transmission transport trapezoid tray treatment tree trial triangle trick trigonometry trip trombone trouble trousers trout trowel truck trumpet trunk t-shirt tsunami tub tuba Tuesday tugboat tulip tuna tune Turkey Turkish turn turnip turnover turret turtle TV twig twilight twine twist typhoon tyvek Uganda Ukraine Ukrainian umbrella uncle underclothes underpants undershirt underwear unit United Kingdom unshielded utensil Uzbekistan vacation vacuum valley value van vase vault vegetable vegetarian veil vein velvet Venezuela Venezuelan verdict vermicelli verse vessel vest veterinarian vibraphone Vietnam view vinyl viola violet violin Virgo viscose vise vision visitor voice volcano volleyball voyage vulture waiter waitress wall wallaby walrus war warm wash washer wasp waste watch watchmaker water waterfall wave wax way wealth weapon weasel weather wedge Wednesday weeder week weight whale wheel whip whiskey whistle white wholesaler whorl wilderness William willow wind windchime window windscreen windshield wine wing winter wire wish withdrawal witness wolf woman women wood wool woolen word work workshop worm wound wrecker wren wrench wrinkles wrist writer xylophone yacht yam yard year yellow yew yogurt Yugoslavian zebra zinc zone zoology
17
19
  )
20
+
21
+
22
+
23
+ @@geany_filetypes_post = <<-HERE
24
+
25
+ # for embedded Python script (<script language="python">...</script>), Python styles from
26
+ # filetypes.python are used
27
+
28
+ [keywords]
29
+ html=a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em embed fieldset font form frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins isindex kbd label legend li link map menu meta noframes noscript object ol optgroup option p param pre q quality s samp script select small span strike strong style sub sup table tbody td textarea tfoot th thead title tr tt u ul var xmlns leftmargin topmargin abbr accept-charset accept accesskey action align alink alt archive axis background bgcolor border cellpadding cellspacing char charoff charset checked cite class classid clear codebase codetype color cols colspan compact content coords data datafld dataformatas datapagesize datasrc datetime declare defer dir disabled enctype face for frame frameborder selected headers height href hreflang hspace http-equiv id ismap label lang language link longdesc marginwidth marginheight maxlength media framespacing method multiple name nohref noresize noshade nowrap object onblur onchange onclick ondblclick onfocus onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseover onmouseout onmouseup onreset onselect onsubmit onunload profile prompt pluginspage readonly rel rev rows rowspan rules scheme scope scrolling shape size span src standby start style summary tabindex target text title type usemap valign value valuetype version vlink vspace width text password checkbox radio submit reset file hidden image public doctype xml xml:lang
30
+ javascript=abs abstract acos anchor asin atan atan2 big bold boolean break byte case catch ceil char charAt charCodeAt class concat const continue cos Date debugger default delete do double else enum escape eval exp export extends false final finally fixed float floor fontcolor fontsize for fromCharCode function goto if implements import in indexOf Infinity instanceof int interface isFinite isNaN italics join lastIndexOf length link log long Math max MAX_VALUE min MIN_VALUE NaN native NEGATIVE_INFINITY new null Number package parseFloat parseInt pop POSITIVE_INFINITY pow private protected public push random return reverse round shift short sin slice small sort splice split sqrt static strike string String sub substr substring sup super switch synchronized tan this throw throws toLowerCase toString toUpperCase transient true try typeof undefined unescape unshift valueOf var void volatile while with
31
+ vbscript=and as byref byval case call const continue dim do each else elseif end error exit false for function global goto if in loop me new next not nothing on optional or private public redim rem resume select set sub then to true type while with boolean byte currency date double integer long object single string type variant
32
+ python=and assert break class continue complex def del elif else except exec finally for from global if import in inherit is int lambda not or pass print raise return tuple try unicode while yield long float str list
33
+ php=abstract and array as bool boolean break case catch cfunction __class__ class clone const continue declare default die __dir__ directory do double echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exception exit extends false __file__ final float for foreach __function__ function goto global if implements include include_once int integer interface isset __line__ list __method__ namespace __namespace__ new null object old_function or parent php_user_filter print private protected public real require require_once resource return __sleep static stdclass string switch this throw true try unset use var __wakeup while xor
34
+ sgml=ELEMENT DOCTYPE ATTLIST ENTITY NOTATION
35
+
36
+
37
+ [settings]
38
+ # default extension used when saving files
39
+ #extension=xml
40
+
41
+ # the following characters are these which a "word" can contains, see documentation
42
+ #wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
43
+
44
+ # if only single comment char is supported like # in this file, leave comment_close blank
45
+ comment_open=<!--
46
+ comment_close=-->
47
+
48
+ # set to false if a comment character/string should start at column 0 of a line, true uses any
49
+ # indentation of the line, e.g. setting to true causes the following on pressing CTRL+d
50
+ #command_example();
51
+ # setting to false would generate this
52
+ # command_example();
53
+ # This setting works only for single line comments
54
+ comment_use_indent=true
55
+
56
+ # context action command (please see Geany's main documentation for details)
57
+ context_action_cmd=
58
+
59
+ [styling]
60
+ # foreground;background;bold;italic
61
+ HERE
62
+
63
+
64
+ @@mybanner= <<-hhh
65
+
66
+
67
+ hhh
68
+ # foreground;background;bold;italic
69
+
70
+ @@geany_tokens = %w{
71
+
72
+ html_default
73
+ html_tag
74
+ html_tagunknown
75
+ html_attribute
76
+ html_attributeunknown
77
+ html_number
78
+ html_doublestring
79
+ html_singlestring
80
+ html_other
81
+ html_comment
82
+ html_entity
83
+ html_tagend
84
+
85
+ html_xmlstart
86
+ html_xmlend
87
+ html_script
88
+ html_asp
89
+
90
+ html_aspat
91
+ html_cdata
92
+ html_question
93
+ html_value
94
+ html_xccomment
95
+
96
+ sgml_default
97
+ sgml_comment
98
+ sgml_special
99
+ sgml_command
100
+ sgml_doublestring
101
+ sgml_simplestring
102
+ sgml_1st_param
103
+ sgml_entity
104
+ sgml_block_default
105
+ sgml_1st_param_comment
106
+ sgml_error
107
+
108
+ php_default
109
+ php_simplestring
110
+ php_hstring
111
+ php_number
112
+ php_word
113
+ php_variable
114
+ php_comment
115
+ php_commentline
116
+ php_operator
117
+ php_hstring_variable
118
+ php_complex_variable
119
+
120
+ jscript_start
121
+ jscript_default
122
+ jscript_comment
123
+ jscript_commentline
124
+ jscript_commentdoc
125
+ jscript_number
126
+ jscript_word
127
+ jscript_keyword
128
+ jscript_doublestring
129
+ jscript_singlestring
130
+ jscript_symbols
131
+ jscript_stringeol
132
+ jscript_regex
133
+ }
134
+ #end
135
+
136
+ @@geany_ruby_tokens =%w{default commentline number string character word global symbol classname defname
137
+ operator identifier modulename backticks instancevar classvar heredelim worddemoted stdin stdout stderr
138
+ datasection regex here_q here_qq here_qx string_q string_qq string_qx string_qr string_qw upper_bound error
139
+ pod }
140
+
141
+
18
142
  end #class
19
143
  end #module
data/lib/rmthemegen.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Rmthemegen
2
2
  # Your code goes here...
3
- require "./rmthemegen/rmthemegen.rb"
3
+ require File.dirname(__FILE__)+"/rmthemegen/rmthemegen.rb"
4
4
  end
data/rmthemegen.gemspec CHANGED
@@ -4,7 +4,7 @@ require "rmthemegen/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rmthemegen"
7
- s.version = "0.0.2"
7
+ s.version = "0.0.3"
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["David Heitzman"]
10
10
  s.email = ["evolvemeans@gmail.com"]
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rmthemegen
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - David Heitzman
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-24 00:00:00 -05:00
13
+ date: 2011-04-30 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -29,9 +29,7 @@ files:
29
29
  - README
30
30
  - Rakefile
31
31
  - lib/rmthemegen.rb
32
- - lib/rmthemegen/junk/colortheme.rb
33
- - lib/rmthemegen/junk/convert_theme_to_rm.rb
34
- - lib/rmthemegen/junk/rm_color_keys.rb
32
+ - lib/rmthemegen/rgb_contrast_methods.rb
35
33
  - lib/rmthemegen/rmthemegen.rb
36
34
  - lib/rmthemegen/token_list.rb
37
35
  - lib/rmthemegen/version.rb
@@ -1,58 +0,0 @@
1
- #colorTheme
2
-
3
-
4
- module ColorTheme
5
-
6
- class ColorTheme
7
- attr_accessor :docset, :elemset
8
-
9
- def initialize
10
- self.docset = DocSettings.new
11
- self.elemset = ElementSetting.new
12
- end
13
-
14
- # this will read all the textmate-formatted color files and grab all the
15
- # tokens out of them.
16
- def getTMtokens
17
- end
18
-
19
- # this will read all the RubyMine-formatted color files and grab all the
20
- # tokens out of them.
21
- def getRMtokens
22
- end
23
-
24
- def readTMfile
25
- end
26
-
27
- def readRMfile
28
- end
29
-
30
- end #class ColorTheme
31
-
32
- #a representation of a token for TextMate style theme
33
- class TMtoken
34
- end
35
-
36
- #a representation of a token for RubyMine style theme
37
- class RMtoken
38
- end
39
-
40
- class AbstractTheme
41
- attr_accessor :name
42
- end
43
-
44
- class DocSettings
45
- def initialize
46
- end
47
- end
48
-
49
- class ElementSetting
50
- def initialize
51
- end
52
- end
53
-
54
-
55
- end
56
-
57
- ct = ColorTheme::ColorTheme.new
58
-
@@ -1,115 +0,0 @@
1
- #! /usr/bin/ruby
2
-
3
- # this script should take as input a file in XML format for a color theme
4
- # in textmate format, and produce a file that is compatible with rubymine
5
- # By David Heitzman April 2011
6
-
7
- require 'xmlsimple'
8
- require './colortheme.rb'
9
-
10
- puts "# this script should take as input a file in XML format for a color theme"
11
-
12
-
13
- inf = []
14
-
15
- inf = Dir["stellar.xml"]
16
-
17
- inf.each do |f|
18
- filw = File.new(f)
19
- if File.exists? filw then
20
- puts f.to_s + " exists"
21
- end
22
- end
23
-
24
- entityattributekeys = Hash.new
25
-
26
-
27
- inf.each do |f|
28
- if File.exists? f then
29
- xml=XmlSimple.xml_in(f)
30
-
31
- puts "The whole XML file as a hash/array "
32
- puts xml.inspect
33
- xml["attributes"][0]["option"].each do |a|
34
- # puts a["name"].to_s#+" => "+a["value"].inspect
35
- #puts a["name"]+" --> "+a["value"]
36
- end
37
- end
38
- end
39
- =begin
40
-
41
- ##### GRAB the theme's name, author
42
- themename = xml["dict"][0]["string"][1]
43
- themeauth = xml["dict"][0]["string"][0]
44
- puts "themename, themeauth #{themename}, #{themeauth}"
45
-
46
- sett = xml["dict"][0]["array"][0]["dict"]
47
-
48
- #### Grab theme's global document settings and put in sym - keyed hash
49
- docsettings = Hash.new
50
- docsettingkeys = sett[0]["dict"][0]["key"]
51
- docsettingvals = sett[0]["dict"][0]["string"]
52
-
53
- docsettingkeys.each_index do |k|
54
- docsettings[docsettingkeys[k].to_sym]=docsettingvals[k]
55
- end
56
-
57
- puts
58
- # puts "main document settings: "+ docsettings.inspect
59
- puts
60
-
61
-
62
- ## grab the entities' attributes - Pretty name, scope name,
63
- ## fg color, bg color, italic, bold, underline
64
-
65
-
66
- textattribs = sett.drop(1)
67
- puts "text attributes for: "+f
68
- textattribs.each do |a |
69
- puts a["string"][1].inspect
70
- entityattributekeys[ a["string"][0] ] = a["string"][1]
71
- end
72
- end
73
-
74
- end
75
-
76
- puts
77
- puts
78
- puts
79
-
80
- puts "all entity attribute keys found: "
81
- puts
82
- entityattributekeys.each_key do |i|
83
- #puts i.inspect
84
-
85
- #puts i.to_s+" => "+entityattributekeys[i]
86
-
87
- end
88
-
89
- =begin
90
- inf = "stellar.xml"
91
- f = File.open(inf)
92
- outf = File.new("xmlhash_out","w+")
93
- puts "stellar.xml"
94
- xml= XmlSimple.xml_in(f, "keeproot" => true)
95
- puts xml.inspect
96
-
97
- outf.printf(XmlSimple.xml_out(xml, "keeproot" => true))
98
- outf.close
99
-
100
- newtheme = xml
101
- puts "CharlesBusch"
102
- puts newtheme.inspect
103
-
104
- newthemexmlfile = File.new("CharlesBusch","w+")
105
- puts newtheme["scheme"][0]["name"] = "CharlesBusch"
106
-
107
- #do all the things of making a theme
108
-
109
- #save file
110
- newthemexmlfile.printf( XmlSimple.xml_out(newtheme,{:keeproot=>true, :xmldeclaration => true }) )
111
-
112
- rootoptions = ["LINE_SPACING","EDITOR_FONT_SIZE","EDITOR_FONT_NAME" ]
113
-
114
-
115
- =end
@@ -1,229 +0,0 @@
1
-
2
- @element_keys = %w{
3
- ABSTRACT_CLASS_NAME_ATTRIBUTES
4
- ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES
5
- ANNOTATION_NAME_ATTRIBUTES
6
- ATTR_INTERNAL_CALL_ID
7
- BAD_CHARACTER
8
- BREAKPOINT_ATTRIBUTES
9
- CLASS_NAME_ATTRIBUTES
10
- CONSOLE_BLUE_OUTPUT
11
- CONSOLE_CYAN_OUTPUT
12
- CONSOLE_ERROR_OUTPUT
13
- CONSOLE_GRAY_OUTPUT
14
- CONSOLE_GREEN_OUTPUT
15
- CONSOLE_MAGENTA_OUTPUT
16
- CONSOLE_NORMAL_OUTPUT
17
- CONSOLE_OUTPUT
18
- CONSOLE_RED_OUTPUT
19
- CONSOLE_SYSTEM_OUTPUT
20
- CONSOLE_USER_INPUT
21
- CONSOLE_YELLOW_OUTPUT
22
- CSS.COMMENT
23
- CSS.FUNCTION
24
- CSS.IDENT
25
- CSS.KEYWORD
26
- CSS.NUMBER
27
- CSS.PROPERTY_NAME
28
- CSS.PROPERTY_VALUE
29
- CSS.STRING
30
- CSS.TAG_NAME
31
- CSS.URL
32
- CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES
33
- CUSTOM_KEYWORD1_ATTRIBUTES
34
- CUSTOM_KEYWORD2_ATTRIBUTES
35
- CUSTOM_KEYWORD3_ATTRIBUTES
36
- CUSTOM_KEYWORD4_ATTRIBUTES
37
- CUSTOM_LINE_COMMENT_ATTRIBUTES
38
- CUSTOM_MULTI_LINE_COMMENT_ATTRIBUTES
39
- CUSTOM_NUMBER_ATTRIBUTES
40
- CUSTOM_STRING_ATTRIBUTES
41
- CUSTOM_VALID_STRING_ESCAPE_ATTRIBUTES
42
- DEPRECATED_ATTRIBUTES
43
- DIFF_CONFLICT
44
- DIFF_DELETED
45
- DIFF_INSERTED
46
- DIFF_MODIFIED
47
- DUPLICATE_FROM_SERVER
48
- EL.BOUNDS
49
- EL.BRACKETS
50
- EL.IDENT
51
- EL.KEYWORD
52
- EL.NUMBER
53
- EL.PARENTHS
54
- EL.STRING
55
- EL_BACKGROUND
56
- ERRORS_ATTRIBUTES
57
- EXECUTIONPOINT_ATTRIBUTES
58
- FOLDED_TEXT_ATTRIBUTES
59
- FOLLOWED_HYPERLINK_ATTRIBUTES
60
- GENERIC_SERVER_ERROR_OR_WARNING
61
- HAML_CLASS
62
- HAML_COMMENT
63
- HAML_FILTER
64
- HAML_FILTER_CONTENT
65
- HAML_ID
66
- HAML_LINE_CONTINUATION
67
- HAML_RUBY_CODE
68
- HAML_RUBY_START
69
- HAML_TAG
70
- HAML_TEXT
71
- HAML_XHTML
72
- HTML_ATTRIBUTE_NAME
73
- HTML_ATTRIBUTE_VALUE
74
- HTML_COMMENT
75
- HTML_ENTITY_REFERENCE
76
- HTML_TAG
77
- HTML_TAG_NAME
78
- HYPERLINK_ATTRIBUTES
79
- IDENTIFIER_UNDER_CARET_ATTRIBUTES
80
- INCLUDE_JAVA_CALL
81
- INFO_ATTRIBUTES
82
- INJECTED_LANGUAGE_FRAGMENT
83
- INSPECTION_MULTIPLE_RESOLVE_WARNING_ID
84
- INSTANCE_FIELD_ATTRIBUTES
85
- INTERFACE_NAME_ATTRIBUTES
86
- JAVA_DOC_COMMENT
87
- JAVA_DOC_MARKUP
88
- JAVA_INVALID_STRING_ESCAPE
89
- JAVA_KEYWORD
90
- JAVA_NUMBER
91
- JAVA_STRING
92
- JAVA_VALID_STRING_ESCAPE
93
- JS.ATTRIBUTE
94
- JS.BADCHARACTER
95
- JS.BLOCK_COMMENT
96
- JS.BRACES
97
- JS.BRACKETS
98
- JS.COMMA
99
- JS.DOC_COMMENT
100
- JS.DOC_MARKUP
101
- JS.DOC_TAG
102
- JS.DOT
103
- JS.GLOBAL_FUNCTION
104
- JS.GLOBAL_VARIABLE
105
- JS.INSTANCE_MEMBER_FUNCTION
106
- JS.INSTANCE_MEMBER_VARIABLE
107
- JS.INVALID_STRING_ESCAPE
108
- JS.KEYWORD
109
- JS.LINE_COMMENT
110
- JS.LOCAL_VARIABLE
111
- JS.NUMBER
112
- JS.OPERATION_SIGN
113
- JS.PARAMETER
114
- JS.PARENTHS
115
- JS.REGEXP
116
- JS.SEMICOLON
117
- JS.STATIC_MEMBER_FUNCTION
118
- JS.STATIC_MEMBER_VARIABLE
119
- JS.STRING
120
- JS.VALID_STRING_ESCAPE
121
- JSP_ATTRIBUTE_NAME
122
- JSP_ATTRIBUTE_VALUE
123
- JSP_DIRECTIVE_BACKGROUND
124
- JSP_DIRECTIVE_NAME
125
- JSP_SCRIPTING_BACKGROUND
126
- LESS_VARIABLE
127
- MATCHED_BRACE_ATTRIBUTES
128
- NOT_USED_ELEMENT_ATTRIBUTES
129
- PROPERTIES.INVALID_STRING_ESCAPE
130
- PROPERTIES.KEY
131
- PROPERTIES.VALID_STRING_ESCAPE
132
- PROPERTIES.VALUE
133
- REGEXP.BRACES
134
- REGEXP.BRACKETS
135
- REGEXP.ESC_CHARACTER
136
- REGEXP.META
137
- REGEXP.PARENTHS
138
- REQUIRE_GEM_CALL
139
- RHTML_COMMENT_ID
140
- RHTML_EXPRESSION_END_ID
141
- RHTML_EXPRESSION_START_ID
142
- RHTML_OMIT_NEW_LINE_ID
143
- RHTML_SCRIPTING_BACKGROUND_ID
144
- RHTML_SCRIPTLET_END_ID
145
- RHTML_SCRIPTLET_START_ID
146
- RUBY_ATTR_ACCESSOR_CALL
147
- RUBY_ATTR_READER_CALL
148
- RUBY_ATTR_WRITER_CALL
149
- RUBY_BACK_REF
150
- RUBY_BAD_CHARACTER
151
- RUBY_BRACKETS
152
- RUBY_COMMA
153
- RUBY_COMMENT
154
- RUBY_CONSTANT
155
- RUBY_CONSTANT_DEF_ID
156
- RUBY_CVAR
157
- RUBY_ESCAPE_SEQUENCE
158
- RUBY_EXPR_IN_STRING
159
- RUBY_GVAR
160
- RUBY_HASH_ASSOC
161
- RUBY_HEREDOC_CONTENT
162
- RUBY_HEREDOC_ID
163
- RUBY_IDENTIFIER
164
- RUBY_IMPORT_CALL
165
- RUBY_INVALID_ESCAPE_SEQUENCE
166
- RUBY_IVAR
167
- RUBY_KEYWORD
168
- RUBY_LINE_CONTINUATION
169
- RUBY_LOCAL_VAR_ID
170
- RUBY_METHOD_NAME
171
- RUBY_NTH_REF
172
- RUBY_NUMBER
173
- RUBY_OPERATION_SIGN
174
- RUBY_PARAMDEF_CALL
175
- RUBY_PARAMETER_ID
176
- RUBY_PRIVATE_CALL
177
- RUBY_PROTECTED_CALL
178
- RUBY_PUBLIC_CALL
179
- RUBY_REGEXP
180
- RUBY_REQUIRE_ARG_CALL
181
- RUBY_REQUIRE_CALL
182
- RUBY_SEMICOLON
183
- RUBY_SPECIFIC_CALL
184
- RUBY_STRING
185
- RUBY_SYMBOL
186
- RUBY_WORDS
187
- SASS_ATTRIBUTE
188
- SASS_COMMENT
189
- SASS_CONSTANT
190
- SASS_DIRECTIVE
191
- SASS_MIXIN
192
- SASS_NUMBER
193
- SASS_RULE
194
- SASS_STRING
195
- SCOPE_KEY_All
196
- SCOPE_KEY_Non-Project Files
197
- SCOPE_KEY_Problems
198
- SCOPE_KEY_Production
199
- SCOPE_KEY_Project Files
200
- SCOPE_KEY_Tests
201
- SEARCH_RESULT_ATTRIBUTES
202
- STATIC_FIELD_ATTRIBUTES
203
- TEMPLATE_VARIABLE_ATTRIBUTES
204
- TEXT
205
- TEXT_SEARCH_RESULT_ATTRIBUTES
206
- TODO_DEFAULT_ATTRIBUTES
207
- TYPO
208
- WARNING_ATTRIBUTES
209
- WRITE_IDENTIFIER_UNDER_CARET_ATTRIBUTES
210
- WRITE_SEARCH_RESULT_ATTRIBUTES
211
- WRONG_REFERENCES_ATTRIBUTES
212
- XML_ATTRIBUTE_NAME
213
- XML_ATTRIBUTE_VALUE
214
- XML_COMMENT
215
- XML_ENTITY_REFERENCE
216
- XML_PROLOGUE
217
- XML_TAG
218
- XML_TAG_DATA
219
- XML_TAG_NAME
220
- YAML_COMMENT
221
- YAML_SCALAR_DSTRING
222
- YAML_SCALAR_KEY
223
- YAML_SCALAR_LIST
224
- YAML_SCALAR_STRING
225
- YAML_SCALAR_VALUE
226
- YAML_SCALAR_VALUE4
227
- YAML_SIGN
228
- YAML_TEXT
229
- }