deep-cover-core 0.6.3.pre

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.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +4 -0
  3. data/.rspec_all +3 -0
  4. data/.rubocop.yml +1 -0
  5. data/Gemfile +11 -0
  6. data/deep_cover_core.gemspec +46 -0
  7. data/lib/deep-cover.rb +3 -0
  8. data/lib/deep_cover/analyser/base.rb +104 -0
  9. data/lib/deep_cover/analyser/branch.rb +41 -0
  10. data/lib/deep_cover/analyser/covered_code_source.rb +21 -0
  11. data/lib/deep_cover/analyser/function.rb +14 -0
  12. data/lib/deep_cover/analyser/node.rb +54 -0
  13. data/lib/deep_cover/analyser/per_char.rb +38 -0
  14. data/lib/deep_cover/analyser/per_line.rb +41 -0
  15. data/lib/deep_cover/analyser/ruby25_like_branch.rb +211 -0
  16. data/lib/deep_cover/analyser/statement.rb +33 -0
  17. data/lib/deep_cover/analyser/stats.rb +54 -0
  18. data/lib/deep_cover/analyser/subset.rb +27 -0
  19. data/lib/deep_cover/analyser.rb +23 -0
  20. data/lib/deep_cover/auto_run.rb +71 -0
  21. data/lib/deep_cover/autoload_tracker.rb +215 -0
  22. data/lib/deep_cover/backports.rb +22 -0
  23. data/lib/deep_cover/base.rb +117 -0
  24. data/lib/deep_cover/basics.rb +22 -0
  25. data/lib/deep_cover/builtin_takeover.rb +10 -0
  26. data/lib/deep_cover/config.rb +104 -0
  27. data/lib/deep_cover/config_setter.rb +33 -0
  28. data/lib/deep_cover/core_ext/autoload_overrides.rb +112 -0
  29. data/lib/deep_cover/core_ext/coverage_replacement.rb +61 -0
  30. data/lib/deep_cover/core_ext/exec_callbacks.rb +27 -0
  31. data/lib/deep_cover/core_ext/instruction_sequence_load_iseq.rb +32 -0
  32. data/lib/deep_cover/core_ext/load_overrides.rb +19 -0
  33. data/lib/deep_cover/core_ext/require_overrides.rb +28 -0
  34. data/lib/deep_cover/coverage/analysis.rb +42 -0
  35. data/lib/deep_cover/coverage/persistence.rb +84 -0
  36. data/lib/deep_cover/coverage.rb +125 -0
  37. data/lib/deep_cover/covered_code.rb +145 -0
  38. data/lib/deep_cover/custom_requirer.rb +187 -0
  39. data/lib/deep_cover/flag_comment_associator.rb +68 -0
  40. data/lib/deep_cover/load.rb +66 -0
  41. data/lib/deep_cover/memoize.rb +48 -0
  42. data/lib/deep_cover/module_override.rb +39 -0
  43. data/lib/deep_cover/node/arguments.rb +51 -0
  44. data/lib/deep_cover/node/assignments.rb +273 -0
  45. data/lib/deep_cover/node/base.rb +155 -0
  46. data/lib/deep_cover/node/begin.rb +27 -0
  47. data/lib/deep_cover/node/block.rb +61 -0
  48. data/lib/deep_cover/node/branch.rb +32 -0
  49. data/lib/deep_cover/node/case.rb +113 -0
  50. data/lib/deep_cover/node/collections.rb +31 -0
  51. data/lib/deep_cover/node/const.rb +12 -0
  52. data/lib/deep_cover/node/def.rb +40 -0
  53. data/lib/deep_cover/node/empty_body.rb +32 -0
  54. data/lib/deep_cover/node/exceptions.rb +79 -0
  55. data/lib/deep_cover/node/if.rb +73 -0
  56. data/lib/deep_cover/node/keywords.rb +86 -0
  57. data/lib/deep_cover/node/literals.rb +100 -0
  58. data/lib/deep_cover/node/loops.rb +74 -0
  59. data/lib/deep_cover/node/mixin/can_augment_children.rb +65 -0
  60. data/lib/deep_cover/node/mixin/check_completion.rb +18 -0
  61. data/lib/deep_cover/node/mixin/child_can_be_empty.rb +27 -0
  62. data/lib/deep_cover/node/mixin/executed_after_children.rb +15 -0
  63. data/lib/deep_cover/node/mixin/execution_location.rb +66 -0
  64. data/lib/deep_cover/node/mixin/filters.rb +47 -0
  65. data/lib/deep_cover/node/mixin/flow_accounting.rb +71 -0
  66. data/lib/deep_cover/node/mixin/has_child.rb +145 -0
  67. data/lib/deep_cover/node/mixin/has_child_handler.rb +75 -0
  68. data/lib/deep_cover/node/mixin/has_tracker.rb +46 -0
  69. data/lib/deep_cover/node/mixin/is_statement.rb +20 -0
  70. data/lib/deep_cover/node/mixin/rewriting.rb +35 -0
  71. data/lib/deep_cover/node/mixin/wrapper.rb +15 -0
  72. data/lib/deep_cover/node/module.rb +66 -0
  73. data/lib/deep_cover/node/root.rb +20 -0
  74. data/lib/deep_cover/node/send.rb +161 -0
  75. data/lib/deep_cover/node/short_circuit.rb +42 -0
  76. data/lib/deep_cover/node/splat.rb +15 -0
  77. data/lib/deep_cover/node/variables.rb +16 -0
  78. data/lib/deep_cover/node.rb +23 -0
  79. data/lib/deep_cover/parser_ext/range.rb +21 -0
  80. data/lib/deep_cover/problem_with_diagnostic.rb +63 -0
  81. data/lib/deep_cover/reporter/base.rb +68 -0
  82. data/lib/deep_cover/reporter/html/base.rb +14 -0
  83. data/lib/deep_cover/reporter/html/index.rb +59 -0
  84. data/lib/deep_cover/reporter/html/site.rb +68 -0
  85. data/lib/deep_cover/reporter/html/source.rb +136 -0
  86. data/lib/deep_cover/reporter/html/template/assets/32px.png +0 -0
  87. data/lib/deep_cover/reporter/html/template/assets/40px.png +0 -0
  88. data/lib/deep_cover/reporter/html/template/assets/deep_cover.css +291 -0
  89. data/lib/deep_cover/reporter/html/template/assets/deep_cover.css.sass +336 -0
  90. data/lib/deep_cover/reporter/html/template/assets/jquery-3.2.1.min.js +4 -0
  91. data/lib/deep_cover/reporter/html/template/assets/jquery-3.2.1.min.map +1 -0
  92. data/lib/deep_cover/reporter/html/template/assets/jstree.css +1108 -0
  93. data/lib/deep_cover/reporter/html/template/assets/jstree.js +8424 -0
  94. data/lib/deep_cover/reporter/html/template/assets/jstreetable.js +1069 -0
  95. data/lib/deep_cover/reporter/html/template/assets/throbber.gif +0 -0
  96. data/lib/deep_cover/reporter/html/template/index.html.erb +75 -0
  97. data/lib/deep_cover/reporter/html/template/source.html.erb +35 -0
  98. data/lib/deep_cover/reporter/html.rb +15 -0
  99. data/lib/deep_cover/reporter/istanbul.rb +184 -0
  100. data/lib/deep_cover/reporter/text.rb +58 -0
  101. data/lib/deep_cover/reporter/tree/util.rb +86 -0
  102. data/lib/deep_cover/reporter.rb +10 -0
  103. data/lib/deep_cover/tools/blank.rb +25 -0
  104. data/lib/deep_cover/tools/builtin_coverage.rb +55 -0
  105. data/lib/deep_cover/tools/camelize.rb +13 -0
  106. data/lib/deep_cover/tools/content_tag.rb +11 -0
  107. data/lib/deep_cover/tools/covered.rb +9 -0
  108. data/lib/deep_cover/tools/execute_sample.rb +34 -0
  109. data/lib/deep_cover/tools/format.rb +18 -0
  110. data/lib/deep_cover/tools/format_char_cover.rb +19 -0
  111. data/lib/deep_cover/tools/format_generated_code.rb +27 -0
  112. data/lib/deep_cover/tools/indent_string.rb +26 -0
  113. data/lib/deep_cover/tools/merge.rb +16 -0
  114. data/lib/deep_cover/tools/number_lines.rb +22 -0
  115. data/lib/deep_cover/tools/our_coverage.rb +11 -0
  116. data/lib/deep_cover/tools/profiling.rb +68 -0
  117. data/lib/deep_cover/tools/render_template.rb +13 -0
  118. data/lib/deep_cover/tools/require_relative_dir.rb +12 -0
  119. data/lib/deep_cover/tools/scan_match_datas.rb +10 -0
  120. data/lib/deep_cover/tools/silence_warnings.rb +18 -0
  121. data/lib/deep_cover/tools/slice.rb +9 -0
  122. data/lib/deep_cover/tools/strip_heredoc.rb +18 -0
  123. data/lib/deep_cover/tools/truncate_backtrace.rb +32 -0
  124. data/lib/deep_cover/tools.rb +22 -0
  125. data/lib/deep_cover/tracker_bucket.rb +50 -0
  126. data/lib/deep_cover/tracker_hits_per_path.rb +35 -0
  127. data/lib/deep_cover/tracker_storage.rb +76 -0
  128. data/lib/deep_cover/tracker_storage_per_path.rb +34 -0
  129. data/lib/deep_cover/version.rb +5 -0
  130. data/lib/deep_cover.rb +22 -0
  131. metadata +329 -0
