lucid 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. data/.gitignore +30 -10
  2. data/.rspec +1 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +15 -0
  6. data/Gemfile +4 -2
  7. data/HISTORY.md +22 -0
  8. data/{LICENSE.txt → LICENSE} +6 -3
  9. data/README.md +22 -8
  10. data/Rakefile +2 -1
  11. data/bin/lucid +10 -10
  12. data/bin/lucid-gen +4 -0
  13. data/lib/autotest/discover.rb +11 -0
  14. data/lib/autotest/lucid.rb +6 -0
  15. data/lib/autotest/lucid_mixin.rb +135 -0
  16. data/lib/autotest/lucid_rails.rb +6 -0
  17. data/lib/autotest/lucid_rails_rspec.rb +6 -0
  18. data/lib/autotest/lucid_rails_rspec2.rb +6 -0
  19. data/lib/autotest/lucid_rspec.rb +6 -0
  20. data/lib/autotest/lucid_rspec2.rb +6 -0
  21. data/lib/lucid.rb +32 -1
  22. data/lib/lucid/ast.rb +20 -0
  23. data/lib/lucid/ast/background.rb +116 -0
  24. data/lib/lucid/ast/comment.rb +24 -0
  25. data/lib/lucid/ast/doc_string.rb +44 -0
  26. data/lib/lucid/ast/empty_background.rb +33 -0
  27. data/lib/lucid/ast/examples.rb +49 -0
  28. data/lib/lucid/ast/feature.rb +99 -0
  29. data/lib/lucid/ast/has_steps.rb +74 -0
  30. data/lib/lucid/ast/location.rb +41 -0
  31. data/lib/lucid/ast/multiline_argument.rb +31 -0
  32. data/lib/lucid/ast/names.rb +13 -0
  33. data/lib/lucid/ast/outline_table.rb +194 -0
  34. data/lib/lucid/ast/scenario.rb +103 -0
  35. data/lib/lucid/ast/scenario_outline.rb +144 -0
  36. data/lib/lucid/ast/specs.rb +38 -0
  37. data/lib/lucid/ast/step.rb +122 -0
  38. data/lib/lucid/ast/step_collection.rb +92 -0
  39. data/lib/lucid/ast/step_invocation.rb +196 -0
  40. data/lib/lucid/ast/table.rb +730 -0
  41. data/lib/lucid/ast/tags.rb +28 -0
  42. data/lib/lucid/ast/tdl_walker.rb +195 -0
  43. data/lib/lucid/cli/app.rb +78 -0
  44. data/lib/lucid/cli/configuration.rb +261 -0
  45. data/lib/lucid/cli/options.rb +463 -0
  46. data/lib/lucid/cli/profile.rb +101 -0
  47. data/lib/lucid/configuration.rb +53 -0
  48. data/lib/lucid/core_ext/disable_autorunners.rb +15 -0
  49. data/lib/lucid/core_ext/instance_exec.rb +70 -0
  50. data/lib/lucid/core_ext/proc.rb +36 -0
  51. data/lib/lucid/core_ext/string.rb +9 -0
  52. data/lib/lucid/errors.rb +40 -0
  53. data/lib/lucid/factory.rb +43 -0
  54. data/lib/lucid/formatter/ansicolor.rb +168 -0
  55. data/lib/lucid/formatter/console.rb +218 -0
  56. data/lib/lucid/formatter/debug.rb +33 -0
  57. data/lib/lucid/formatter/duration.rb +11 -0
  58. data/lib/lucid/formatter/gherkin_formatter_adapter.rb +94 -0
  59. data/lib/lucid/formatter/gpretty.rb +24 -0
  60. data/lib/lucid/formatter/html.rb +610 -0
  61. data/lib/lucid/formatter/interceptor.rb +66 -0
  62. data/lib/lucid/formatter/io.rb +31 -0
  63. data/lib/lucid/formatter/jquery-min.js +154 -0
  64. data/lib/lucid/formatter/json.rb +19 -0
  65. data/lib/lucid/formatter/json_pretty.rb +10 -0
  66. data/lib/lucid/formatter/junit.rb +177 -0
  67. data/lib/lucid/formatter/lucid.css +283 -0
  68. data/lib/lucid/formatter/lucid.sass +244 -0
  69. data/lib/lucid/formatter/ordered_xml_markup.rb +24 -0
  70. data/lib/lucid/formatter/progress.rb +95 -0
  71. data/lib/lucid/formatter/rerun.rb +91 -0
  72. data/lib/lucid/formatter/standard.rb +235 -0
  73. data/lib/lucid/formatter/stepdefs.rb +14 -0
  74. data/lib/lucid/formatter/steps.rb +49 -0
  75. data/lib/lucid/formatter/summary.rb +35 -0
  76. data/lib/lucid/formatter/unicode.rb +53 -0
  77. data/lib/lucid/formatter/usage.rb +132 -0
  78. data/lib/lucid/generator.rb +21 -0
  79. data/lib/lucid/generators/project.rb +70 -0
  80. data/lib/lucid/generators/project/Gemfile.tt +6 -0
  81. data/lib/lucid/generators/project/browser-symbiont.rb +24 -0
  82. data/lib/lucid/generators/project/driver-symbiont.rb +4 -0
  83. data/lib/lucid/generators/project/errors.rb +26 -0
  84. data/lib/lucid/generators/project/events-symbiont.rb +36 -0
  85. data/lib/lucid/generators/project/lucid-symbiont.yml +6 -0
  86. data/lib/lucid/interface.rb +8 -0
  87. data/lib/lucid/interface_methods.rb +125 -0
  88. data/lib/lucid/interface_rb/matcher.rb +108 -0
  89. data/lib/lucid/interface_rb/rb_hook.rb +18 -0
  90. data/lib/lucid/interface_rb/rb_language.rb +190 -0
  91. data/lib/lucid/interface_rb/rb_lucid.rb +119 -0
  92. data/lib/lucid/interface_rb/rb_step_definition.rb +122 -0
  93. data/lib/lucid/interface_rb/rb_transform.rb +57 -0
  94. data/lib/lucid/interface_rb/rb_world.rb +136 -0
  95. data/lib/lucid/interface_rb/regexp_argument_matcher.rb +21 -0
  96. data/lib/lucid/load_path.rb +13 -0
  97. data/lib/lucid/parser.rb +2 -126
  98. data/lib/lucid/platform.rb +27 -0
  99. data/lib/lucid/rspec/allow_doubles.rb +20 -0
  100. data/lib/lucid/rspec/disallow_options.rb +27 -0
  101. data/lib/lucid/runtime.rb +200 -0
  102. data/lib/lucid/runtime/facade.rb +60 -0
  103. data/lib/lucid/runtime/interface_io.rb +60 -0
  104. data/lib/lucid/runtime/orchestrator.rb +218 -0
  105. data/lib/lucid/runtime/results.rb +64 -0
  106. data/lib/lucid/runtime/specs_loader.rb +79 -0
  107. data/lib/lucid/spec_file.rb +112 -0
  108. data/lib/lucid/step_definition_light.rb +20 -0
  109. data/lib/lucid/step_definitions.rb +13 -0
  110. data/lib/lucid/step_match.rb +99 -0
  111. data/lib/lucid/tdl_builder.rb +282 -0
  112. data/lib/lucid/term/ansicolor.rb +118 -0
  113. data/lib/lucid/unit.rb +11 -0
  114. data/lib/lucid/wire_support/configuration.rb +38 -0
  115. data/lib/lucid/wire_support/connection.rb +61 -0
  116. data/lib/lucid/wire_support/request_handler.rb +32 -0
  117. data/lib/lucid/wire_support/wire_exception.rb +32 -0
  118. data/lib/lucid/wire_support/wire_language.rb +54 -0
  119. data/lib/lucid/wire_support/wire_packet.rb +34 -0
  120. data/lib/lucid/wire_support/wire_protocol.rb +43 -0
  121. data/lib/lucid/wire_support/wire_protocol/requests.rb +125 -0
  122. data/lib/lucid/wire_support/wire_step_definition.rb +26 -0
  123. data/lucid.gemspec +25 -14
  124. metadata +220 -12
  125. data/lib/lucid/app.rb +0 -103
  126. data/lib/lucid/options.rb +0 -168
  127. data/lib/lucid/version.rb +0 -3
  128. data/lucid.yml +0 -8
