| 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.dart; | 5 library services.completion.dart; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart'; |
| 10 import 'package:analysis_server/src/services/completion/arglist_computer.dart'; | 10 import 'package:analysis_server/src/services/completion/arglist_computer.dart'; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 */ | 68 */ |
| 69 factory DartCompletionManager.create(AnalysisContext context, | 69 factory DartCompletionManager.create(AnalysisContext context, |
| 70 SearchEngine searchEngine, Source source) { | 70 SearchEngine searchEngine, Source source) { |
| 71 return new DartCompletionManager( | 71 return new DartCompletionManager( |
| 72 context, | 72 context, |
| 73 searchEngine, | 73 searchEngine, |
| 74 source, | 74 source, |
| 75 new DartCompletionCache(context, source)); | 75 new DartCompletionCache(context, source)); |
| 76 } | 76 } |
| 77 | 77 |
| 78 @override | |
| 79 void computeSuggestions(CompletionRequest completionRequest) { | |
| 80 DartCompletionRequest request = new DartCompletionRequest( | |
| 81 context, | |
| 82 searchEngine, | |
| 83 source, | |
| 84 completionRequest.offset, | |
| 85 cache, | |
| 86 completionRequest.performance); | |
| 87 request.performance.logElapseTime('compute', () { | |
| 88 computeFast(request); | |
| 89 if (!computers.isEmpty) { | |
| 90 computeFull(request); | |
| 91 } | |
| 92 }); | |
| 93 } | |
| 94 | |
| 95 /** | 78 /** |
| 96 * Compute suggestions based upon cached information only | 79 * Compute suggestions based upon cached information only |
| 97 * then send an initial response to the client. | 80 * then send an initial response to the client. |
| 98 */ | 81 */ |
| 99 void computeFast(DartCompletionRequest request) { | 82 void computeFast(DartCompletionRequest request) { |
| 100 request.performance.logElapseTime('computeFast', () { | 83 request.performance.logElapseTime('computeFast', () { |
| 101 CompilationUnit unit = context.parseCompilationUnit(source); | 84 CompilationUnit unit = context.parseCompilationUnit(source); |
| 102 request.unit = unit; | 85 request.unit = unit; |
| 103 request.node = new NodeLocator.con1(request.offset).searchWithin(unit); | 86 request.node = new NodeLocator.con1(request.offset).searchWithin(unit); |
| 104 request.node.accept(new _ReplacementOffsetBuilder(request)); | 87 request.node.accept(new _ReplacementOffsetBuilder(request)); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 if (changed || last) { | 123 if (changed || last) { |
| 141 sendResults(request, last); | 124 sendResults(request, last); |
| 142 } | 125 } |
| 143 }); | 126 }); |
| 144 }); | 127 }); |
| 145 }); | 128 }); |
| 146 }); | 129 }); |
| 147 }); | 130 }); |
| 148 } | 131 } |
| 149 | 132 |
| 133 @override |
| 134 void computeSuggestions(CompletionRequest completionRequest) { |
| 135 DartCompletionRequest request = new DartCompletionRequest( |
| 136 context, |
| 137 searchEngine, |
| 138 source, |
| 139 completionRequest.offset, |
| 140 cache, |
| 141 completionRequest.performance); |
| 142 request.performance.logElapseTime('compute', () { |
| 143 computeFast(request); |
| 144 if (!computers.isEmpty) { |
| 145 computeFull(request); |
| 146 } |
| 147 }); |
| 148 } |
| 149 |
| 150 /** | 150 /** |
| 151 * Send the current list of suggestions to the client. | 151 * Send the current list of suggestions to the client. |
| 152 */ | 152 */ |
| 153 void sendResults(DartCompletionRequest request, bool last) { | 153 void sendResults(DartCompletionRequest request, bool last) { |
| 154 controller.add( | 154 controller.add( |
| 155 new CompletionResult( | 155 new CompletionResult( |
| 156 request.replacementOffset, | 156 request.replacementOffset, |
| 157 request.replacementLength, | 157 request.replacementLength, |
| 158 request.suggestions, | 158 request.suggestions, |
| 159 last)); | 159 last)); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 _ReplacementOffsetBuilder(this.request) { | 254 _ReplacementOffsetBuilder(this.request) { |
| 255 request.replacementOffset = request.offset; | 255 request.replacementOffset = request.offset; |
| 256 request.replacementLength = 0; | 256 request.replacementLength = 0; |
| 257 } | 257 } |
| 258 | 258 |
| 259 visitSimpleIdentifier(SimpleIdentifier node) { | 259 visitSimpleIdentifier(SimpleIdentifier node) { |
| 260 request.replacementOffset = node.offset; | 260 request.replacementOffset = node.offset; |
| 261 request.replacementLength = node.length; | 261 request.replacementLength = node.length; |
| 262 } | 262 } |
| 263 } | 263 } |
| OLD | NEW |