OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /// Helper for creating HTML visualization of the source map information | 5 /// Helper for creating HTML visualization of the source map information |
6 /// generated by a [SourceMapProcessor]. | 6 /// generated by a [SourceMapProcessor]. |
7 | 7 |
8 library sourcemap.html.helper; | 8 library sourcemap.html.helper; |
9 | 9 |
10 import 'dart:convert'; | 10 import 'dart:convert'; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 return sourceLocationIndexMap.length; | 102 return sourceLocationIndexMap.length; |
103 }); | 103 }); |
104 } | 104 } |
105 | 105 |
106 int getIndex(SourceLocation sourceLocation) { | 106 int getIndex(SourceLocation sourceLocation) { |
107 return sourceLocationIndexMap[sourceLocation]; | 107 return sourceLocationIndexMap[sourceLocation]; |
108 } | 108 } |
109 } | 109 } |
110 | 110 |
111 abstract class CssColorScheme { | 111 abstract class CssColorScheme { |
112 String singleLocationToCssColor(var id); | 112 String singleLocationToCssColor(int id); |
113 | 113 |
114 String multiLocationToCssColor(List ids); | 114 String multiLocationToCssColor(List<int> ids); |
115 | 115 |
116 bool get showLocationAsSpan; | 116 bool get showLocationAsSpan; |
117 } | 117 } |
118 | 118 |
119 class CustomColorScheme implements CssColorScheme { | 119 class CustomColorScheme implements CssColorScheme { |
120 final bool showLocationAsSpan; | 120 final bool showLocationAsSpan; |
121 final Function single; | 121 final Function single; |
122 final Function multi; | 122 final Function multi; |
123 | 123 |
124 CustomColorScheme( | 124 CustomColorScheme( |
125 {this.showLocationAsSpan: false, | 125 {this.showLocationAsSpan: false, |
126 String this.single(var id), | 126 String this.single(int id), |
127 String this.multi(List ids)}); | 127 String this.multi(List<int> ids)}); |
128 | 128 |
129 String singleLocationToCssColor(var id) => single != null ? single(id) : null; | 129 String singleLocationToCssColor(int id) => single != null ? single(id) : null; |
130 | 130 |
131 String multiLocationToCssColor(List ids) => multi != null ? multi(ids) : null; | 131 String multiLocationToCssColor(List<int> ids) => |
| 132 multi != null ? multi(ids) : null; |
132 } | 133 } |
133 | 134 |
134 class PatternCssColorScheme implements CssColorScheme { | 135 class PatternCssColorScheme implements CssColorScheme { |
135 const PatternCssColorScheme(); | 136 const PatternCssColorScheme(); |
136 | 137 |
137 bool get showLocationAsSpan => true; | 138 bool get showLocationAsSpan => true; |
138 | 139 |
139 String singleLocationToCssColor(int index) { | 140 String singleLocationToCssColor(int index) { |
140 return "background:${toPattern(index)};"; | 141 return "background:${toPattern(index)};"; |
141 } | 142 } |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 return convertAnnotatedCodeToHtml(text, annotations, | 219 return convertAnnotatedCodeToHtml(text, annotations, |
219 colorScheme: colorScheme, | 220 colorScheme: colorScheme, |
220 elementScheme: new HighlightLinkScheme(name), | 221 elementScheme: new HighlightLinkScheme(name), |
221 windowSize: 3); | 222 windowSize: 3); |
222 } | 223 } |
223 } | 224 } |
224 | 225 |
225 class ElementScheme { | 226 class ElementScheme { |
226 const ElementScheme(); | 227 const ElementScheme(); |
227 | 228 |
228 String getName(var id, Set ids) => null; | 229 String getName(int id, Set<int> ids) => null; |
229 String getHref(var id, Set ids) => null; | 230 String getHref(int id, Set<int> ids) => null; |
230 String onClick(var id, Set ids) => null; | 231 String onClick(int id, Set<int> ids) => null; |
231 String onMouseOver(var id, Set ids) => null; | 232 String onMouseOver(int id, Set<int> ids) => null; |
232 String onMouseOut(var id, Set ids) => null; | 233 String onMouseOut(int id, Set<int> ids) => null; |
233 } | 234 } |
234 | 235 |
235 class HighlightLinkScheme implements ElementScheme { | 236 class HighlightLinkScheme implements ElementScheme { |
236 final String name; | 237 final String name; |
237 | 238 |
238 HighlightLinkScheme(this.name); | 239 HighlightLinkScheme(this.name); |
239 | 240 |
240 @override | 241 @override |
241 String getName(int id, Set<int> indices) { | 242 String getName(int id, Set<int> indices) { |
242 return 'js$id'; | 243 return 'js$id'; |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 String dartCode = truncate(codePoint.dartCode, 50); | 619 String dartCode = truncate(codePoint.dartCode, 50); |
619 buffer.write('<td class="code">${dartCode}</td>'); | 620 buffer.write('<td class="code">${dartCode}</td>'); |
620 buffer.write('<td>${escape(codePoint.sourceLocation.shortText)}</td>'); | 621 buffer.write('<td>${escape(codePoint.sourceLocation.shortText)}</td>'); |
621 } | 622 } |
622 buffer.write('</tr>'); | 623 buffer.write('</tr>'); |
623 }); | 624 }); |
624 buffer.write('</table>'); | 625 buffer.write('</table>'); |
625 | 626 |
626 return buffer.toString(); | 627 return buffer.toString(); |
627 } | 628 } |
OLD | NEW |