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 library services.src.correction.assist; | 5 library services.src.correction.assist; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 10 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
(...skipping 1754 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1765 } | 1765 } |
1766 String newExprSrc = utils.getNodeText(newExpr); | 1766 String newExprSrc = utils.getNodeText(newExpr); |
1767 SourceBuilder sb = new SourceBuilder(file, newExpr.offset); | 1767 SourceBuilder sb = new SourceBuilder(file, newExpr.offset); |
1768 sb.append('new '); | 1768 sb.append('new '); |
1769 sb.startPosition('WIDGET'); | 1769 sb.startPosition('WIDGET'); |
1770 sb.append('widget'); | 1770 sb.append('widget'); |
1771 sb.endPosition(); | 1771 sb.endPosition(); |
1772 sb.append('('); | 1772 sb.append('('); |
1773 if (newExprSrc.contains(eol)) { | 1773 if (newExprSrc.contains(eol)) { |
1774 int newlineIdx = newExprSrc.lastIndexOf(eol); | 1774 int newlineIdx = newExprSrc.lastIndexOf(eol); |
1775 if (newlineIdx == newExprSrc.length - 1) { | 1775 int eolLen = eol.length; |
1776 newlineIdx -= 1; | 1776 if (newlineIdx == newExprSrc.length - eolLen) { |
| 1777 newlineIdx -= eolLen; |
1777 } | 1778 } |
1778 String indentOld = utils.getLinePrefix(newExpr.offset + 1 + newlineIdx); | 1779 String indentOld = |
| 1780 utils.getLinePrefix(newExpr.offset + eolLen + newlineIdx); |
1779 String indentNew = '$indentOld${utils.getIndent(1)}'; | 1781 String indentNew = '$indentOld${utils.getIndent(1)}'; |
1780 sb.append(eol); | 1782 sb.append(eol); |
1781 sb.append(indentNew); | 1783 sb.append(indentNew); |
1782 newExprSrc = newExprSrc.replaceAll( | 1784 newExprSrc = newExprSrc.replaceAll( |
1783 new RegExp("^$indentOld", multiLine: true), "$indentNew"); | 1785 new RegExp("^$indentOld", multiLine: true), "$indentNew"); |
1784 newExprSrc += ",$eol$indentOld"; | 1786 newExprSrc += ",$eol$indentOld"; |
1785 } | 1787 } |
1786 sb.startPosition('CHILD'); | 1788 sb.startPosition('CHILD'); |
1787 sb.append('child'); | 1789 sb.append('child'); |
1788 sb.endPosition(); | 1790 sb.endPosition(); |
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2549 class _SimpleIdentifierRecursiveAstVisitor extends RecursiveAstVisitor { | 2551 class _SimpleIdentifierRecursiveAstVisitor extends RecursiveAstVisitor { |
2550 final _SimpleIdentifierVisitor visitor; | 2552 final _SimpleIdentifierVisitor visitor; |
2551 | 2553 |
2552 _SimpleIdentifierRecursiveAstVisitor(this.visitor); | 2554 _SimpleIdentifierRecursiveAstVisitor(this.visitor); |
2553 | 2555 |
2554 @override | 2556 @override |
2555 visitSimpleIdentifier(SimpleIdentifier node) { | 2557 visitSimpleIdentifier(SimpleIdentifier node) { |
2556 visitor(node); | 2558 visitor(node); |
2557 } | 2559 } |
2558 } | 2560 } |
OLD | NEW |