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

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

Issue 807743003: refactor optype to be computed once per refactoring request (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge and address comment 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.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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698