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

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

Issue 1526303003: convert ImportedReferenceContributor to new API (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 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
OLDNEW
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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 return suggestions; 54 return suggestions;
55 } 55 }
56 } 56 }
57 57
58 /** 58 /**
59 * The information about a requested list of completions within a Dart file. 59 * The information about a requested list of completions within a Dart file.
60 */ 60 */
61 class DartCompletionRequestImpl extends CompletionRequestImpl 61 class DartCompletionRequestImpl extends CompletionRequestImpl
62 implements DartCompletionRequest { 62 implements DartCompletionRequest {
63 /** 63 /**
64 * The [LibraryElement] representing dart:core
65 */
66 LibraryElement _coreLib;
67
68 /**
64 * The [DartType] for Object in dart:core 69 * The [DartType] for Object in dart:core
65 */ 70 */
66 InterfaceType _objectType; 71 InterfaceType _objectType;
67 72
68 @override 73 @override
69 Expression dotTarget; 74 Expression dotTarget;
70 75
71 @override 76 @override
72 Source librarySource; 77 Source librarySource;
73 78
74 OpType _opType; 79 OpType _opType;
75 80
76 @override 81 @override
77 CompletionTarget target; 82 CompletionTarget target;
78 83
79 DartCompletionRequestImpl._( 84 DartCompletionRequestImpl._(
80 AnalysisContext context, 85 AnalysisContext context,
81 ResourceProvider resourceProvider, 86 ResourceProvider resourceProvider,
82 SearchEngine searchEngine, 87 SearchEngine searchEngine,
83 this.librarySource, 88 this.librarySource,
84 Source source, 89 Source source,
85 int offset, 90 int offset,
86 CompilationUnit unit) 91 CompilationUnit unit)
87 : super(context, resourceProvider, searchEngine, source, offset) { 92 : super(context, resourceProvider, searchEngine, source, offset) {
88 _updateTargets(unit); 93 _updateTargets(unit);
89 } 94 }
90 95
91 @override 96 @override
97 LibraryElement get coreLib {
98 if (_coreLib == null) {
99 Source coreUri = context.sourceFactory.forUri('dart:core');
100 _coreLib = context.computeLibraryElement(coreUri);
101 }
102 return _coreLib;
103 }
104
105 @override
92 bool get includeIdentifiers { 106 bool get includeIdentifiers {
93 opType; // <<< ensure _opType is initialized 107 opType; // <<< ensure _opType is initialized
94 return !_opType.isPrefixed && 108 return !_opType.isPrefixed &&
95 (_opType.includeReturnValueSuggestions || 109 (_opType.includeReturnValueSuggestions ||
96 _opType.includeTypeNameSuggestions || 110 _opType.includeTypeNameSuggestions ||
97 _opType.includeVoidReturnSuggestions || 111 _opType.includeVoidReturnSuggestions ||
98 _opType.includeConstructorSuggestions); 112 _opType.includeConstructorSuggestions);
99 } 113 }
100 114
101 @override 115 @override
102 LibraryElement get libraryElement { 116 LibraryElement get libraryElement {
103 //TODO(danrubel) build the library element rather than all the declarations 117 //TODO(danrubel) build the library element rather than all the declarations
104 CompilationUnit unit = target.unit; 118 CompilationUnit unit = target.unit;
105 if (unit != null) { 119 if (unit != null) {
106 CompilationUnitElement elem = unit.element; 120 CompilationUnitElement elem = unit.element;
107 if (elem != null) { 121 if (elem != null) {
108 return elem.library; 122 return elem.library;
109 } 123 }
110 } 124 }
111 return null; 125 return null;
112 } 126 }
113 127
114 @override 128 @override
115 InterfaceType get objectType { 129 InterfaceType get objectType {
116 if (_objectType == null) { 130 if (_objectType == null) {
117 Source coreUri = context.sourceFactory.forUri('dart:core');
118 LibraryElement coreLib = context.computeLibraryElement(coreUri);
119 _objectType = coreLib.getType('Object').type; 131 _objectType = coreLib.getType('Object').type;
120 } 132 }
121 return _objectType; 133 return _objectType;
122 } 134 }
123 135
124 OpType get opType { 136 OpType get opType {
125 if (_opType == null) { 137 if (_opType == null) {
126 _opType = new OpType.forCompletion(target, offset); 138 _opType = new OpType.forCompletion(target, offset);
127 } 139 }
128 return _opType; 140 return _opType;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 if (dartRequest.target.maybeFunctionalArgument()) { 261 if (dartRequest.target.maybeFunctionalArgument()) {
250 AstNode node = dartRequest.target.containingNode.parent; 262 AstNode node = dartRequest.target.containingNode.parent;
251 if (node is Expression) { 263 if (node is Expression) {
252 await dartRequest.resolveExpression(node); 264 await dartRequest.resolveExpression(node);
253 } 265 }
254 } 266 }
255 267
256 return dartRequest; 268 return dartRequest;
257 } 269 }
258 } 270 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698