Skip to content

Commit 6da0090

Browse files
pqcommit-bot@chromium.org
authored andcommitted
add static fields and getters to available suggestions
Fixes: #40699 Change-Id: Id60307de949395c2274cb35ac4d14521b301437d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136525 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Phil Quitslund <[email protected]>
1 parent 612728f commit 6da0090

File tree

4 files changed

+50
-3
lines changed

4 files changed

+50
-3
lines changed

pkg/analysis_server/lib/src/domains/completion/available_suggestions.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,12 @@ protocol.AvailableSuggestion _protocolAvailableSuggestion(
191191
}
192192
} else if (declaration.kind == DeclarationKind.ENUM_CONSTANT) {
193193
label = '${declaration.parent.name}.${declaration.name}';
194+
} else if (declaration.kind == DeclarationKind.GETTER &&
195+
declaration.isStatic) {
196+
label = '${declaration.parent.name}.${declaration.name}';
197+
} else if (declaration.kind == DeclarationKind.FIELD &&
198+
declaration.isStatic) {
199+
label = '${declaration.parent.name}.${declaration.name}';
194200
} else {
195201
return null;
196202
}

pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,10 @@ class DartCompletionManager implements CompletionContributor {
240240
kinds.add(protocol.ElementKind.CONSTRUCTOR);
241241
kinds.add(protocol.ElementKind.ENUM_CONSTANT);
242242
kinds.add(protocol.ElementKind.EXTENSION);
243+
// Static fields.
244+
kinds.add(protocol.ElementKind.FIELD);
243245
kinds.add(protocol.ElementKind.FUNCTION);
246+
// Static and top-level properties.
244247
kinds.add(protocol.ElementKind.GETTER);
245248
kinds.add(protocol.ElementKind.SETTER);
246249
kinds.add(protocol.ElementKind.TOP_LEVEL_VARIABLE);

pkg/analysis_server/test/client/completion_driver_test.dart

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,41 @@ void main() {
385385
kind: CompletionSuggestionKind.INVOCATION);
386386
}
387387

388+
Future<void> test_project_lib_fields_class() async {
389+
await addProjectFile('lib/a.dart', r'''
390+
class A {
391+
int f = 0;
392+
}
393+
''');
394+
395+
await addTestFile('''
396+
void main() {
397+
^
398+
}
399+
''');
400+
401+
assertNoSuggestion(completion: 'f');
402+
}
403+
404+
Future<void> test_project_lib_fields_static() async {
405+
await addProjectFile('lib/a.dart', r'''
406+
class A {
407+
static int f = 0;
408+
}
409+
''');
410+
411+
await addTestFile('''
412+
void main() {
413+
^
414+
}
415+
''');
416+
417+
assertSuggestion(
418+
completion: 'A.f',
419+
element: ElementKind.FIELD,
420+
kind: CompletionSuggestionKind.INVOCATION);
421+
}
422+
388423
Future<void> test_project_lib_getters_class() async {
389424
await addProjectFile('lib/a.dart', r'''
390425
class A {
@@ -401,7 +436,6 @@ void main() {
401436
assertNoSuggestion(completion: 'g');
402437
}
403438

404-
@failingTest
405439
Future<void> test_project_lib_getters_static() async {
406440
await addProjectFile('lib/a.dart', r'''
407441
class A {
@@ -415,7 +449,10 @@ void main() {
415449
}
416450
''');
417451

418-
assertSuggestion(completion: 'g');
452+
assertSuggestion(
453+
completion: 'A.g',
454+
element: ElementKind.GETTER,
455+
kind: CompletionSuggestionKind.INVOCATION);
419456
}
420457

421458
/// See: https://github.com/dart-lang/sdk/issues/40626
@@ -488,7 +525,7 @@ void main() {
488525
}
489526
''');
490527

491-
assertNoSuggestion(completion: 'g');
528+
assertNoSuggestion(completion: 'A.g');
492529
}
493530

494531
/// See: https://github.com/dart-lang/sdk/issues/40626

pkg/analysis_server/test/src/domains/completion/get_suggestions_available_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ main() {
182182
ElementKind.ENUM,
183183
ElementKind.ENUM_CONSTANT,
184184
ElementKind.EXTENSION,
185+
ElementKind.FIELD,
185186
ElementKind.FUNCTION,
186187
ElementKind.FUNCTION_TYPE_ALIAS,
187188
ElementKind.GETTER,

0 commit comments

Comments
 (0)