| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library services.completion.suggestion.builder; | 5 library services.completion.suggestion.builder; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol_server.dart' as protocol; | 9 import 'package:analysis_server/src/protocol_server.dart' as protocol; |
| 10 import 'package:analysis_server/src/protocol_server.dart' hide Element, | 10 import 'package:analysis_server/src/protocol_server.dart' hide Element, |
| 11 ElementKind; | 11 ElementKind; |
| 12 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 12 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 13 import 'package:analyzer/src/generated/ast.dart'; | 13 import 'package:analyzer/src/generated/ast.dart'; |
| 14 import 'package:analyzer/src/generated/element.dart'; | 14 import 'package:analyzer/src/generated/element.dart'; |
| 15 import 'package:analyzer/src/generated/utilities_dart.dart'; | 15 import 'package:analyzer/src/generated/utilities_dart.dart'; |
| 16 | 16 |
| 17 /** | 17 /** |
| 18 * Create a suggestion based upon the given imported element. | 18 * Create a suggestion based upon the given imported element. |
| 19 */ | 19 */ |
| 20 CompletionSuggestion createElementSuggestion(Element element, | 20 CompletionSuggestion createElementSuggestion(Element element, |
| 21 {CompletionRelevance relevance: CompletionRelevance.DEFAULT}) { | 21 {int relevance: COMPLETION_RELEVANCE_DEFAULT}) { |
| 22 String completion = element.displayName; | 22 String completion = element.displayName; |
| 23 CompletionSuggestion suggestion = new CompletionSuggestion( | 23 CompletionSuggestion suggestion = new CompletionSuggestion( |
| 24 CompletionSuggestionKind.INVOCATION, | 24 CompletionSuggestionKind.INVOCATION, |
| 25 element.isDeprecated ? CompletionRelevance.LOW : relevance, | 25 element.isDeprecated ? COMPLETION_RELEVANCE_LOW : relevance, |
| 26 completion, | 26 completion, |
| 27 completion.length, | 27 completion.length, |
| 28 0, | 28 0, |
| 29 element.isDeprecated, | 29 element.isDeprecated, |
| 30 false); | 30 false); |
| 31 | 31 |
| 32 suggestion.element = newElement_fromEngine(element); | 32 suggestion.element = newElement_fromEngine(element); |
| 33 | 33 |
| 34 DartType type; | 34 DartType type; |
| 35 if (element is FunctionElement) { | 35 if (element is FunctionElement) { |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 } | 354 } |
| 355 String completion = element.displayName; | 355 String completion = element.displayName; |
| 356 if (completion == null || | 356 if (completion == null || |
| 357 completion.length <= 0 || | 357 completion.length <= 0 || |
| 358 !_completions.add(completion)) { | 358 !_completions.add(completion)) { |
| 359 return; | 359 return; |
| 360 } | 360 } |
| 361 bool isDeprecated = element.isDeprecated; | 361 bool isDeprecated = element.isDeprecated; |
| 362 CompletionSuggestion suggestion = new CompletionSuggestion( | 362 CompletionSuggestion suggestion = new CompletionSuggestion( |
| 363 kind, | 363 kind, |
| 364 isDeprecated ? CompletionRelevance.LOW : CompletionRelevance.DEFAULT, | 364 isDeprecated ? COMPLETION_RELEVANCE_LOW : COMPLETION_RELEVANCE_DEFAULT, |
| 365 completion, | 365 completion, |
| 366 completion.length, | 366 completion.length, |
| 367 0, | 367 0, |
| 368 isDeprecated, | 368 isDeprecated, |
| 369 false); | 369 false); |
| 370 suggestion.element = protocol.newElement_fromEngine(element); | 370 suggestion.element = protocol.newElement_fromEngine(element); |
| 371 if (suggestion.element != null) { | 371 if (suggestion.element != null) { |
| 372 if (element is FieldElement) { | 372 if (element is FieldElement) { |
| 373 suggestion.element.kind = protocol.ElementKind.GETTER; | 373 suggestion.element.kind = protocol.ElementKind.GETTER; |
| 374 suggestion.element.returnType = | 374 suggestion.element.returnType = |
| (...skipping 16 matching lines...) Expand all Loading... |
| 391 (ParameterElement parameter) => parameter.type.displayName).toList(); | 391 (ParameterElement parameter) => parameter.type.displayName).toList(); |
| 392 suggestion.requiredParameterCount = element.parameters.where( | 392 suggestion.requiredParameterCount = element.parameters.where( |
| 393 (ParameterElement parameter) => | 393 (ParameterElement parameter) => |
| 394 parameter.parameterKind == ParameterKind.REQUIRED).length; | 394 parameter.parameterKind == ParameterKind.REQUIRED).length; |
| 395 suggestion.hasNamedParameters = element.parameters.any( | 395 suggestion.hasNamedParameters = element.parameters.any( |
| 396 (ParameterElement parameter) => parameter.parameterKind == ParameterKi
nd.NAMED); | 396 (ParameterElement parameter) => parameter.parameterKind == ParameterKi
nd.NAMED); |
| 397 } | 397 } |
| 398 request.suggestions.add(suggestion); | 398 request.suggestions.add(suggestion); |
| 399 } | 399 } |
| 400 } | 400 } |
| OLD | NEW |