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

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

Issue 784853003: include lower relevance suggestions only if they are already cached (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 6 years 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 | Annotate | Revision Log
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698