| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 sourcemap.diff; | 5 library sourcemap.diff; |
| 6 | 6 |
| 7 import 'package:compiler/src/io/source_file.dart'; | 7 import 'package:compiler/src/io/source_file.dart'; |
| 8 | 8 |
| 9 import 'html_parts.dart'; | 9 import 'html_parts.dart'; |
| 10 import 'output_structure.dart'; | 10 import 'output_structure.dart'; |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 List<HtmlPart> codeLinesFromCodeSource(CodeSource codeSource) { | 533 List<HtmlPart> codeLinesFromCodeSource(CodeSource codeSource) { |
| 534 List<HtmlPart> lines = <HtmlPart>[]; | 534 List<HtmlPart> lines = <HtmlPart>[]; |
| 535 SourceFile sourceFile = sourceFileManager.getSourceFile(codeSource.uri); | 535 SourceFile sourceFile = sourceFileManager.getSourceFile(codeSource.uri); |
| 536 String elementName = codeSource.name; | 536 String elementName = codeSource.name; |
| 537 HtmlLine line = new HtmlLine(); | 537 HtmlLine line = new HtmlLine(); |
| 538 line.htmlParts.add(new ConstHtmlPart('<span class="comment">')); | 538 line.htmlParts.add(new ConstHtmlPart('<span class="comment">')); |
| 539 line.htmlParts.add(new HtmlText('${elementName}: ${sourceFile.filename}')); | 539 line.htmlParts.add(new HtmlText('${elementName}: ${sourceFile.filename}')); |
| 540 line.htmlParts.add(new ConstHtmlPart('</span>')); | 540 line.htmlParts.add(new ConstHtmlPart('</span>')); |
| 541 lines.add(line); | 541 lines.add(line); |
| 542 if (codeSource.begin != null) { | 542 if (codeSource.begin != null) { |
| 543 int startLine = sourceFile.getLine(codeSource.begin); | 543 int startLine = sourceFile.getLocation(codeSource.begin).line - 1; |
| 544 int endLine = sourceFile.getLine(codeSource.end) + 1; | 544 int endLine = sourceFile.getLocation(codeSource.end).line; |
| 545 for (CodeLine codeLine in convertAnnotatedCodeToCodeLines( | 545 for (CodeLine codeLine in convertAnnotatedCodeToCodeLines( |
| 546 sourceFile.slowText(), const <Annotation>[], | 546 sourceFile.slowText(), const <Annotation>[], |
| 547 startLine: startLine, endLine: endLine)) { | 547 startLine: startLine, endLine: endLine)) { |
| 548 codeLine.lineAnnotation = codeSource; | 548 codeLine.lineAnnotation = codeSource; |
| 549 lines.add(codeLine); | 549 lines.add(codeLine); |
| 550 } | 550 } |
| 551 } | 551 } |
| 552 return lines; | 552 return lines; |
| 553 } | 553 } |
| 554 | 554 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 585 startLine: interval.from, endLine: interval.to, uri: currentUri); | 585 startLine: interval.from, endLine: interval.to, uri: currentUri); |
| 586 if (codeSources != null) { | 586 if (codeSources != null) { |
| 587 CodeSource currentCodeSource; | 587 CodeSource currentCodeSource; |
| 588 Interval currentLineInterval; | 588 Interval currentLineInterval; |
| 589 for (CodeLine dartCodeLine in annotatedDartCodeLines) { | 589 for (CodeLine dartCodeLine in annotatedDartCodeLines) { |
| 590 if (currentCodeSource == null || | 590 if (currentCodeSource == null || |
| 591 !currentLineInterval.contains(dartCodeLine.lineNo)) { | 591 !currentLineInterval.contains(dartCodeLine.lineNo)) { |
| 592 currentCodeSource = null; | 592 currentCodeSource = null; |
| 593 for (CodeSource codeSource in codeSources) { | 593 for (CodeSource codeSource in codeSources) { |
| 594 Interval interval = new Interval( | 594 Interval interval = new Interval( |
| 595 sourceFile.getLine(codeSource.begin), | 595 sourceFile.getLocation(codeSource.begin).line - 1, |
| 596 sourceFile.getLine(codeSource.end) + 1); | 596 sourceFile.getLocation(codeSource.end).line); |
| 597 if (interval.contains(dartCodeLine.lineNo)) { | 597 if (interval.contains(dartCodeLine.lineNo)) { |
| 598 currentCodeSource = codeSource; | 598 currentCodeSource = codeSource; |
| 599 currentLineInterval = interval; | 599 currentLineInterval = interval; |
| 600 break; | 600 break; |
| 601 } | 601 } |
| 602 } | 602 } |
| 603 } | 603 } |
| 604 if (currentCodeSource != null) { | 604 if (currentCodeSource != null) { |
| 605 dartCodeLine.lineAnnotation = currentCodeSource; | 605 dartCodeLine.lineAnnotation = currentCodeSource; |
| 606 } | 606 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 632 codeLineInterval.clear(); | 632 codeLineInterval.clear(); |
| 633 codeLineInterval[codeLine] = interval; | 633 codeLineInterval[codeLine] = interval; |
| 634 } | 634 } |
| 635 | 635 |
| 636 for (CodeLine jsCodeLine in jsCodeLines) { | 636 for (CodeLine jsCodeLine in jsCodeLines) { |
| 637 for (Annotation annotation in jsCodeLine.annotations) { | 637 for (Annotation annotation in jsCodeLine.annotations) { |
| 638 CodeLineAnnotation codeLineAnnotation = annotation.data; | 638 CodeLineAnnotation codeLineAnnotation = annotation.data; |
| 639 | 639 |
| 640 for (CodeLocation location in codeLineAnnotation.codeLocations) { | 640 for (CodeLocation location in codeLineAnnotation.codeLocations) { |
| 641 SourceFile sourceFile = sourceFileManager.getSourceFile(location.uri); | 641 SourceFile sourceFile = sourceFileManager.getSourceFile(location.uri); |
| 642 int line = sourceFile.getLine(location.offset); | 642 int line = sourceFile.getLocation(location.offset).line - 1; |
| 643 if (currentUri != location.uri) { | 643 if (currentUri != location.uri) { |
| 644 restart(jsCodeLine, location, line); | 644 restart(jsCodeLine, location, line); |
| 645 } else if (interval.inWindow(line, windowSize: 2)) { | 645 } else if (interval.inWindow(line, windowSize: 2)) { |
| 646 interval = interval.include(line); | 646 interval = interval.include(line); |
| 647 codeLineInterval[jsCodeLine] = interval; | 647 codeLineInterval[jsCodeLine] = interval; |
| 648 } else { | 648 } else { |
| 649 restart(jsCodeLine, location, line); | 649 restart(jsCodeLine, location, line); |
| 650 } | 650 } |
| 651 | 651 |
| 652 annotations.add(new Annotation(codeLineAnnotation.annotationType, | 652 annotations.add(new Annotation(codeLineAnnotation.annotationType, |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 annotationType: AnnotationType.values[json['annotationType']], | 759 annotationType: AnnotationType.values[json['annotationType']], |
| 760 codeLocations: json['codeLocations'] | 760 codeLocations: json['codeLocations'] |
| 761 .map((j) => CodeLocation.fromJson(j, strategy)) | 761 .map((j) => CodeLocation.fromJson(j, strategy)) |
| 762 .toList(), | 762 .toList(), |
| 763 codeSources: | 763 codeSources: |
| 764 json['codeSources'].map((j) => CodeSource.fromJson(j)).toList(), | 764 json['codeSources'].map((j) => CodeSource.fromJson(j)).toList(), |
| 765 stepInfo: json['stepInfo'], | 765 stepInfo: json['stepInfo'], |
| 766 sourceMappingIndex: json['sourceMappingIndex']); | 766 sourceMappingIndex: json['sourceMappingIndex']); |
| 767 } | 767 } |
| 768 } | 768 } |
| OLD | NEW |