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

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

Issue 837793003: Include required parameter names when completing a method call. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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 2c5a4e2f1549a58104f8ff58ad14048584a8245e..584855a04a82da0bd6dc5a9d72f4a1436bbcd824 100644
--- a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
@@ -12,6 +12,7 @@ import 'package:analysis_server/src/protocol_server.dart' hide Element,
import 'package:analysis_server/src/services/completion/dart_completion_manager.dart';
import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/element.dart';
+import 'package:analyzer/src/generated/utilities_dart.dart';
/**
* Create a suggestion based upon the given imported element.
@@ -383,6 +384,17 @@ class _AbstractSuggestionBuilder extends GeneralizingElementVisitor {
suggestion.returnType = typeName;
}
}
+ if (element is ExecutableElement && element is! PropertyAccessorElement) {
+ suggestion.parameterNames = element.parameters.map(
+ (ParameterElement parameter) => parameter.name).toList();
+ suggestion.parameterTypes = element.parameters.map(
+ (ParameterElement parameter) => parameter.type.displayName).toList();
danrubel 2015/01/06 23:49:36 Can parameter.type ever be null?
Paul Berry 2015/01/07 15:39:14 My belief is that it should never be null, but I w
+ suggestion.requiredParameterCount = element.parameters.where(
+ (ParameterElement parameter) =>
+ parameter.parameterKind == ParameterKind.REQUIRED).length;
+ suggestion.hasNamedParameters = element.parameters.any(
+ (ParameterElement parameter) => parameter.parameterKind == ParameterKind.NAMED);
+ }
request.suggestions.add(suggestion);
}
}

Powered by Google App Engine
This is Rietveld 408576698