| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 import 'dart:math'; | 5 import 'dart:math'; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/protocol_server.dart' | 7 import 'package:analysis_server/src/protocol_server.dart' |
| 8 show doSourceChange_addElementEdit; | 8 show doSourceChange_addElementEdit; |
| 9 import 'package:analysis_server/src/services/correction/strings.dart'; | 9 import 'package:analysis_server/src/services/correction/strings.dart'; |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| (...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 859 SourceRange getLinesRange(SourceRange sourceRange, | 859 SourceRange getLinesRange(SourceRange sourceRange, |
| 860 {bool skipLeadingEmptyLines: false}) { | 860 {bool skipLeadingEmptyLines: false}) { |
| 861 // start | 861 // start |
| 862 int startOffset = sourceRange.offset; | 862 int startOffset = sourceRange.offset; |
| 863 int startLineOffset = getLineContentStart(startOffset); | 863 int startLineOffset = getLineContentStart(startOffset); |
| 864 if (skipLeadingEmptyLines) { | 864 if (skipLeadingEmptyLines) { |
| 865 startLineOffset = skipEmptyLinesLeft(startLineOffset); | 865 startLineOffset = skipEmptyLinesLeft(startLineOffset); |
| 866 } | 866 } |
| 867 // end | 867 // end |
| 868 int endOffset = sourceRange.end; | 868 int endOffset = sourceRange.end; |
| 869 int afterEndLineOffset = getLineContentEnd(endOffset); | 869 int afterEndLineOffset = endOffset; |
| 870 int lineStart = unit.lineInfo.getOffsetOfLine( |
| 871 unit.lineInfo.getLocation(startLineOffset).lineNumber - 1); |
| 872 if (lineStart == startLineOffset) { |
| 873 // Only consume line ends after the end of the range if there is nothing |
| 874 // else on the line containing the beginning of the range. Otherwise this |
| 875 // will end up incorrectly merging two line. |
| 876 afterEndLineOffset = getLineContentEnd(endOffset); |
| 877 } |
| 870 // range | 878 // range |
| 871 return range.startOffsetEndOffset(startLineOffset, afterEndLineOffset); | 879 return range.startOffsetEndOffset(startLineOffset, afterEndLineOffset); |
| 872 } | 880 } |
| 873 | 881 |
| 874 /** | 882 /** |
| 875 * Returns a [SourceRange] that covers all the given [Statement]s. | 883 * Returns a [SourceRange] that covers all the given [Statement]s. |
| 876 */ | 884 */ |
| 877 SourceRange getLinesRangeStatements(List<Statement> statements) { | 885 SourceRange getLinesRangeStatements(List<Statement> statements) { |
| 878 return getLinesRange(range.nodes(statements)); | 886 return getLinesRange(range.nodes(statements)); |
| 879 } | 887 } |
| (...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1503 @override | 1511 @override |
| 1504 visitSimpleIdentifier(SimpleIdentifier node) { | 1512 visitSimpleIdentifier(SimpleIdentifier node) { |
| 1505 if (node.inDeclarationContext()) { | 1513 if (node.inDeclarationContext()) { |
| 1506 Element element = node.staticElement; | 1514 Element element = node.staticElement; |
| 1507 if (element is LocalElement) { | 1515 if (element is LocalElement) { |
| 1508 elements.add(element); | 1516 elements.add(element); |
| 1509 } | 1517 } |
| 1510 } | 1518 } |
| 1511 } | 1519 } |
| 1512 } | 1520 } |
| OLD | NEW |