| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.dart.manager; | 5 library services.completion.dart.manager; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 10 import 'package:analysis_server/src/provisional/completion/completion_core.dart' | 10 import 'package:analysis_server/src/provisional/completion/completion_core.dart' |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 * The information about a requested list of completions within a Dart file. | 58 * The information about a requested list of completions within a Dart file. |
| 59 */ | 59 */ |
| 60 class DartCompletionRequestImpl extends CompletionRequestImpl | 60 class DartCompletionRequestImpl extends CompletionRequestImpl |
| 61 implements DartCompletionRequest { | 61 implements DartCompletionRequest { |
| 62 /** | 62 /** |
| 63 * The cached completion target or `null` if not computed yet. | 63 * The cached completion target or `null` if not computed yet. |
| 64 */ | 64 */ |
| 65 CompletionTarget _target; | 65 CompletionTarget _target; |
| 66 | 66 |
| 67 /** | 67 /** |
| 68 * The [DartType] for Object in dart:core |
| 69 */ |
| 70 InterfaceType _objectType; |
| 71 |
| 72 /** |
| 68 * `true` if [resolveDeclarationsInScope] has partially resolved the unit | 73 * `true` if [resolveDeclarationsInScope] has partially resolved the unit |
| 69 * referenced by [target], else `false`. | 74 * referenced by [target], else `false`. |
| 70 */ | 75 */ |
| 71 bool _haveResolveDeclarationsInScope = false; | 76 bool _haveResolveDeclarationsInScope = false; |
| 72 | 77 |
| 73 /** | 78 /** |
| 74 * Initialize a newly created completion request based on the given request. | 79 * Initialize a newly created completion request based on the given request. |
| 75 */ | 80 */ |
| 76 factory DartCompletionRequestImpl.forRequest(CompletionRequest request) { | 81 factory DartCompletionRequestImpl.forRequest(CompletionRequest request) { |
| 77 return new DartCompletionRequestImpl._( | 82 return new DartCompletionRequestImpl._( |
| (...skipping 19 matching lines...) Expand all Loading... |
| 97 if (unit != null) { | 102 if (unit != null) { |
| 98 CompilationUnitElement elem = unit.element; | 103 CompilationUnitElement elem = unit.element; |
| 99 if (elem != null) { | 104 if (elem != null) { |
| 100 return elem.library; | 105 return elem.library; |
| 101 } | 106 } |
| 102 } | 107 } |
| 103 return null; | 108 return null; |
| 104 } | 109 } |
| 105 | 110 |
| 106 @override | 111 @override |
| 112 InterfaceType get objectType { |
| 113 if (_objectType == null) { |
| 114 Source coreUri = context.sourceFactory.forUri('dart:core'); |
| 115 LibraryElement coreLib = context.getLibraryElement(coreUri); |
| 116 _objectType = coreLib.getType('Object').type; |
| 117 } |
| 118 return _objectType; |
| 119 } |
| 120 |
| 121 @override |
| 107 CompletionTarget get target { | 122 CompletionTarget get target { |
| 108 if (_target == null) { | 123 if (_target == null) { |
| 109 CompilationUnit unit = context.computeResult(source, PARSED_UNIT); | 124 CompilationUnit unit = context.computeResult(source, PARSED_UNIT); |
| 110 _target = new CompletionTarget.forOffset(unit, offset); | 125 _target = new CompletionTarget.forOffset(unit, offset); |
| 111 } | 126 } |
| 112 return _target; | 127 return _target; |
| 113 } | 128 } |
| 114 | 129 |
| 115 @override | 130 @override |
| 116 Future<CompilationUnit> resolveDeclarationsInScope() async { | 131 Future<CompilationUnit> resolveDeclarationsInScope() async { |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 // Gracefully degrade if unit cannot be resolved | 201 // Gracefully degrade if unit cannot be resolved |
| 187 if (resolvedUnit == null) { | 202 if (resolvedUnit == null) { |
| 188 return; | 203 return; |
| 189 } | 204 } |
| 190 | 205 |
| 191 // Recompute the target for the newly resolved unit | 206 // Recompute the target for the newly resolved unit |
| 192 _target = new CompletionTarget.forOffset(resolvedUnit, offset); | 207 _target = new CompletionTarget.forOffset(resolvedUnit, offset); |
| 193 _haveResolveDeclarationsInScope = true; | 208 _haveResolveDeclarationsInScope = true; |
| 194 } | 209 } |
| 195 } | 210 } |
| OLD | NEW |