Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(942)

Unified Diff: pkg/analysis_server/lib/src/services/correction/assist_internal.dart

Issue 2869083002: Convert server to use RangeFactory (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/services/correction/assist_internal.dart
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index e75b7cb31b87af543a94a0ebe1fa95c95249695a..adfcbd6755a6725bc8b05c337f823bcfe22a3445 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -14,7 +14,6 @@ import 'package:analysis_server/src/services/correction/assist.dart';
import 'package:analysis_server/src/services/correction/flutter_util.dart';
import 'package:analysis_server/src/services/correction/name_suggestion.dart';
import 'package:analysis_server/src/services/correction/source_buffer.dart';
-import 'package:analysis_server/src/services/correction/source_range.dart';
import 'package:analysis_server/src/services/correction/statement_analyzer.dart';
import 'package:analysis_server/src/services/correction/util.dart';
import 'package:analysis_server/src/services/search/hierarchy.dart';
@@ -29,6 +28,7 @@ import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer_plugin/utilities/range_factory.dart';
import 'package:path/path.dart';
typedef _SimpleIdentifierVisitor(SimpleIdentifier node);
@@ -257,8 +257,7 @@ class AssistProcessor {
// add edit
Token keyword = declaredIdentifier.keyword;
if (keyword.keyword == Keyword.VAR) {
- SourceRange range = rangeToken(keyword);
- _addReplaceEdit(range, typeSource);
+ _addReplaceEdit(range.token(keyword), typeSource);
} else {
_addInsertEdit(declaredIdentifier.identifier.offset, '$typeSource ');
}
@@ -361,8 +360,7 @@ class AssistProcessor {
// add edit
Token keyword = declarationList.keyword;
if (keyword?.keyword == Keyword.VAR) {
- SourceRange range = rangeToken(keyword);
- _addReplaceEdit(range, typeSource);
+ _addReplaceEdit(range.token(keyword), typeSource);
} else {
_addInsertEdit(variable.offset, '$typeSource ');
}
@@ -549,8 +547,7 @@ class AssistProcessor {
_addInsertEdit,
_addRemoveEdit,
_addReplaceEdit,
- rangeStartLength,
- rangeNode);
+ range.node);
_addAssist(DartAssistKind.CONVERT_FLUTTER_CHILD, []);
}
@@ -614,7 +611,7 @@ class AssistProcessor {
code += ' = ' + _getNodeText(expression);
}
code += ';';
- _addReplaceEdit(rangeStartEnd(beginNodeToReplace, getter), code);
+ _addReplaceEdit(range.startEnd(beginNodeToReplace, getter), code);
_addAssist(DartAssistKind.CONVERT_INTO_FINAL_FIELD, []);
}
}
@@ -659,7 +656,7 @@ class AssistProcessor {
code += ' ' + _getNodeText(field.name);
code += ' => ' + _getNodeText(initializer);
code += ';';
- _addReplaceEdit(rangeStartEnd(fieldList.keyword, fieldDeclaration), code);
+ _addReplaceEdit(range.startEnd(fieldList.keyword, fieldDeclaration), code);
_addAssist(DartAssistKind.CONVERT_INTO_GETTER, []);
}
@@ -803,18 +800,18 @@ class AssistProcessor {
}
String fieldName = parameterInitializer.fieldName.name;
// replace parameter
- _addReplaceEdit(rangeNode(parameter), 'this.$fieldName');
+ _addReplaceEdit(range.node(parameter), 'this.$fieldName');
// remove initializer
int initializerIndex = initializers.indexOf(parameterInitializer);
if (initializers.length == 1) {
- _addRemoveEdit(rangeEndEnd(parameterList, parameterInitializer));
+ _addRemoveEdit(range.endEnd(parameterList, parameterInitializer));
} else {
if (initializerIndex == 0) {
ConstructorInitializer next = initializers[initializerIndex + 1];
- _addRemoveEdit(rangeStartStart(parameterInitializer, next));
+ _addRemoveEdit(range.startStart(parameterInitializer, next));
} else {
ConstructorInitializer prev = initializers[initializerIndex - 1];
- _addRemoveEdit(rangeEndEnd(prev, parameterInitializer));
+ _addRemoveEdit(range.endEnd(prev, parameterInitializer));
}
}
// add proposal
@@ -889,7 +886,7 @@ class AssistProcessor {
int firstBlockLine = utils.getLineContentEnd(body.leftBracket.end);
// add change
_addReplaceEdit(
- rangeStartEnd(forEachStatement, forEachStatement.rightParenthesis),
+ range.startEnd(forEachStatement, forEachStatement.rightParenthesis),
'for (int $indexName = 0; $indexName < $listName.length; $indexName++)');
_addInsertEdit(firstBlockLine,
'$prefix$indent$loopVariable = $listName[$indexName];$eol');
@@ -934,12 +931,12 @@ class AssistProcessor {
// strip !()
if (getExpressionParentPrecedence(prefExpression) >=
TokenClass.RELATIONAL_OPERATOR.precedence) {
- _addRemoveEdit(rangeToken(prefExpression.operator));
+ _addRemoveEdit(range.token(prefExpression.operator));
} else {
_addRemoveEdit(
- rangeStartEnd(prefExpression, parExpression.leftParenthesis));
+ range.startEnd(prefExpression, parExpression.leftParenthesis));
_addRemoveEdit(
- rangeStartEnd(parExpression.rightParenthesis, prefExpression));
+ range.startEnd(parExpression.rightParenthesis, prefExpression));
}
_addInsertEdit(isExpression.isOperator.end, '!');
// add proposal
@@ -983,12 +980,12 @@ class AssistProcessor {
// strip !()
if (getExpressionParentPrecedence(prefExpression) >=
TokenClass.RELATIONAL_OPERATOR.precedence) {
- _addRemoveEdit(rangeToken(prefExpression.operator));
+ _addRemoveEdit(range.token(prefExpression.operator));
} else {
_addRemoveEdit(
- rangeStartEnd(prefExpression, parExpression.leftParenthesis));
+ range.startEnd(prefExpression, parExpression.leftParenthesis));
_addRemoveEdit(
- rangeStartEnd(parExpression.rightParenthesis, prefExpression));
+ range.startEnd(parExpression.rightParenthesis, prefExpression));
}
_addInsertEdit(isExpression.isOperator.end, '!');
// add proposal
@@ -1046,8 +1043,9 @@ class AssistProcessor {
return;
}
// do replace
- _addRemoveEdit(rangeStartStart(prefixExpression, prefixExpression.operand));
- _addReplaceEdit(rangeNode(isEmptyIdentifier), 'isNotEmpty');
+ _addRemoveEdit(
+ range.startStart(prefixExpression, prefixExpression.operand));
+ _addReplaceEdit(range.node(isEmptyIdentifier), 'isNotEmpty');
// add proposal
_addAssist(DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, []);
}
@@ -1068,9 +1066,9 @@ class AssistProcessor {
String typeCode = utils.getTypeSource(type, librariesToImport);
// replace parameter
if (type.isDynamic) {
- _addReplaceEdit(rangeNode(parameter), name);
+ _addReplaceEdit(range.node(parameter), name);
} else {
- _addReplaceEdit(rangeNode(parameter), '$typeCode $name');
+ _addReplaceEdit(range.node(parameter), '$typeCode $name');
}
// add field initializer
List<ConstructorInitializer> initializers = constructor.initializers;
@@ -1129,7 +1127,7 @@ class AssistProcessor {
return;
}
// rename field
- _addReplaceEdit(rangeNode(nameNode), '_$name');
+ _addReplaceEdit(range.node(nameNode), '_$name');
// update references in constructors
ClassDeclaration classDeclaration = fieldDeclaration.parent;
for (ClassMember member in classDeclaration.members) {
@@ -1138,7 +1136,7 @@ class AssistProcessor {
ParameterElement parameterElement = parameter.element;
if (parameterElement is FieldFormalParameterElement &&
parameterElement.field == fieldElement) {
- _addReplaceEdit(rangeNode(parameter.identifier), '_$name');
+ _addReplaceEdit(range.node(parameter.identifier), '_$name');
}
}
}
@@ -1186,8 +1184,8 @@ class AssistProcessor {
binaryExpression = newBinaryExpression;
}
// exchange parts of "wide" expression parts
- SourceRange leftRange = rangeStartEnd(binaryExpression, leftOperand);
- SourceRange rightRange = rangeStartEnd(rightOperand, binaryExpression);
+ SourceRange leftRange = range.startEnd(binaryExpression, leftOperand);
+ SourceRange rightRange = range.startEnd(rightOperand, binaryExpression);
_addReplaceEdit(leftRange, _getRangeText(rightRange));
_addReplaceEdit(rightRange, _getRangeText(leftRange));
// maybe replace the operator
@@ -1207,7 +1205,7 @@ class AssistProcessor {
}
// replace the operator
if (newOperator != null) {
- _addReplaceEdit(rangeToken(operator), newOperator);
+ _addReplaceEdit(range.token(operator), newOperator);
}
}
}
@@ -1350,9 +1348,9 @@ class AssistProcessor {
String thenSource = _getNodeText(thenStatement);
String elseSource = _getNodeText(elseStatement);
// do replacements
- _addReplaceEdit(rangeNode(condition), invertedCondition);
- _addReplaceEdit(rangeNode(thenStatement), elseSource);
- _addReplaceEdit(rangeNode(elseStatement), thenSource);
+ _addReplaceEdit(range.node(condition), invertedCondition);
+ _addReplaceEdit(range.node(thenStatement), elseSource);
+ _addReplaceEdit(range.node(elseStatement), thenSource);
// add proposal
_addAssist(DartAssistKind.INVERT_IF_STATEMENT, []);
}
@@ -1410,7 +1408,7 @@ class AssistProcessor {
utils.getLinesRangeStatements(innerThenStatements);
String oldSource = utils.getRangeText(lineRanges);
String newSource = utils.indentSourceLeftRight(oldSource, false);
- _addReplaceEdit(rangeNode(targetIfStatement),
+ _addReplaceEdit(range.node(targetIfStatement),
'if ($condition) {$eol$newSource$prefix}');
}
// done
@@ -1476,7 +1474,7 @@ class AssistProcessor {
utils.getLinesRangeStatements(targetThenStatements);
String oldSource = utils.getRangeText(lineRanges);
String newSource = utils.indentSourceLeftRight(oldSource, false);
- _addReplaceEdit(rangeNode(outerIfStatement),
+ _addReplaceEdit(range.node(outerIfStatement),
'if ($condition) {$eol$newSource$prefix}');
}
// done
@@ -1545,10 +1543,7 @@ class AssistProcessor {
return;
}
// add edits
- {
- int assignOffset = assignExpression.operator.offset;
- _addReplaceEdit(rangeEndStart(declNode, assignOffset), ' ');
- }
+ _addReplaceEdit(range.endStart(declNode, assignExpression.operator), ' ');
// add proposal
_addAssist(DartAssistKind.JOIN_VARIABLE_DECLARATION, []);
}
@@ -1607,10 +1602,7 @@ class AssistProcessor {
return;
}
// add edits
- {
- int assignOffset = assignExpression.operator.offset;
- _addReplaceEdit(rangeEndStart(decl.name, assignOffset), ' ');
- }
+ _addReplaceEdit(range.endStart(decl.name, assignExpression.operator), ' ');
// add proposal
_addAssist(DartAssistKind.JOIN_VARIABLE_DECLARATION, []);
}
@@ -1709,7 +1701,7 @@ class AssistProcessor {
}
// add edit
Token keyword = declarationList.keyword;
- SourceRange typeRange = rangeStartStart(typeNode, firstVariable);
+ SourceRange typeRange = range.startStart(typeNode, firstVariable);
if (keyword != null && keyword.lexeme != 'var') {
_addReplaceEdit(typeRange, '');
} else {
@@ -1852,7 +1844,7 @@ class AssistProcessor {
// Type v = Conditional;
if (inVariable) {
VariableDeclaration variable = conditional.parent as VariableDeclaration;
- _addRemoveEdit(rangeEndEnd(variable.name, conditional));
+ _addRemoveEdit(range.endEnd(variable.name, conditional));
String conditionSrc = _getNodeText(conditional.condition);
String thenSrc = _getNodeText(conditional.thenExpression);
String elseSrc = _getNodeText(conditional.elseExpression);
@@ -1863,7 +1855,7 @@ class AssistProcessor {
src += prefix + '} else {' + eol;
src += prefix + indent + '$name = $elseSrc;' + eol;
src += prefix + '}';
- _addReplaceEdit(rangeEndLength(statement, 0), src);
+ _addReplaceEdit(range.endLength(statement, 0), src);
}
// v = Conditional;
if (inAssignment) {
@@ -1880,7 +1872,7 @@ class AssistProcessor {
src += prefix + '} else {' + eol;
src += prefix + indent + '$name = $elseSrc;' + eol;
src += prefix + '}';
- _addReplaceEdit(rangeNode(statement), src);
+ _addReplaceEdit(range.node(statement), src);
}
// return Conditional;
if (inReturn) {
@@ -1893,7 +1885,7 @@ class AssistProcessor {
src += prefix + '} else {' + eol;
src += prefix + indent + 'return $elseSrc;' + eol;
src += prefix + '}';
- _addReplaceEdit(rangeNode(statement), src);
+ _addReplaceEdit(range.node(statement), src);
}
// add proposal
_addAssist(DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, []);
@@ -1918,8 +1910,8 @@ class AssistProcessor {
String conditionSrc = _getNodeText(ifStatement.condition);
String theSrc = _getNodeText(thenStatement.expression);
String elseSrc = _getNodeText(elseStatement.expression);
- _addReplaceEdit(
- rangeNode(ifStatement), 'return $conditionSrc ? $theSrc : $elseSrc;');
+ _addReplaceEdit(range.node(ifStatement),
+ 'return $conditionSrc ? $theSrc : $elseSrc;');
}
// assignments -> v = Conditional;
if (thenStatement is ExpressionStatement &&
@@ -1938,7 +1930,7 @@ class AssistProcessor {
String conditionSrc = _getNodeText(ifStatement.condition);
String theSrc = _getNodeText(thenAssignment.rightHandSide);
String elseSrc = _getNodeText(elseAssignment.rightHandSide);
- _addReplaceEdit(rangeNode(ifStatement),
+ _addReplaceEdit(range.node(ifStatement),
'$thenTarget = $conditionSrc ? $theSrc : $elseSrc;');
}
}
@@ -1995,16 +1987,16 @@ class AssistProcessor {
String rightConditionSource;
{
SourceRange rightConditionRange =
- rangeStartEnd(binaryExpression.rightOperand, condition);
+ range.startEnd(binaryExpression.rightOperand, condition);
rightConditionSource = _getRangeText(rightConditionRange);
}
// remove "&& rightCondition"
- _addRemoveEdit(rangeEndEnd(binaryExpression.leftOperand, condition));
+ _addRemoveEdit(range.endEnd(binaryExpression.leftOperand, condition));
// update "then" statement
Statement thenStatement = ifStatement.thenStatement;
if (thenStatement is Block) {
Block thenBlock = thenStatement;
- SourceRange thenBlockRange = rangeNode(thenBlock);
+ SourceRange thenBlockRange = range.node(thenBlock);
// insert inner "if" with right part of "condition"
{
String source = '$eol$prefix${indent}if ($rightConditionSource) {';
@@ -2058,12 +2050,12 @@ class AssistProcessor {
return;
}
// remove initializer value
- _addRemoveEdit(rangeEndStart(variable.name, statement.semicolon));
+ _addRemoveEdit(range.endStart(variable.name, statement.semicolon));
// add assignment statement
String indent = utils.getNodePrefix(statement);
String name = variable.name.name;
String initSrc = _getNodeText(initializer);
- SourceRange assignRange = rangeEndLength(statement, 0);
+ SourceRange assignRange = range.endLength(statement, 0);
_addReplaceEdit(assignRange, eol + indent + name + ' = ' + initSrc + ';');
// add proposal
_addAssist(DartAssistKind.SPLIT_VARIABLE_DECLARATION, []);
@@ -2073,8 +2065,7 @@ class AssistProcessor {
// prepare selected statements
List<Statement> selectedStatements;
{
- SourceRange selection =
- rangeStartLength(selectionOffset, selectionLength);
+ SourceRange selection = new SourceRange(selectionOffset, selectionLength);
StatementAnalyzer selectionAnalyzer =
new StatementAnalyzer(unit, selection);
unit.accept(selectionAnalyzer);
@@ -2380,7 +2371,7 @@ class AssistProcessor {
*/
void _insertBuilder(SourceBuilder builder, [int length = 0]) {
{
- SourceRange range = rangeStartLength(builder.offset, length);
+ SourceRange range = new SourceRange(builder.offset, length);
String text = builder.toString();
_addReplaceEdit(range, text);
}

Powered by Google App Engine
This is Rietveld 408576698