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

Side by Side Diff: pkg/analysis_server/lib/src/domain_analysis.dart

Issue 3001413002: Remove uses of the old plugin model from the analysis server (Closed)
Patch Set: Created 3 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) 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 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:core'; 6 import 'dart:core';
7 7
8 import 'package:analysis_server/plugin/analysis/analysis_domain.dart';
9 import 'package:analysis_server/protocol/protocol_constants.dart'; 8 import 'package:analysis_server/protocol/protocol_constants.dart';
10 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
11 import 'package:analysis_server/src/computer/computer_hover.dart'; 10 import 'package:analysis_server/src/computer/computer_hover.dart';
12 import 'package:analysis_server/src/computer/imported_elements_computer.dart'; 11 import 'package:analysis_server/src/computer/imported_elements_computer.dart';
13 import 'package:analysis_server/src/domain_abstract.dart'; 12 import 'package:analysis_server/src/domain_abstract.dart';
14 import 'package:analysis_server/src/domains/analysis/navigation.dart'; 13 import 'package:analysis_server/src/domains/analysis/navigation.dart';
15 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; 14 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart';
16 import 'package:analysis_server/src/plugin/plugin_manager.dart'; 15 import 'package:analysis_server/src/plugin/plugin_manager.dart';
17 import 'package:analysis_server/src/plugin/request_converter.dart'; 16 import 'package:analysis_server/src/plugin/request_converter.dart';
18 import 'package:analysis_server/src/plugin/result_merger.dart'; 17 import 'package:analysis_server/src/plugin/result_merger.dart';
19 import 'package:analysis_server/src/protocol/protocol_internal.dart'; 18 import 'package:analysis_server/src/protocol/protocol_internal.dart';
20 import 'package:analysis_server/src/protocol_server.dart'; 19 import 'package:analysis_server/src/protocol_server.dart';
21 import 'package:analyzer/dart/ast/ast.dart'; 20 import 'package:analyzer/dart/ast/ast.dart';
22 import 'package:analyzer/error/error.dart' as engine; 21 import 'package:analyzer/error/error.dart' as engine;
23 import 'package:analyzer/exception/exception.dart';
24 import 'package:analyzer/file_system/file_system.dart'; 22 import 'package:analyzer/file_system/file_system.dart';
25 import 'package:analyzer/src/dart/analysis/driver.dart'; 23 import 'package:analyzer/src/dart/analysis/driver.dart';
26 import 'package:analyzer/src/generated/engine.dart' as engine; 24 import 'package:analyzer/src/generated/engine.dart' as engine;
27 import 'package:analyzer/src/generated/source.dart'; 25 import 'package:analyzer/src/generated/source.dart';
28 import 'package:analyzer/task/model.dart' show ResultDescriptor;
29 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin; 26 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
30 import 'package:analyzer_plugin/protocol/protocol_common.dart'; 27 import 'package:analyzer_plugin/protocol/protocol_common.dart';
31 import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin; 28 import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
32 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; 29 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
33 30
34 /** 31 /**
35 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler] 32 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler]
36 * that handles requests in the `analysis` domain. 33 * that handles requests in the `analysis` domain.
37 */ 34 */
38 class AnalysisDomainHandler extends AbstractRequestHandler { 35 class AnalysisDomainHandler extends AbstractRequestHandler {
39 /** 36 /**
40 * Initialize a newly created handler to handle requests for the given [server ]. 37 * Initialize a newly created handler to handle requests for the given [server ].
41 */ 38 */
42 AnalysisDomainHandler(AnalysisServer server) : super(server) { 39 AnalysisDomainHandler(AnalysisServer server) : super(server);
43 _callAnalysisDomainReceivers();
44 }
45 40
46 /** 41 /**
47 * Implement the `analysis.getErrors` request. 42 * Implement the `analysis.getErrors` request.
48 */ 43 */
49 Future<Null> getErrors(Request request) async { 44 Future<Null> getErrors(Request request) async {
50 String file = new AnalysisGetErrorsParams.fromRequest(request).file; 45 String file = new AnalysisGetErrorsParams.fromRequest(request).file;
51 46
52 void send(engine.AnalysisOptions analysisOptions, LineInfo lineInfo, 47 void send(engine.AnalysisOptions analysisOptions, LineInfo lineInfo,
53 List<engine.AnalysisError> errors) { 48 List<engine.AnalysisError> errors) {
54 if (lineInfo == null) { 49 if (lineInfo == null) {
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 }); 422 });
428 } 423 }
429 if (newOptions.enableSuperMixins != null) { 424 if (newOptions.enableSuperMixins != null) {
430 updaters.add((engine.AnalysisOptionsImpl options) { 425 updaters.add((engine.AnalysisOptionsImpl options) {
431 options.enableSuperMixins = newOptions.enableSuperMixins; 426 options.enableSuperMixins = newOptions.enableSuperMixins;
432 }); 427 });
433 } 428 }
434 server.updateOptions(updaters); 429 server.updateOptions(updaters);
435 return new AnalysisUpdateOptionsResult().toResponse(request.id); 430 return new AnalysisUpdateOptionsResult().toResponse(request.id);
436 } 431 }
437
438 /**
439 * Call all the registered [SetAnalysisDomain] functions.
440 */
441 void _callAnalysisDomainReceivers() {
442 AnalysisDomain analysisDomain = new AnalysisDomainImpl(server);
443 for (SetAnalysisDomain function
444 in server.serverPlugin.setAnalysisDomainFunctions) {
445 try {
446 function(analysisDomain);
447 } catch (exception, stackTrace) {
448 engine.AnalysisEngine.instance.logger.logError(
449 'Exception from analysis domain receiver: ${function.runtimeType}',
450 new CaughtException(exception, stackTrace));
451 }
452 }
453 }
454 } 432 }
455
456 /**
457 * An implementation of [AnalysisDomain] for [AnalysisServer].
458 */
459 class AnalysisDomainImpl implements AnalysisDomain {
460 final AnalysisServer server;
461
462 final Map<ResultDescriptor, StreamController<engine.ResultChangedEvent>>
463 controllers =
464 <ResultDescriptor, StreamController<engine.ResultChangedEvent>>{};
465
466 AnalysisDomainImpl(this.server) {
467 // TODO(brianwilkerson) The onContextsChanged stream is no longer written to .
468 // Figure out whether this code still needs to be here and convert it to use
469 // the analysis driver if it does.
470 // server.onContextsChanged.listen((ContextsChangedEvent event) {
471 // event.added.forEach(_subscribeForContext);
472 // });
473 }
474 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analysis_server/lib/src/domain_completion.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698