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

Side by Side Diff: pkg/analysis_server/lib/src/plugin/server_plugin.dart

Issue 1337143002: Add OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT_ID. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 months 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 analysis_server.src.plugin.server_plugin; 5 library analysis_server.src.plugin.server_plugin;
6 6
7 import 'package:analysis_server/analysis/analysis_domain.dart'; 7 import 'package:analysis_server/analysis/analysis_domain.dart';
8 import 'package:analysis_server/analysis/index/index_core.dart'; 8 import 'package:analysis_server/analysis/index/index_core.dart';
9 import 'package:analysis_server/analysis/navigation/navigation_core.dart'; 9 import 'package:analysis_server/analysis/navigation_core.dart';
10 import 'package:analysis_server/analysis/occurrences_core.dart';
10 import 'package:analysis_server/completion/completion_core.dart'; 11 import 'package:analysis_server/completion/completion_core.dart';
11 import 'package:analysis_server/edit/assist/assist_core.dart'; 12 import 'package:analysis_server/edit/assist/assist_core.dart';
12 import 'package:analysis_server/edit/fix/fix_core.dart'; 13 import 'package:analysis_server/edit/fix/fix_core.dart';
13 import 'package:analysis_server/plugin/analyzed_files.dart'; 14 import 'package:analysis_server/plugin/analyzed_files.dart';
14 import 'package:analysis_server/plugin/assist.dart'; 15 import 'package:analysis_server/plugin/assist.dart';
15 import 'package:analysis_server/plugin/fix.dart'; 16 import 'package:analysis_server/plugin/fix.dart';
16 import 'package:analysis_server/plugin/navigation.dart'; 17 import 'package:analysis_server/plugin/navigation.dart';
18 import 'package:analysis_server/plugin/occurrences.dart';
17 import 'package:analysis_server/src/analysis_server.dart'; 19 import 'package:analysis_server/src/analysis_server.dart';
18 import 'package:analysis_server/src/domain_analysis.dart'; 20 import 'package:analysis_server/src/domain_analysis.dart';
19 import 'package:analysis_server/src/domain_completion.dart'; 21 import 'package:analysis_server/src/domain_completion.dart';
20 import 'package:analysis_server/src/domain_execution.dart'; 22 import 'package:analysis_server/src/domain_execution.dart';
21 import 'package:analysis_server/src/domain_server.dart'; 23 import 'package:analysis_server/src/domain_server.dart';
22 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; 24 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart';
25 import 'package:analysis_server/src/domains/analysis/occurrences_dart.dart';
23 import 'package:analysis_server/src/edit/edit_domain.dart'; 26 import 'package:analysis_server/src/edit/edit_domain.dart';
24 import 'package:analysis_server/src/protocol.dart'; 27 import 'package:analysis_server/src/protocol.dart';
25 import 'package:analysis_server/src/search/search_domain.dart'; 28 import 'package:analysis_server/src/search/search_domain.dart';
26 import 'package:analysis_server/src/services/correction/assist_internal.dart'; 29 import 'package:analysis_server/src/services/correction/assist_internal.dart';
27 import 'package:analysis_server/src/services/correction/fix_internal.dart'; 30 import 'package:analysis_server/src/services/correction/fix_internal.dart';
28 import 'package:analyzer/file_system/file_system.dart'; 31 import 'package:analyzer/file_system/file_system.dart';
29 import 'package:analyzer/src/generated/engine.dart'; 32 import 'package:analyzer/src/generated/engine.dart';
30 import 'package:plugin/plugin.dart'; 33 import 'package:plugin/plugin.dart';
31 34
32 /** 35 /**
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 82
80 /** 83 /**
81 * The simple identifier of the extension point that allows plugins to 84 * The simple identifier of the extension point that allows plugins to
82 * register navigation contributors. 85 * register navigation contributors.
83 */ 86 */
84 static const String NAVIGATION_CONTRIBUTOR_EXTENSION_POINT = 87 static const String NAVIGATION_CONTRIBUTOR_EXTENSION_POINT =
85 'navigationContributor'; 88 'navigationContributor';
86 89
87 /** 90 /**
88 * The simple identifier of the extension point that allows plugins to 91 * The simple identifier of the extension point that allows plugins to
92 * register element occurrences.
93 */
94 static const String OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT =
95 'occurrencesContributor';
96
97 /**
98 * The simple identifier of the extension point that allows plugins to
89 * register analysis result listeners. 99 * register analysis result listeners.
90 */ 100 */
91 static const String SET_ANALISYS_DOMAIN_EXTENSION_POINT = 'setAnalysisDomain'; 101 static const String SET_ANALISYS_DOMAIN_EXTENSION_POINT = 'setAnalysisDomain';
92 102
93 /** 103 /**
94 * The unique identifier of this plugin. 104 * The unique identifier of this plugin.
95 */ 105 */
96 static const String UNIQUE_IDENTIFIER = 'analysis_server.core'; 106 static const String UNIQUE_IDENTIFIER = 'analysis_server.core';
97 107
98 /** 108 /**
(...skipping 24 matching lines...) Expand all
123 * the server. 133 * the server.
124 */ 134 */
125 ExtensionPoint fixContributorExtensionPoint; 135 ExtensionPoint fixContributorExtensionPoint;
126 136
127 /** 137 /**
128 * The extension point that allows plugins to register index contributors. 138 * The extension point that allows plugins to register index contributors.
129 */ 139 */
130 ExtensionPoint indexContributorExtensionPoint; 140 ExtensionPoint indexContributorExtensionPoint;
131 141
132 /** 142 /**
133 * The extension point that allows plugins to register navigation contributors . 143 * The extension point that allows plugins to register navigation
144 * contributors.
134 */ 145 */
135 ExtensionPoint navigationContributorExtensionPoint; 146 ExtensionPoint navigationContributorExtensionPoint;
136 147
137 /** 148 /**
149 * The extension point that allows plugins to register occurrences
150 * contributors.
151 */
152 ExtensionPoint occurrencesContributorExtensionPoint;
153
154 /**
138 * The extension point that allows plugins to get access to the `analysis` 155 * The extension point that allows plugins to get access to the `analysis`
139 * domain. 156 * domain.
140 */ 157 */
141 ExtensionPoint setAnalysisDomainExtensionPoint; 158 ExtensionPoint setAnalysisDomainExtensionPoint;
142 159
143 /** 160 /**
144 * Initialize a newly created plugin. 161 * Initialize a newly created plugin.
145 */ 162 */
146 ServerPlugin(); 163 ServerPlugin();
147 164
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 indexContributorExtensionPoint.extensions; 197 indexContributorExtensionPoint.extensions;
181 198
182 /** 199 /**
183 * Return a list containing all of the navigation contributors that were 200 * Return a list containing all of the navigation contributors that were
184 * contributed. 201 * contributed.
185 */ 202 */
186 List<NavigationContributor> get navigationContributors => 203 List<NavigationContributor> get navigationContributors =>
187 navigationContributorExtensionPoint.extensions; 204 navigationContributorExtensionPoint.extensions;
188 205
189 /** 206 /**
207 * Return a list containing all of the occurrences contributors that were
208 * contributed.
209 */
210 List<OccurrencesContributor> get occurrencesContributors =>
211 occurrencesContributorExtensionPoint.extensions;
212
213 /**
190 * Return a list containing all of the receivers of the `analysis` domain 214 * Return a list containing all of the receivers of the `analysis` domain
191 * instance. 215 * instance.
192 */ 216 */
193 List<SetAnalysisDomain> get setAnalysisDomainFunctions => 217 List<SetAnalysisDomain> get setAnalysisDomainFunctions =>
194 setAnalysisDomainExtensionPoint.extensions; 218 setAnalysisDomainExtensionPoint.extensions;
195 219
196 @override 220 @override
197 String get uniqueIdentifier => UNIQUE_IDENTIFIER; 221 String get uniqueIdentifier => UNIQUE_IDENTIFIER;
198 222
199 /** 223 /**
(...skipping 24 matching lines...) Expand all
224 _validateCompletionContributorExtension); 248 _validateCompletionContributorExtension);
225 domainExtensionPoint = registerExtensionPoint( 249 domainExtensionPoint = registerExtensionPoint(
226 DOMAIN_EXTENSION_POINT, _validateDomainExtension); 250 DOMAIN_EXTENSION_POINT, _validateDomainExtension);
227 fixContributorExtensionPoint = registerExtensionPoint( 251 fixContributorExtensionPoint = registerExtensionPoint(
228 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension); 252 FIX_CONTRIBUTOR_EXTENSION_POINT, _validateFixContributorExtension);
229 indexContributorExtensionPoint = registerExtensionPoint( 253 indexContributorExtensionPoint = registerExtensionPoint(
230 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension); 254 INDEX_CONTRIBUTOR_EXTENSION_POINT, _validateIndexContributorExtension);
231 navigationContributorExtensionPoint = registerExtensionPoint( 255 navigationContributorExtensionPoint = registerExtensionPoint(
232 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT, 256 NAVIGATION_CONTRIBUTOR_EXTENSION_POINT,
233 _validateNavigationContributorExtension); 257 _validateNavigationContributorExtension);
258 occurrencesContributorExtensionPoint = registerExtensionPoint(
259 OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT,
260 _validateOccurrencesContributorExtension);
234 } 261 }
235 262
236 @override 263 @override
237 void registerExtensions(RegisterExtension registerExtension) { 264 void registerExtensions(RegisterExtension registerExtension) {
238 // 265 //
239 // Register analyze file functions. 266 // Register analyze file functions.
240 // 267 //
241 registerExtension( 268 registerExtension(
242 ANALYZE_FILE_EXTENSION_POINT_ID, 269 ANALYZE_FILE_EXTENSION_POINT_ID,
243 (File file) => AnalysisEngine.isDartFileName(file.path) || 270 (File file) => AnalysisEngine.isDartFileName(file.path) ||
244 AnalysisEngine.isHtmlFileName(file.path)); 271 AnalysisEngine.isHtmlFileName(file.path));
245 // 272 //
246 // Register assist contributors. 273 // Register assist contributors.
247 // 274 //
248 registerExtension( 275 registerExtension(
249 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor()); 276 ASSIST_CONTRIBUTOR_EXTENSION_POINT_ID, new DefaultAssistContributor());
250 // 277 //
251 // Register completion contributors. 278 // Register completion contributors.
252 // 279 //
253 // TODO(brianwilkerson) Register the completion contributors. 280 // TODO(brianwilkerson) Register the completion contributors.
254 // registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???); 281 // registerExtension(COMPLETION_CONTRIBUTOR_EXTENSION_POINT_ID, ???);
255 // 282 //
256 // Register navigation contributors. 283 // Register analysis contributors.
257 // 284 //
258 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID, 285 registerExtension(NAVIGATION_CONTRIBUTOR_EXTENSION_POINT_ID,
259 new DartNavigationComputer()); 286 new DartNavigationComputer());
287 registerExtension(OCCURRENCES_CONTRIBUTOR_EXTENSION_POINT_ID,
288 new DartOccurrencesComputer());
260 // 289 //
261 // Register domains. 290 // Register domains.
262 // 291 //
263 String domainId = Plugin.join(UNIQUE_IDENTIFIER, DOMAIN_EXTENSION_POINT); 292 String domainId = Plugin.join(UNIQUE_IDENTIFIER, DOMAIN_EXTENSION_POINT);
264 registerExtension( 293 registerExtension(
265 domainId, (AnalysisServer server) => new ServerDomainHandler(server)); 294 domainId, (AnalysisServer server) => new ServerDomainHandler(server));
266 registerExtension( 295 registerExtension(
267 domainId, (AnalysisServer server) => new AnalysisDomainHandler(server)); 296 domainId, (AnalysisServer server) => new AnalysisDomainHandler(server));
268 registerExtension( 297 registerExtension(
269 domainId, (AnalysisServer server) => new EditDomainHandler(server)); 298 domainId, (AnalysisServer server) => new EditDomainHandler(server));
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 void _validateNavigationContributorExtension(Object extension) { 391 void _validateNavigationContributorExtension(Object extension) {
363 if (extension is! NavigationContributor) { 392 if (extension is! NavigationContributor) {
364 String id = navigationContributorExtensionPoint.uniqueIdentifier; 393 String id = navigationContributorExtensionPoint.uniqueIdentifier;
365 throw new ExtensionError( 394 throw new ExtensionError(
366 'Extensions to $id must be an NavigationContributor'); 395 'Extensions to $id must be an NavigationContributor');
367 } 396 }
368 } 397 }
369 398
370 /** 399 /**
371 * Validate the given extension by throwing an [ExtensionError] if it is not a 400 * Validate the given extension by throwing an [ExtensionError] if it is not a
401 * valid occurrences contributor.
402 */
403 void _validateOccurrencesContributorExtension(Object extension) {
404 if (extension is! OccurrencesContributor) {
405 String id = occurrencesContributorExtensionPoint.uniqueIdentifier;
406 throw new ExtensionError(
407 'Extensions to $id must be an OccurrencesContributor');
408 }
409 }
410
411 /**
412 * Validate the given extension by throwing an [ExtensionError] if it is not a
372 * valid analysis domain receiver. 413 * valid analysis domain receiver.
373 */ 414 */
374 void _validateSetAnalysisDomainFunction(Object extension) { 415 void _validateSetAnalysisDomainFunction(Object extension) {
375 if (extension is! SetAnalysisDomain) { 416 if (extension is! SetAnalysisDomain) {
376 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier; 417 String id = setAnalysisDomainExtensionPoint.uniqueIdentifier;
377 throw new ExtensionError( 418 throw new ExtensionError(
378 'Extensions to $id must be a SetAnalysisDomain function'); 419 'Extensions to $id must be a SetAnalysisDomain function');
379 } 420 }
380 } 421 }
381 } 422 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698