@@ -0,0 +1,291 @@
1
+ /*** This generated from a sass file, do not modify ***/
2
+
3
+ /* constant entity.name.constant variable.other.constant variable.language support meta.property-name support.constant support.variable meta.module-reference markup.raw meta.diff.header meta.output */
4
+ /* variable.parameter.function storage.modifier.package storage.modifier.import storage.type.java variable.other */
5
+ /* string */
6
+ /* punctuation.definition.string source.regexp string.regexp.character-class */
7
+ /* string punctuation.section.embedded source */
8
+ /* string.regexp */
9
+ /* string.regexp constant.character.escape */
10
+ /* string.regexp source.ruby.embedded */
11
+ /* variable */
12
+ /* markup.heading */
13
+ /* markup.heading entity.name */
14
+ html, body, div, span, applet, object, iframe,
15
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
16
+ a, abbr, acronym, address, big, cite, code,
17
+ del, dfn, em, img, ins, kbd, q, s, samp,
18
+ small, strike, strong, sub, sup, tt, var,
19
+ b, u, i, center,
20
+ dl, dt, dd, ol, ul, li,
21
+ fieldset, form, label, legend,
22
+ table, caption, tbody, tfoot, thead, tr, th, td,
23
+ article, aside, canvas, details, embed,
24
+ figure, figcaption, footer, header, hgroup,
25
+ menu, nav, output, ruby, section, summary,
26
+ time, mark, audio, video {
27
+ margin: 0;
28
+ padding: 0;
29
+ border: 0;
30
+ font-size: 100%;
31
+ vertical-align: baseline;
32
+ }
33
+
34
+ article, aside, details, figcaption, figure,
35
+ footer, header, hgroup, menu, nav, section {
36
+ display: block;
37
+ }
38
+
39
+ body {
40
+ line-height: 1;
41
+ }
42
+
43
+ ol, ul {
44
+ list-style: none;
45
+ }
46
+
47
+ blockquote, q {
48
+ quotes: none;
49
+ }
50
+
51
+ blockquote:before, blockquote:after,
52
+ q:before, q:after {
53
+ content: "";
54
+ content: none;
55
+ }
56
+
57
+ table {
58
+ border-collapse: collapse;
59
+ border-spacing: 0;
60
+ }
61
+
62
+ * {
63
+ box-sizing: border-box;
64
+ border-collapse: collapse;
65
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
66
+ }
67
+
68
+ body.source .stats table, body.source main table.source, body.source main table.source .icon, body.source main table.source .kind-empty > .empty-icon, body.source main table.source .fork-icon {
69
+ border: 1px solid #e1e4e8;
70
+ }
71
+
72
+ .fork-branch > .fork-icon {
73
+ display: none;
74
+ }
75
+
76
+ body.source main table.source .fork-whole:hover .fork-branch > .fork-icon, body.source.show-forks .fork-branch > .fork-icon {
77
+ display: inherit;
78
+ }
79
+
80
+ main, .overlay .center, header .content {
81
+ width: 980px;
82
+ margin: 0 auto 0 auto;
83
+ }
84
+
85
+ main {
86
+ padding-top: 10px;
87
+ }
88
+
89
+ .overlay {
90
+ width: 100%;
91
+ position: fixed;
92
+ top: 0;
93
+ z-index: 9999;
94
+ }
95
+ .overlay .center {
96
+ position: relative;
97
+ }
98
+
99
+ header {
100
+ width: 100%;
101
+ position: relative;
102
+ top: 0;
103
+ background: #24292e;
104
+ color: rgba(255, 255, 255, 0.75);
105
+ padding-bottom: 4px;
106
+ }
107
+ header .content {
108
+ position: relative;
109
+ }
110
+ header .content .info {
111
+ padding: 4px 0 4px 0;
112
+ color: #88d483;
113
+ }
114
+ header .content .info .deep-cover {
115
+ transition: opacity 0.4s;
116
+ opacity: 0.3;
117
+ font-size: 24px;
118
+ font-weight: 900;
119
+ }
120
+ header .content .info .deep-cover .deep {
121
+ color: #74b770;
122
+ }
123
+ header .content .info .version {
124
+ transition: opacity 0.4s;
125
+ opacity: 0.1;
126
+ font-size: 12px;
127
+ font-weight: lighter;
128
+ }
129
+ header .content .info:hover .deep-cover {
130
+ opacity: 0.8;
131
+ }
132
+ header .content .info:hover .version {
133
+ opacity: 0.6;
134
+ }
135
+ body.source header .content .nav a {
136
+ color: white;
137
+ }
138
+
139
+ body.source .stats {
140
+ position: absolute;
141
+ background: white;
142
+ right: 20px;
143
+ top: 15px;
144
+ color: #032f62;
145
+ }
146
+ body.source .stats th, body.source .stats td {
147
+ padding: 6px;
148
+ border-right: 1px solid #e1e4e8;
149
+ }
150
+ body.source .stats td {
151
+ padding-top: 0;
152
+ }
153
+ body.source .stats .ignored {
154
+ opacity: 0.7;
155
+ }
156
+ body.source .stats .ignored::before {
157
+ content: "[+";
158
+ }
159
+ body.source .stats .ignored::after {
160
+ content: "]";
161
+ }
162
+ body.source main {
163
+ white-space: pre;
164
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
165
+ font-size: 12px;
166
+ line-height: 20px;
167
+ }
168
+ body.source main table.source {
169
+ width: 100%;
170
+ color: #6a737d;
171
+ }
172
+ body.source main table.source td {
173
+ vertical-align: top;
174
+ }
175
+ body.source main table.source .nb {
176
+ color: rgba(27, 31, 35, 0.3);
177
+ text-align: right;
178
+ width: 50px;
179
+ padding-right: 10px;
180
+ padding-left: 10px;
181
+ }
182
+ body.source main table.source .run {
183
+ color: #032f62;
184
+ }
185
+ body.source main table.source .not-run {
186
+ background-color: #ffb3b3;
187
+ padding: 2px 0;
188
+ }
189
+ body.source main table.source .ignored {
190
+ background-color: #d9d9d9;
191
+ padding: 2px 0;
192
+ }
193
+ body.source main table.source .kind-keyword, body.source main table.source .kind-else {
194
+ color: #a419ea;
195
+ }
196
+ body.source main table.source .node-def.kind-name {
197
+ color: #3e920c;
198
+ }
199
+ body.source main table.source .kind-expression, body.source main table.source .node-const {
200
+ color: #005cc5;
201
+ }
202
+ body.source main table.source .node-send {
203
+ color: #25712b;
204
+ }
205
+ body.source main table.source .node-str {
206
+ color: #032f62;
207
+ }
208
+ body.source main table.source .icon-not-run, body.source main table.source .kind-empty.not-run > .empty-icon, body.source main table.source .fork-with-uncovered-branches.fork-not-run > .fork-icon {
209
+ background-color: #ffb3b3;
210
+ border-color: red;
211
+ }
212
+ body.source main table.source .icon-ignored, body.source main table.source .fork-with-uncovered-branches.fork-ignored > .fork-icon {
213
+ background-color: #d9d9d9;
214
+ border-color: #a6a6a6;
215
+ }
216
+ body.source main table.source .icon, body.source main table.source .kind-empty > .empty-icon, body.source main table.source .fork-icon {
217
+ width: 2ex;
218
+ height: 1.5em;
219
+ line-height: 1.5em;
220
+ text-align: center;
221
+ background-color: white;
222
+ padding: 0;
223
+ }
224
+ body.source main table.source .kind-empty {
225
+ position: relative;
226
+ }
227
+ body.source main table.source .kind-empty > .empty-icon {
228
+ left: -2.5ex;
229
+ width: 2.3ex;
230
+ }
231
+ body.source main table.source .fork {
232
+ position: relative;
233
+ }
234
+ body.source main table.source .fork-whole > .fork-icon {
235
+ z-index: 1;
236
+ }
237
+ body.source main table.source .fork-whole:hover {
238
+ background: #e1e4e8;
239
+ padding: 2px 0;
240
+ }
241
+ body.source.show-forks .fork-whole {
242
+ background: #e1e4e8;
243
+ }
244
+ body.source.show-forks .stats .branch {
245
+ background: #74b770;
246
+ }
247
+
248
+ .tree .jstree-table-cell {
249
+ padding-left: 0;
250
+ }
251
+ .tree .jstree-table-cell span {
252
+ padding-right: 4px;
253
+ }
254
+ .tree .jstree-table-header-cell {
255
+ padding-right: 17px;
256
+ font-style: italic;
257
+ }
258
+ .tree .jstree-table-sort-icon {
259
+ right: 4px;
260
+ top: 8px;
261
+ left: inherit;
262
+ }
263
+ .tree .jstree-table-separator {
264
+ border: none;
265
+ }
266
+ .tree .jstree-table-column {
267
+ text-align: right;
268
+ border: gray 1px #ddd;
269
+ }
270
+ .tree .jstree-table-column-0 {
271
+ text-align: left;
272
+ }
273
+ .tree .percent-100 {
274
+ color: green;
275
+ }
276
+ .tree .percent-90 {
277
+ color: blue;
278
+ }
279
+ .tree .percent-80 {
280
+ color: brown;
281
+ }
282
+ .tree .percent-60, .tree .percent-70 {
283
+ color: orange;
284
+ }
285
+ .tree .percent-00, .tree .percent-10, .tree .percent-20, .tree .percent-30, .tree .percent-40, .tree .percent-50 {
286
+ color: red;
287
+ }
288
+
289
+ footer {
290
+ display: none;
291
+ }
@@ -0,0 +1,336 @@
1
+ // Adapted from GitHub's scheme https://raw.githubusercontent.com/primer/github-syntax-light/master/lib/github-light.css
2
+ $pl-c: #6a737d /* comment punctuation.definition.comment string.comment */
3
+
4
+ /* constant entity.name.constant variable.other.constant variable.language support meta.property-name support.constant support.variable meta.module-reference markup.raw meta.diff.header meta.output */
5
+ $pl-c1: #005cc5 /* string variable */
6
+
7
+ $pl-en: #6f42c1 /* entity.name */
8
+
9
+ /* variable.parameter.function storage.modifier.package storage.modifier.import storage.type.java variable.other */
10
+ $pl-s1: #24292e /* string source */
11
+
12
+
13
+ $pl-ent: #22863a /* entity.name.tag markup.quote */
14
+
15
+
16
+ $pl-k: #d73a49 /* keyword storage storage.type */
17
+ $pl-k: #a419ea /* override */
18
+
19
+ /* string */
20
+ /* punctuation.definition.string source.regexp string.regexp.character-class */
21
+ /* string punctuation.section.embedded source */
22
+ /* string.regexp */
23
+ /* string.regexp constant.character.escape */
24
+ /* string.regexp source.ruby.embedded */
25
+ $pl-s: #032f62 /* string.regexp string.regexp.arbitrary-repitition */
26
+
27
+ /* variable */
28
+ $pl-v: #e36209 /* sublimelinter.mark.warning */
29
+
30
+ $pl-bu: #b31d28 /* invalid.broken invalid.deprecated invalid.unimplemented message.error brackethighlighter.unmatched sublimelinter.mark.error */
31
+
32
+ $pl-ii: #fafbfc /* invalid.illegal */
33
+ $pl-ii-background: #b31d28
34
+
35
+ $pl-sr: #22863a /* string.regexp constant.character.escape */
36
+
37
+ $pl-ml: #735c0f /* markup.list */
38
+
39
+ /* markup.heading */
40
+ /* markup.heading entity.name */
41
+ $pl-mh: #005cc5 /* meta.separator */
42
+
43
+ $pl-mi2: #f6f8fa /* markup.ignored markup.untracked */
44
+ $pl-mi2-background: #005cc5
45
+
46
+
47
+ // http://meyerweb.com/eric/tools/css/reset/
48
+ // v2.0 | 20110126
49
+ // License: none (public domain)
50
+
51
+
52
+ html, body, div, span, applet, object, iframe,
53
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
54
+ a, abbr, acronym, address, big, cite, code,
55
+ del, dfn, em, img, ins, kbd, q, s, samp,
56
+ small, strike, strong, sub, sup, tt, var,
57
+ b, u, i, center,
58
+ dl, dt, dd, ol, ul, li,
59
+ fieldset, form, label, legend,
60
+ table, caption, tbody, tfoot, thead, tr, th, td,
61
+ article, aside, canvas, details, embed,
62
+ figure, figcaption, footer, header, hgroup,
63
+ menu, nav, output, ruby, section, summary,
64
+ time, mark, audio, video
65
+ margin: 0
66
+ padding: 0
67
+ border: 0
68
+ font-size: 100%
69
+ // font: inherit
70
+ vertical-align: baseline
71
+
72
+ // HTML5 display-role reset for older browsers
73
+ article, aside, details, figcaption, figure,
74
+ footer, header, hgroup, menu, nav, section
75
+ display: block
76
+
77
+ body
78
+ line-height: 1
79
+
80
+ ol, ul
81
+ list-style: none
82
+
83
+ blockquote, q
84
+ quotes: none
85
+
86
+ blockquote:before, blockquote:after,
87
+ q:before, q:after
88
+ content: ''
89
+ content: none
90
+
91
+ table
92
+ border-collapse: collapse
93
+ border-spacing: 0
94
+
95
+
96
+ // Global settings
97
+ *
98
+ box-sizing: border-box
99
+ border-collapse: collapse
100
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif
101
+
102
+ // *** DeepCover Source ***
103
+
104
+ $dark-green: #25712b
105
+ $light-green: #74b770
106
+ $light-gray: #e1e4e8
107
+
108
+ %light-border
109
+ border: 1px solid $light-gray
110
+
111
+ .fork-branch > .fork-icon
112
+ display: none
113
+ %show-fork-icon
114
+ .fork-branch > .fork-icon
115
+ display: inherit
116
+ %center
117
+ width: 980px
118
+ margin: 0 auto 0 auto
119
+
120
+ $toggled: $light-green
121
+ $not-run: hsl(hue(#f00), 100%, 85%)
122
+ $ignored: hsl(0, 0, 85%)
123
+
124
+ // *** Common template ***
125
+ main
126
+ @extend %center
127
+ padding-top: 10px
128
+ .overlay
129
+ width: 100%
130
+ position: fixed
131
+ top: 0
132
+ z-index: 9999
133
+ .center
134
+ position: relative
135
+ @extend %center
136
+
137
+ header
138
+ width: 100%
139
+ position: relative
140
+ top: 0
141
+ background: #24292e
142
+ color: rgba(255,255,255,0.75)
143
+ padding-bottom: 4px
144
+
145
+ .content
146
+ position: relative
147
+ @extend %center
148
+
149
+ .info
150
+ padding: 4px 0 4px 0
151
+ color: #88d483
152
+ .deep-cover
153
+ transition: opacity 0.4s
154
+ opacity: 0.3
155
+ font-size: 24px
156
+ font-weight: 900
157
+ .deep
158
+ color: #74b770
159
+ .version
160
+ transition: opacity 0.4s
161
+ opacity: 0.1
162
+ font-size: 12px
163
+ font-weight: lighter
164
+ &:hover
165
+ .deep-cover
166
+ opacity: 0.8
167
+ .version
168
+ opacity: 0.6
169
+
170
+ // *** DeepCover Source ***
171
+ body.source &
172
+ .nav
173
+ a
174
+ color: white
175
+ body.source
176
+ .stats
177
+ th, td
178
+ padding: 6px
179
+ border-right: 1px solid $light-gray
180
+ td
181
+ padding-top: 0
182
+ table
183
+ @extend %light-border
184
+ position: absolute
185
+ background: white
186
+ right: 20px
187
+ top: 15px
188
+ color: $pl-s
189
+ .ignored
190
+ opacity: 0.7
191
+ &::before
192
+ content: "[+"
193
+ &::after
194
+ content: "]"
195
+
196
+ main
197
+ white-space: pre
198
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace
199
+ font-size: 12px
200
+ line-height: 20px
201
+
202
+ table.source
203
+ @extend %light-border
204
+ width: 100%
205
+
206
+ td
207
+ vertical-align: top
208
+
209
+ .nb
210
+ color: rgba(27,31,35,0.3)
211
+ text-align: right
212
+ width: 50px
213
+ padding-right: 10px
214
+ padding-left: 10px
215
+ // * Color scheme *
216
+
217
+ // Default color, for unexecutable code
218
+ color: $pl-c
219
+
220
+ // Executed code
221
+ .run
222
+ color: $pl-s
223
+
224
+ .not-run
225
+ background-color: $not-run
226
+ padding: 2px 0
227
+
228
+ .ignored
229
+ background-color: $ignored
230
+ padding: 2px 0
231
+
232
+ .kind-keyword, .kind-else
233
+ color: $pl-k
234
+
235
+ .node-def.kind-name
236
+ color: #3e920c
237
+
238
+ // Literals:
239
+ .kind-expression, .node-const
240
+ color: $pl-c1
241
+
242
+ .node-send
243
+ color: $dark-green
244
+
245
+ .node-str
246
+ color: $pl-s
247
+
248
+ // Icons
249
+ .icon-not-run
250
+ background-color: $not-run
251
+ border-color: red
252
+ .icon-ignored
253
+ background-color: $ignored
254
+ border-color: darken($ignored, 20%)
255
+ .icon
256
+ width: 2ex
257
+ height: 1.5em
258
+ line-height: 1.5em
259
+ text-align: center
260
+ background-color: white
261
+ padding: 0
262
+ @extend %light-border
263
+
264
+ .kind-empty
265
+ position: relative
266
+ & > .empty-icon
267
+ @extend .icon
268
+ left: -2.5ex
269
+ width: 2.3ex
270
+ &.not-run > .empty-icon
271
+ @extend .icon-not-run
272
+
273
+ // Branches
274
+ .fork
275
+ position: relative
276
+ .fork-icon
277
+ @extend .icon
278
+ .fork-whole
279
+ & > .fork-icon
280
+ z-index: 1
281
+ &:hover
282
+ @extend %show-fork-icon
283
+ background: $light-gray
284
+ padding: 2px 0
285
+
286
+ .fork-with-uncovered-branches
287
+ &.fork-not-run > .fork-icon
288
+ @extend .icon-not-run
289
+ &.fork-ignored > .fork-icon
290
+ @extend .icon-ignored
291
+
292
+ &.show-forks
293
+ @extend %show-fork-icon
294
+ .fork-whole
295
+ background: $light-gray
296
+ .stats .branch
297
+ background: $toggled
298
+
299
+ // *** Index ***
300
+
301
+ .tree
302
+ // Overrides
303
+ .jstree-table-cell
304
+ padding-left: 0
305
+ span
306
+ padding-right: 4px
307
+ .jstree-table-header-cell
308
+ // Leave space for sort arrows:
309
+ padding-right: 17px
310
+ font-style: italic
311
+ .jstree-table-sort-icon
312
+ right: 4px
313
+ top: 8px
314
+ left: inherit
315
+ .jstree-table-separator
316
+ border: none
317
+
318
+ .jstree-table-column
319
+ text-align: right
320
+ border: gray 1px #ddd
321
+ .jstree-table-column-0
322
+ text-align: left
323
+
324
+ .percent-100
325
+ color: green
326
+ .percent-90
327
+ color: blue
328
+ .percent-80
329
+ color: brown
330
+ .percent-60, .percent-70
331
+ color: orange
332
+ .percent-00, .percent-10, .percent-20, .percent-30, .percent-40, .percent-50
333
+ color: red
334
+
335
+ footer
336
+ display: none