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

Unified Diff: pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart

Issue 686843003: add type static constants suggestions (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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/completion/suggestion_builder.dart
diff --git a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
index 31f6a652750d3cba1f8e061b70d4d3595b1fcf06..391ac2a41a23d26b0eeb1189264c3d6499d0a0ed 100644
--- a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
@@ -94,8 +94,12 @@ void visitInheritedTypes(ClassDeclaration node, void
* [ClassElementSuggestionBuilder.suggestionsFor].
*/
class ClassElementSuggestionBuilder extends _AbstractSuggestionBuilder {
+ final bool staticOnly;
- ClassElementSuggestionBuilder(DartCompletionRequest request) : super(request);
+ ClassElementSuggestionBuilder(DartCompletionRequest request, {bool staticOnly:
+ false})
+ : super(request),
+ this.staticOnly = staticOnly;
@override
visitClassElement(ClassElement element) {
@@ -112,6 +116,9 @@ class ClassElementSuggestionBuilder extends _AbstractSuggestionBuilder {
@override
visitFieldElement(FieldElement element) {
+ if (staticOnly && !element.isStatic) {
+ return;
+ }
_addElementSuggestion(
element,
CompletionSuggestionKind.GETTER,
@@ -121,6 +128,9 @@ class ClassElementSuggestionBuilder extends _AbstractSuggestionBuilder {
@override
visitMethodElement(MethodElement element) {
+ if (staticOnly && !element.isStatic) {
+ return;
+ }
if (element.isOperator) {
return;
}
@@ -133,6 +143,9 @@ class ClassElementSuggestionBuilder extends _AbstractSuggestionBuilder {
@override
visitPropertyAccessorElement(PropertyAccessorElement element) {
+ if (staticOnly && !element.isStatic) {
+ return;
+ }
if (element.isGetter) {
_addElementSuggestion(
element,
@@ -156,6 +169,15 @@ class ClassElementSuggestionBuilder extends _AbstractSuggestionBuilder {
return element.accept(new ClassElementSuggestionBuilder(request));
}
}
+
+ /**
+ * Add suggestions for the visible static members in the given class
+ */
+ static void staticSuggestionsFor(DartCompletionRequest request,
+ ClassElement element) {
+ return element.accept(
+ new ClassElementSuggestionBuilder(request, staticOnly: true));
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698