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

Side by Side Diff: pkg/analysis_server/lib/src/services/completion/dart/utilities.dart

Issue 2728653004: Default arg support continued (flutter-intellij#553). (Closed)
Patch Set: Review tweaks. Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * A collection of utility methods used by completion contributors. 6 * A collection of utility methods used by completion contributors.
7 */ 7 */
8 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol 8 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol
9 show Element, ElementKind; 9 show Element, ElementKind;
10 import 'package:analysis_server/src/protocol_server.dart' 10 import 'package:analysis_server/src/protocol_server.dart'
11 show CompletionSuggestion, CompletionSuggestionKind, Location; 11 show CompletionSuggestion, CompletionSuggestionKind, Location;
12 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart'; 12 import 'package:analysis_server/src/provisional/completion/dart/completion_dart. dart';
13 import 'package:analyzer/dart/ast/ast.dart'; 13 import 'package:analyzer/dart/ast/ast.dart';
14 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; 14 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
15 import 'package:analyzer/dart/ast/token.dart'; 15 import 'package:analyzer/dart/ast/token.dart';
16 import 'package:analyzer/dart/element/element.dart';
16 import 'package:analyzer/src/dart/ast/token.dart'; 17 import 'package:analyzer/src/dart/ast/token.dart';
17 import 'package:analyzer/src/generated/source.dart'; 18 import 'package:analyzer/src/generated/source.dart';
18 19
19 /** 20 /**
20 * The name of the type `dynamic`; 21 * The name of the type `dynamic`;
21 */ 22 */
22 const DYNAMIC = 'dynamic'; 23 const DYNAMIC = 'dynamic';
23 24
24 /** 25 /**
25 * A marker used in place of `null` when a function has no return type. 26 * A marker used in place of `null` when a function has no return type.
26 */ 27 */
27 final TypeName NO_RETURN_TYPE = astFactory.typeName( 28 final TypeName NO_RETURN_TYPE = astFactory.typeName(
28 astFactory.simpleIdentifier(new StringToken(TokenType.IDENTIFIER, '', 0)), 29 astFactory.simpleIdentifier(new StringToken(TokenType.IDENTIFIER, '', 0)),
29 null); 30 null);
30 31
31 /** 32 /**
33 * Build a default argument list based on the given [requiredParams] and
34 * [namedParams].
35 */
36 String buildDefaultArgList(Iterable<ParameterElement> requiredParams,
37 Iterable<ParameterElement> namedParams) {
38 List<String> args = requiredParams.map((p) => p.name).toList();
39 List<String> requiredArgs = namedParams
40 .where((p) => p.isRequired)
41 .map((p) => '${p.name}: null')
42 .toList();
43 args.addAll(requiredArgs);
44 return args.isEmpty ? null : args.join(', ');
45 }
46
47 /**
32 * Create a new protocol Element for inclusion in a completion suggestion. 48 * Create a new protocol Element for inclusion in a completion suggestion.
33 */ 49 */
34 protocol.Element createLocalElement( 50 protocol.Element createLocalElement(
35 Source source, protocol.ElementKind kind, SimpleIdentifier id, 51 Source source, protocol.ElementKind kind, SimpleIdentifier id,
36 {String parameters, 52 {String parameters,
37 TypeAnnotation returnType, 53 TypeAnnotation returnType,
38 bool isAbstract: false, 54 bool isAbstract: false,
39 bool isDeprecated: false}) { 55 bool isDeprecated: false}) {
40 String name; 56 String name;
41 Location location; 57 Location location;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 TypeArgumentList typeArgs = type.typeArguments; 164 TypeArgumentList typeArgs = type.typeArguments;
149 if (typeArgs != null) { 165 if (typeArgs != null) {
150 //TODO (danrubel) include type arguments 166 //TODO (danrubel) include type arguments
151 } 167 }
152 return name; 168 return name;
153 } else if (type is GenericFunctionType) { 169 } else if (type is GenericFunctionType) {
154 // TODO(brianwilkerson) Implement this. 170 // TODO(brianwilkerson) Implement this.
155 } 171 }
156 return DYNAMIC; 172 return DYNAMIC;
157 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698