| 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.computer.dart.invocation; | 5 library services.completion.computer.dart.invocation; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 9 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 10 import 'package:analysis_server/src/services/completion/optype_ast_visitor.dart'
; | 10 import 'package:analysis_server/src/services/completion/optype.dart'; |
| 11 import 'package:analysis_server/src/services/completion/suggestion_builder.dart'
; | 11 import 'package:analysis_server/src/services/completion/suggestion_builder.dart'
; |
| 12 import 'package:analyzer/src/generated/ast.dart'; | 12 import 'package:analyzer/src/generated/ast.dart'; |
| 13 import 'package:analyzer/src/generated/element.dart'; | 13 import 'package:analyzer/src/generated/element.dart'; |
| 14 import 'package:analyzer/src/generated/scanner.dart'; | |
| 15 | 14 |
| 16 import '../../protocol_server.dart' show CompletionSuggestionKind; | 15 import '../../protocol_server.dart' show CompletionSuggestionKind; |
| 17 | 16 |
| 18 /** | 17 /** |
| 19 * A computer for calculating invocation / access suggestions | 18 * A computer for calculating invocation / access suggestions |
| 20 * `completion.getSuggestions` request results. | 19 * `completion.getSuggestions` request results. |
| 21 */ | 20 */ |
| 22 class InvocationComputer extends DartCompletionComputer { | 21 class InvocationComputer extends DartCompletionComputer { |
| 23 SuggestionBuilder builder; | 22 SuggestionBuilder builder; |
| 24 | 23 |
| 25 @override | 24 @override |
| 26 bool computeFast(DartCompletionRequest request) { | 25 bool computeFast(DartCompletionRequest request) { |
| 27 | 26 OpType optype = request.optype; |
| 28 // Determine the type of suggestions to be made | 27 if (optype.includeInvocationSuggestions) { |
| 29 OpTypeAstVisitor opTypeVisitor = new OpTypeAstVisitor(request.offset); | |
| 30 request.node.accept(opTypeVisitor); | |
| 31 | |
| 32 // Build the suggestions | |
| 33 if (opTypeVisitor.includeInvocationSuggestions) { | |
| 34 builder = request.node.accept(new _InvocationAstVisitor(request)); | 28 builder = request.node.accept(new _InvocationAstVisitor(request)); |
| 35 if (builder != null) { | 29 if (builder != null) { |
| 36 return builder.computeFast(request.node); | 30 return builder.computeFast(request.node); |
| 37 } | 31 } |
| 38 } | 32 } |
| 39 | 33 |
| 40 return true; | 34 return true; |
| 41 } | 35 } |
| 42 | 36 |
| 43 @override | 37 @override |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 216 |
| 223 @override | 217 @override |
| 224 Future<bool> visitVariableElement(VariableElement element) { | 218 Future<bool> visitVariableElement(VariableElement element) { |
| 225 DartType type = element.type; | 219 DartType type = element.type; |
| 226 if (type != null) { | 220 if (type != null) { |
| 227 ClassElementSuggestionBuilder.suggestionsFor(request, type.element); | 221 ClassElementSuggestionBuilder.suggestionsFor(request, type.element); |
| 228 } | 222 } |
| 229 return new Future.value(true); | 223 return new Future.value(true); |
| 230 } | 224 } |
| 231 } | 225 } |
| OLD | NEW |