| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library script_inset_element; | 5 library script_inset_element; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 import 'observatory_element.dart'; | 9 import 'observatory_element.dart'; |
| 10 import 'service_ref.dart'; | 10 import 'service_ref.dart'; |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 element.title = "Current execution"; | 114 element.title = "Current execution"; |
| 115 } | 115 } |
| 116 } | 116 } |
| 117 | 117 |
| 118 class BreakpointAnnotation extends Annotation { | 118 class BreakpointAnnotation extends Annotation { |
| 119 Breakpoint bpt; | 119 Breakpoint bpt; |
| 120 int priority = 1; | 120 int priority = 1; |
| 121 | 121 |
| 122 BreakpointAnnotation(this.bpt) { | 122 BreakpointAnnotation(this.bpt) { |
| 123 var script = bpt.location.script; | 123 var script = bpt.location.script; |
| 124 var pos = bpt.location.tokenPos; | 124 if (bpt.location.tokenPos != null) { |
| 125 line = script.tokenToLine(pos); | 125 var pos = bpt.location.tokenPos; |
| 126 columnStart = script.tokenToCol(pos) - 1; // tokenToCol is 1-origin. | 126 line = script.tokenToLine(pos); |
| 127 columnStart = script.tokenToCol(pos) - 1; // tokenToCol is 1-origin. |
| 128 } else { |
| 129 line = bpt.location.line; |
| 130 columnStart = bpt.location.column; |
| 131 if (columnStart == null) { |
| 132 columnStart = 0; |
| 133 } |
| 134 } |
| 127 var length = script.guessTokenLength(line, columnStart); | 135 var length = script.guessTokenLength(line, columnStart); |
| 128 if (length == null) { | 136 if (length == null) { |
| 129 length = 1; | 137 length = 1; |
| 130 } | 138 } |
| 131 columnStop = columnStart + length; | 139 columnStop = columnStart + length; |
| 132 } | 140 } |
| 133 | 141 |
| 134 void applyStyleTo(element) { | 142 void applyStyleTo(element) { |
| 135 if (element == null) { | 143 if (element == null) { |
| 136 return; // TODO(rmacnak): Handling overlapping annotations. | 144 return; // TODO(rmacnak): Handling overlapping annotations. |
| 137 } | 145 } |
| 138 var script = bpt.location.script; | 146 var script = bpt.location.script; |
| 139 var pos = bpt.location.tokenPos; | 147 var pos = bpt.location.tokenPos; |
| 140 int line = script.tokenToLine(pos); | 148 int line = script.tokenToLine(pos); |
| 141 int column = script.tokenToCol(pos); | 149 int column = script.tokenToCol(pos); |
| 142 element.classes.add("breakAnnotation"); | 150 if (bpt.resolved) { |
| 151 element.classes.add("resolvedBreakAnnotation"); |
| 152 } else { |
| 153 element.classes.add("unresolvedBreakAnnotation"); |
| 154 } |
| 143 element.title = "Breakpoint ${bpt.number} at ${line}:${column}"; | 155 element.title = "Breakpoint ${bpt.number} at ${line}:${column}"; |
| 144 } | 156 } |
| 145 } | 157 } |
| 146 | 158 |
| 147 class LibraryAnnotation extends Annotation { | 159 class LibraryAnnotation extends Annotation { |
| 148 Library target; | 160 Library target; |
| 149 String url; | 161 String url; |
| 150 int priority = 2; | 162 int priority = 2; |
| 151 | 163 |
| 152 LibraryAnnotation(this.target, this.url); | 164 LibraryAnnotation(this.target, this.url); |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 _updateTask.queue(); | 453 _updateTask.queue(); |
| 442 } | 454 } |
| 443 | 455 |
| 444 void variablesChanged(oldValue) { | 456 void variablesChanged(oldValue) { |
| 445 _updateTask.queue(); | 457 _updateTask.queue(); |
| 446 } | 458 } |
| 447 | 459 |
| 448 Element a(String text) => new AnchorElement()..text = text; | 460 Element a(String text) => new AnchorElement()..text = text; |
| 449 Element span(String text) => new SpanElement()..text = text; | 461 Element span(String text) => new SpanElement()..text = text; |
| 450 | 462 |
| 463 Element hitsCurrent(Element element) { |
| 464 element.classes.add('hitsCurrent'); |
| 465 element.title = ""; |
| 466 return element; |
| 467 } |
| 451 Element hitsUnknown(Element element) { | 468 Element hitsUnknown(Element element) { |
| 452 element.classes.add('hitsNone'); | 469 element.classes.add('hitsNone'); |
| 453 element.title = ""; | 470 element.title = ""; |
| 454 return element; | 471 return element; |
| 455 } | 472 } |
| 456 Element hitsNotExecuted(Element element) { | 473 Element hitsNotExecuted(Element element) { |
| 457 element.classes.add('hitsNotExecuted'); | 474 element.classes.add('hitsNotExecuted'); |
| 458 element.title = "Line did not execute"; | 475 element.title = "Line did not execute"; |
| 459 return element; | 476 return element; |
| 460 } | 477 } |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 923 }); | 940 }); |
| 924 update(); | 941 update(); |
| 925 return e; | 942 return e; |
| 926 } | 943 } |
| 927 | 944 |
| 928 Element lineNumberElement(ScriptLine line) { | 945 Element lineNumberElement(ScriptLine line) { |
| 929 var lineNumber = line == null ? "..." : line.line; | 946 var lineNumber = line == null ? "..." : line.line; |
| 930 var e = span("$nbsp$lineNumber$nbsp"); | 947 var e = span("$nbsp$lineNumber$nbsp"); |
| 931 e.classes.add('noCopy'); | 948 e.classes.add('noCopy'); |
| 932 | 949 |
| 933 if ((line == null) || (line.hits == null)) { | 950 if (lineNumber == _currentLine) { |
| 951 hitsCurrent(e); |
| 952 } else if ((line == null) || (line.hits == null)) { |
| 934 hitsUnknown(e); | 953 hitsUnknown(e); |
| 935 } else if (line.hits == 0) { | 954 } else if (line.hits == 0) { |
| 936 hitsNotExecuted(e); | 955 hitsNotExecuted(e); |
| 937 } else { | 956 } else { |
| 938 hitsExecuted(e); | 957 hitsExecuted(e); |
| 939 } | 958 } |
| 940 | 959 |
| 941 return e; | 960 return e; |
| 942 } | 961 } |
| 943 | 962 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 994 class SourceInsetElement extends PolymerElement { | 1013 class SourceInsetElement extends PolymerElement { |
| 995 SourceInsetElement.created() : super.created(); | 1014 SourceInsetElement.created() : super.created(); |
| 996 | 1015 |
| 997 @published SourceLocation location; | 1016 @published SourceLocation location; |
| 998 @published String height = null; | 1017 @published String height = null; |
| 999 @published int currentPos; | 1018 @published int currentPos; |
| 1000 @published bool inDebuggerContext = false; | 1019 @published bool inDebuggerContext = false; |
| 1001 @published ObservableList variables; | 1020 @published ObservableList variables; |
| 1002 } | 1021 } |
| 1003 | 1022 |
| OLD | NEW |