Issue 2111. Copy documentation comments when 'Encapsulate Field'.

R=brianwilkerson@google.com

Bug: https://github.com/flutter/flutter-intellij/issues/2111
Change-Id: If971e72b2cde15b7183f148da9da4d0dfed4ae05
Reviewed-on: https://dart-review.googlesource.com/52267
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2018-04-23 16:46:22 +00:00 committed by commit-bot@chromium.org
parent ea14947aca
commit 7b3a9c9aec
2 changed files with 60 additions and 11 deletions

View file

@ -1233,17 +1233,39 @@ class AssistProcessor {
}
}
}
// add accessors
String eol2 = eol + eol;
String typeNameCode = variableList.type != null
? _getNodeText(variableList.type) + ' '
: '';
String getterCode = '$eol2 ${typeNameCode}get $name => _$name;';
String setterCode = '$eol2'
' set $name($typeNameCode$name) {$eol'
' _$name = $name;$eol'
' }';
builder.addSimpleInsertion(fieldDeclaration.end, getterCode + setterCode);
// Write getter and setter.
builder.addInsertion(fieldDeclaration.end, (builder) {
String docCode;
if (fieldDeclaration.documentationComment != null) {
docCode = utils.getNodeText(fieldDeclaration.documentationComment);
}
String typeCode = '';
if (variableList.type != null) {
typeCode = _getNodeText(variableList.type) + ' ';
}
// Write getter.
builder.writeln();
builder.writeln();
if (docCode != null) {
builder.write(' ');
builder.writeln(docCode);
}
builder.write(' ${typeCode}get $name => _$name;');
// Write setter.
builder.writeln();
builder.writeln();
if (docCode != null) {
builder.write(' ');
builder.writeln(docCode);
}
builder.writeln(' set $name($typeCode$name) {');
builder.writeln(' _$name = $name;');
builder.write(' }');
});
});
_addAssistFromBuilder(changeBuilder, DartAssistKind.ENCAPSULATE_FIELD);
}

View file

@ -2562,6 +2562,33 @@ class A {
await assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD);
}
test_encapsulateField_OK_documentation() async {
await resolveTestUnit('''
class A {
/// AAA
/// BBB
int test;
}
''');
await assertHasAssistAt('test;', DartAssistKind.ENCAPSULATE_FIELD, '''
class A {
/// AAA
/// BBB
int _test;
/// AAA
/// BBB
int get test => _test;
/// AAA
/// BBB
set test(int test) {
_test = test;
}
}
''');
}
test_encapsulateField_OK_hasType() async {
await resolveTestUnit('''
class A {