@@ -0,0 +1,283 @@
1
+ body {
2
+ font-size: 0px;
3
+ color: white;
4
+ margin: 0px;
5
+ padding: 0px;
6
+ }
7
+
8
+ .lucid, td, th {
9
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
10
+ background: white;
11
+ color: black;
12
+ }
13
+ .lucid #lucid-header, td #lucid-header, th #lucid-header {
14
+ background: #65c400;
15
+ color: white;
16
+ height: 6em;
17
+ }
18
+ .lucid #lucid-header #expand-collapse p, td #lucid-header #expand-collapse p, th #lucid-header #expand-collapse p {
19
+ float: right;
20
+ margin: 0 0 0 10px;
21
+ }
22
+ .lucid .scenario h3, td .scenario h3, th .scenario h3, .background h3 {
23
+ font-size: 11px;
24
+ padding: 3px;
25
+ margin: 0;
26
+ background: #65c400;
27
+ color: white;
28
+ font-weight: bold;
29
+ }
30
+
31
+ .background h3 {
32
+ font-size: 1.2em;
33
+ background: #666;
34
+ }
35
+
36
+ .lucid h1, td h1, th h1 {
37
+ margin: 0px 10px 0px 10px;
38
+ padding: 10px;
39
+ font-family: "Lucida Grande", Helvetica, sans-serif;
40
+ font-size: 2em;
41
+ position: absolute;
42
+ }
43
+ .lucid h4, td h4, th h4 {
44
+ margin-bottom: 2px;
45
+ }
46
+ .lucid div.feature, td div.feature, th div.feature {
47
+ padding: 2px;
48
+ margin: 0px 10px 5px 10px;
49
+ }
50
+ .lucid div.examples, td div.examples, th div.examples {
51
+ padding: 0em 0em 0em 1em;
52
+ }
53
+ .lucid .stats, td .stats, th .stats {
54
+ margin: 2em;
55
+ }
56
+ .lucid .summary ul.features li, td .summary ul.features li, th .summary ul.features li {
57
+ display: inline;
58
+ }
59
+ .lucid .step_name, td .step_name, th .step_name {
60
+ float: left;
61
+ }
62
+ .lucid .step_file, td .step_file, th .step_file {
63
+ text-align: right;
64
+ color: #999999;
65
+ }
66
+ .lucid .step_file a, td .step_file a, th .step_file a {
67
+ color: #999999;
68
+ }
69
+ .lucid .scenario_file, td .scenario_file, th .scenario_file {
70
+ float: right;
71
+ color: #999999;
72
+ }
73
+ .lucid .tag, td .tag, th .tag {
74
+ font-weight: bold;
75
+ color: #246ac1;
76
+ }
77
+ .lucid .backtrace, td .backtrace, th .backtrace {
78
+ margin-top: 0;
79
+ margin-bottom: 0;
80
+ margin-left: 1em;
81
+ color: black;
82
+ }
83
+ .lucid a, td a, th a {
84
+ text-decoration: none;
85
+ color: #be5c00;
86
+ }
87
+ .lucid a:hover, td a:hover, th a:hover {
88
+ text-decoration: underline;
89
+ }
90
+ .lucid a:visited, td a:visited, th a:visited {
91
+ font-weight: normal;
92
+ }
93
+ .lucid a div.examples, td a div.examples, th a div.examples {
94
+ margin: 5px 0px 5px 15px;
95
+ color: black;
96
+ }
97
+ .lucid .outline table, td .outline table, th .outline table {
98
+ margin: 0px 0px 5px 10px;
99
+ }
100
+ .lucid table, td table, th table {
101
+ border-collapse: collapse;
102
+ }
103
+ .lucid table td, td table td, th table td {
104
+ padding: 3px 3px 3px 5px;
105
+ }
106
+ .lucid table td.failed, .lucid table td.passed, .lucid table td.skipped, .lucid table td.pending, .lucid table td.undefined, td table td.failed, td table td.passed, td table td.skipped, td table td.pending, td table td.undefined, th table td.failed, th table td.passed, th table td.skipped, th table td.pending, th table td.undefined {
107
+ padding-left: 18px;
108
+ padding-right: 10px;
109
+ }
110
+ .lucid table td.failed, td table td.failed, th table td.failed {
111
+ border-left: 5px solid #c20000;
112
+ border-bottom: 1px solid #c20000;
113
+ background: #fffbd3;
114
+ color: #c20000;
115
+ }
116
+ .lucid table td.passed, td table td.passed, th table td.passed {
117
+ border-left: 5px solid #65c400;
118
+ border-bottom: 1px solid #65c400;
119
+ background: #dbffb4;
120
+ color: #3d7700;
121
+ }
122
+ .lucid table td.skipped, td table td.skipped, th table td.skipped {
123
+ border-left: 5px solid aqua;
124
+ border-bottom: 1px solid aqua;
125
+ background: #e0ffff;
126
+ color: #001111;
127
+ }
128
+ .lucid table td.pending, td table td.pending, th table td.pending {
129
+ border-left: 5px solid #faf834;
130
+ border-bottom: 1px solid #faf834;
131
+ background: #fcfb98;
132
+ color: #131313;
133
+ }
134
+ .lucid table td.undefined, td table td.undefined, th table td.undefined {
135
+ border-left: 5px solid #faf834;
136
+ border-bottom: 1px solid #faf834;
137
+ background: #fcfb98;
138
+ color: #131313;
139
+ }
140
+ .lucid table td.message, td table td.message, th table td.message {
141
+ border-left: 5px solid aqua;
142
+ border-bottom: 1px solid aqua;
143
+ background: #e0ffff;
144
+ color: #001111;
145
+ }
146
+ .lucid ol, td ol, th ol {
147
+ list-style: none;
148
+ margin: 0px;
149
+ padding: 0px;
150
+ }
151
+ .lucid ol li.step, td ol li.step, th ol li.step {
152
+ padding: 3px 3px 3px 18px;
153
+ margin: 5px 0px 5px 5px;
154
+ }
155
+ .lucid ol li, td ol li, th ol li {
156
+ margin: 0em 0em 0em 1em;
157
+ padding: 0em 0em 0em 0.2em;
158
+ }
159
+ .lucid ol li span.param, td ol li span.param, th ol li span.param {
160
+ font-weight: bold;
161
+ }
162
+ .lucid ol li.failed, td ol li.failed, th ol li.failed {
163
+ border-left: 5px solid #c20000;
164
+ border-bottom: 1px solid #c20000;
165
+ background: #fffbd3;
166
+ color: #c20000;
167
+ }
168
+ .lucid ol li.passed, td ol li.passed, th ol li.passed {
169
+ border-left: 5px solid #65c400;
170
+ border-bottom: 1px solid #65c400;
171
+ background: #dbffb4;
172
+ color: #3d7700;
173
+ }
174
+ .lucid ol li.skipped, td ol li.skipped, th ol li.skipped {
175
+ border-left: 5px solid aqua;
176
+ border-bottom: 1px solid aqua;
177
+ background: #e0ffff;
178
+ color: #001111;
179
+ }
180
+ .lucid ol li.pending, td ol li.pending, th ol li.pending {
181
+ border-left: 5px solid #faf834;
182
+ border-bottom: 1px solid #faf834;
183
+ background: #fcfb98;
184
+ color: #131313;
185
+ }
186
+ .lucid ol li.undefined, td ol li.undefined, th ol li.undefined {
187
+ border-left: 5px solid #faf834;
188
+ border-bottom: 1px solid #faf834;
189
+ background: #fcfb98;
190
+ color: #131313;
191
+ }
192
+ .lucid ol li.message, td ol li.message, th ol li.message {
193
+ border-left: 5px solid aqua;
194
+ border-bottom: 1px solid aqua;
195
+ background: #e0ffff;
196
+ color: #001111;
197
+ margin-left: 10px;
198
+ }
199
+ .lucid #summary, td #summary, th #summary {
200
+ margin: 0px;
201
+ padding: 5px 10px;
202
+ text-align: right;
203
+ top: 0px;
204
+ right: 0px;
205
+ float: right;
206
+ }
207
+ .lucid #summary p, td #summary p, th #summary p {
208
+ margin: 0 0 0 2px;
209
+ }
210
+ .lucid #summary #totals, td #summary #totals, th #summary #totals {
211
+ font-size: 1.2em;
212
+ }
213
+
214
+ .ruby {
215
+ font-size: 12px;
216
+ font-family: monospace;
217
+ color: white;
218
+ background: black;
219
+ padding: 0.1em 0 0.2em 0;
220
+ }
221
+ .ruby .keyword {
222
+ color: #ff6600;
223
+ }
224
+ .ruby .constant {
225
+ color: #339999;
226
+ }
227
+ .ruby .attribute {
228
+ color: white;
229
+ }
230
+ .ruby .global {
231
+ color: white;
232
+ }
233
+ .ruby .module {
234
+ color: white;
235
+ }
236
+ .ruby .class {
237
+ color: white;
238
+ }
239
+ .ruby .string {
240
+ color: #66ff00;
241
+ }
242
+ .ruby .ident {
243
+ color: white;
244
+ }
245
+ .ruby .method {
246
+ color: #ffcc00;
247
+ }
248
+ .ruby .number {
249
+ color: white;
250
+ }
251
+ .ruby .char {
252
+ color: white;
253
+ }
254
+ .ruby .comment {
255
+ color: #9933cc;
256
+ }
257
+ .ruby .symbol {
258
+ color: white;
259
+ }
260
+ .ruby .regex {
261
+ color: #44b4cc;
262
+ }
263
+ .ruby .punct {
264
+ color: white;
265
+ }
266
+ .ruby .escape {
267
+ color: white;
268
+ }
269
+ .ruby .interp {
270
+ color: white;
271
+ }
272
+ .ruby .expr {
273
+ color: white;
274
+ }
275
+ .ruby .offending {
276
+ background: #333333;
277
+ }
278
+ .ruby .linenum {
279
+ width: 75px;
280
+ padding: 0.1em 1em 0.2em 0;
281
+ color: black;
282
+ background: #fffbd3;
283
+ }
@@ -0,0 +1,244 @@
1
+ $step_left: 5px solid
2
+ $step_bottom: 1px solid
3
+
4
+ $failed: #fffbd3
5
+ $failed_border: #c20000
6
+ $failed_text: #c20000
7
+
8
+ $passed: #dbffb4
9
+ $passed_border: #65c400
10
+ $passed_text: #3d7700
11
+
12
+ $skipped: #e0ffff
13
+ $skipped_border: aqua
14
+ $skipped_text: #001111
15
+
16
+ $pending: #fcfb98
17
+ $pending_border: #faf834
18
+ $pending_text: #131313
19
+
20
+ $undefined: #fcfb98
21
+ $undefined_border: #faf834
22
+ $undefined_text: #131313
23
+
24
+ $message: #e0ffff
25
+ $message_border: aqua
26
+ $message_text: #001111
27
+
28
+ body
29
+ font-size: 0px
30
+ color: white
31
+ margin: 0px
32
+ padding: 0px
33
+
34
+ .lucid,td,th
35
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif
36
+ background: white
37
+ color: black
38
+ #lucid-header
39
+ background: #65c400
40
+ color: white
41
+ height: 6em
42
+ #expand-collapse
43
+ p
44
+ float: right
45
+ margin: 0 0 0 10px
46
+ .scenario
47
+ h3
48
+ font-size: 11px
49
+ padding: 3px
50
+ margin: 0
51
+ background: #65c400
52
+ color: white
53
+ font-weight: bold
54
+ h1
55
+ margin: 0px 10px 0px 10px
56
+ padding: 10px
57
+ font-family: "Lucida Grande", Helvetica, sans-serif
58
+ font-size: 2em
59
+ position: absolute
60
+ h4
61
+ margin-bottom: 2px
62
+ div.feature
63
+ padding: 2px
64
+ margin: 0px 10px 5px 10px
65
+ div.examples
66
+ padding: 0em 0em 0em 1em
67
+ .stats
68
+ margin: 2em
69
+ .summary
70
+ ul.features
71
+ li
72
+ display: inline
73
+ .step_name
74
+ float: left
75
+ .step_file
76
+ text-align: right
77
+ color: #999999
78
+ a
79
+ color: #999999
80
+ .scenario_file
81
+ float: right
82
+ color: #999999
83
+ .tag
84
+ font-weight: bold
85
+ color: #246ac1
86
+ .backtrace
87
+ margin-top: 0
88
+ margin-bottom: 0
89
+ margin-left: 1em
90
+ color: black
91
+ a
92
+ text-decoration: none
93
+ color: #be5c00
94
+ &:hover
95
+ text-decoration: underline
96
+ &:visited
97
+ font-weight: normal
98
+ div.examples
99
+ margin: 5px 0px 5px 15px
100
+ color: black
101
+ .outline
102
+ table
103
+ margin: 0px 0px 5px 10px
104
+ table
105
+ border-collapse: collapse
106
+ td
107
+ padding: 3px 3px 3px 5px
108
+ td.failed, td.passed, td.skipped, td.pending, td.undefined
109
+ padding-left: 18px
110
+ padding-right: 10px
111
+ td.failed
112
+ border-left: $step_left $failed_border
113
+ border-bottom: $step_bottom $failed_border
114
+ background: $failed
115
+ color: $failed_text
116
+ td.passed
117
+ border-left: $step_left $passed_border
118
+ border-bottom: $step_bottom $passed_border
119
+ background: $passed
120
+ color: $passed_text
121
+ td.skipped
122
+ border-left: $step_left $skipped_border
123
+ border-bottom: $step_bottom $skipped_border
124
+ background: $skipped
125
+ color: $skipped_text
126
+ td.pending
127
+ border-left: $step_left $pending_border
128
+ border-bottom: $step_bottom $pending_border
129
+ background: $pending
130
+ color: $pending_text
131
+ td.undefined
132
+ border-left: $step_left $undefined_border
133
+ border-bottom: $step_bottom $undefined_border
134
+ background: $undefined
135
+ color: $undefined_text
136
+ td.message
137
+ border-left: $step_left $message_border
138
+ border-bottom: $step_bottom $message_border
139
+ background: $message
140
+ color: $message_text
141
+ ol
142
+ list-style: none
143
+ margin: 0px
144
+ padding: 0px
145
+ li.step
146
+ padding: 3px 3px 3px 18px
147
+ margin: 5px 0px 5px 5px
148
+ li
149
+ margin: 0em 0em 0em 1em
150
+ padding: 0em 0em 0em 0.2em
151
+ span.param
152
+ font-weight: bold
153
+ li.failed
154
+ border-left: $step_left $failed_border
155
+ border-bottom: $step_bottom $failed_border
156
+ background: $failed
157
+ color: $failed_text
158
+ li.passed
159
+ border-left: $step_left $passed_border
160
+ border-bottom: $step_bottom $passed_border
161
+ background: $passed
162
+ color: $passed_text
163
+ li.skipped
164
+ border-left: $step_left $skipped_border
165
+ border-bottom: $step_bottom $skipped_border
166
+ background: $skipped
167
+ color: $skipped_text
168
+ li.pending
169
+ border-left: $step_left $pending_border
170
+ border-bottom: $step_bottom $pending_border
171
+ background: $pending
172
+ color: $pending_text
173
+ li.undefined
174
+ border-left: $step_left $undefined_border
175
+ border-bottom: $step_bottom $undefined_border
176
+ background: $undefined
177
+ color: $undefined_text
178
+ li.message
179
+ border-left: $step_left $message_border
180
+ border-bottom: $step_bottom $message_border
181
+ background: $message
182
+ color: $message_text
183
+ margin-left: 10px
184
+ #summary
185
+ margin: 0px
186
+ padding: 5px 10px
187
+ text-align: right
188
+ top: 0px
189
+ right: 0px
190
+ float: right
191
+ p
192
+ margin: 0 0 0 2px
193
+ #totals
194
+ font-size: 1.2em
195
+
196
+ .ruby
197
+ font-size: 12px
198
+ font-family: monospace
199
+ color: white
200
+ background: black
201
+ padding: 0.1em 0 0.2em 0
202
+ .keyword
203
+ color: #ff6600
204
+ .constant
205
+ color: #339999
206
+ .attribute
207
+ color: white
208
+ .global
209
+ color: white
210
+ .module
211
+ color: white
212
+ .class
213
+ color: white
214
+ .string
215
+ color: #66ff00
216
+ .ident
217
+ color: white
218
+ .method
219
+ color: #ffcc00
220
+ .number
221
+ color: white
222
+ .char
223
+ color: white
224
+ .comment
225
+ color: #9933cc
226
+ .symbol
227
+ color: white
228
+ .regex
229
+ color: #44b4cc
230
+ .punct
231
+ color: white
232
+ .escape
233
+ color: white
234
+ .interp
235
+ color: white
236
+ .expr
237
+ color: white
238
+ .offending
239
+ background: #333333
240
+ .linenum
241
+ width: 75px
242
+ padding: 0.1em 1em 0.2em 0
243
+ color: black
244
+ background: #fffbd3