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

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

Issue 2972833002: Initial implementation of copy/paste support (Closed)
Patch Set: Created 3 years, 5 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'; 8 import 'package:analysis_server/plugin/analysis/analysis_domain.dart';
9 import 'package:analysis_server/protocol/protocol_constants.dart'; 9 import 'package:analysis_server/protocol/protocol_constants.dart';
10 import 'package:analysis_server/src/analysis_server.dart'; 10 import 'package:analysis_server/src/analysis_server.dart';
11 import 'package:analysis_server/src/computer/computer_hover.dart'; 11 import 'package:analysis_server/src/computer/computer_hover.dart';
12 import 'package:analysis_server/src/computer/imported_elements_computer.dart';
12 import 'package:analysis_server/src/domain_abstract.dart'; 13 import 'package:analysis_server/src/domain_abstract.dart';
13 import 'package:analysis_server/src/domains/analysis/navigation.dart'; 14 import 'package:analysis_server/src/domains/analysis/navigation.dart';
14 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart'; 15 import 'package:analysis_server/src/domains/analysis/navigation_dart.dart';
15 import 'package:analysis_server/src/plugin/plugin_manager.dart'; 16 import 'package:analysis_server/src/plugin/plugin_manager.dart';
16 import 'package:analysis_server/src/plugin/request_converter.dart'; 17 import 'package:analysis_server/src/plugin/request_converter.dart';
17 import 'package:analysis_server/src/plugin/result_merger.dart'; 18 import 'package:analysis_server/src/plugin/result_merger.dart';
18 import 'package:analysis_server/src/protocol/protocol_internal.dart'; 19 import 'package:analysis_server/src/protocol/protocol_internal.dart';
19 import 'package:analysis_server/src/protocol_server.dart'; 20 import 'package:analysis_server/src/protocol_server.dart';
20 import 'package:analyzer/dart/ast/ast.dart'; 21 import 'package:analyzer/dart/ast/ast.dart';
21 import 'package:analyzer/error/error.dart' as engine; 22 import 'package:analyzer/error/error.dart' as engine;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 hovers.add(hoverInformation); 94 hovers.add(hoverInformation);
94 } 95 }
95 } 96 }
96 97
97 // Send the response. 98 // Send the response.
98 server.sendResponse( 99 server.sendResponse(
99 new AnalysisGetHoverResult(hovers).toResponse(request.id)); 100 new AnalysisGetHoverResult(hovers).toResponse(request.id));
100 } 101 }
101 102
102 /** 103 /**
104 * Implement the `analysis.getImportedElements` request.
105 */
106 Future<Null> getImportedElements(Request request) async {
107 AnalysisGetImportedElementsParams params =
108 new AnalysisGetImportedElementsParams.fromRequest(request);
109 //
110 // Prepare the resolved unit.
111 //
112 AnalysisResult result = await server.getAnalysisResult(params.file);
113 if (result == null) {
114 server.sendResponse(new Response.getImportedElementsInvalidFile(request));
115 }
116 //
117 // Compute the list of imported elements.
118 //
119 List<ImportedElements> elements =
120 new ImportedElementsComputer(result.unit, params.offset, params.length)
121 .compute();
122 //
123 // Send the response.
124 //
125 server.sendResponse(
126 new AnalysisGetImportedElementsResult(elements).toResponse(request.id));
127 }
128
129 /**
103 * Implement the `analysis.getLibraryDependencies` request. 130 * Implement the `analysis.getLibraryDependencies` request.
104 */ 131 */
105 Response getLibraryDependencies(Request request) { 132 Response getLibraryDependencies(Request request) {
106 return new Response.unsupportedFeature(request.id, 133 return new Response.unsupportedFeature(request.id,
107 'Please contact the Dart analyzer team if you need this request.'); 134 'Please contact the Dart analyzer team if you need this request.');
108 // server.onAnalysisComplete.then((_) { 135 // server.onAnalysisComplete.then((_) {
109 // LibraryDependencyCollector collector = 136 // LibraryDependencyCollector collector =
110 // new LibraryDependencyCollector(server.analysisContexts); 137 // new LibraryDependencyCollector(server.analysisContexts);
111 // Set<String> libraries = collector.collectLibraryDependencies(); 138 // Set<String> libraries = collector.collectLibraryDependencies();
112 // Map<String, Map<String, List<String>>> packageMap = 139 // Map<String, Map<String, List<String>>> packageMap =
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 @override 236 @override
210 Response handleRequest(Request request) { 237 Response handleRequest(Request request) {
211 try { 238 try {
212 String requestName = request.method; 239 String requestName = request.method;
213 if (requestName == ANALYSIS_REQUEST_GET_ERRORS) { 240 if (requestName == ANALYSIS_REQUEST_GET_ERRORS) {
214 getErrors(request); 241 getErrors(request);
215 return Response.DELAYED_RESPONSE; 242 return Response.DELAYED_RESPONSE;
216 } else if (requestName == ANALYSIS_REQUEST_GET_HOVER) { 243 } else if (requestName == ANALYSIS_REQUEST_GET_HOVER) {
217 getHover(request); 244 getHover(request);
218 return Response.DELAYED_RESPONSE; 245 return Response.DELAYED_RESPONSE;
246 } else if (requestName == ANALYSIS_REQUEST_GET_IMPORTED_ELEMENTS) {
247 getImportedElements(request);
248 return Response.DELAYED_RESPONSE;
219 } else if (requestName == ANALYSIS_REQUEST_GET_LIBRARY_DEPENDENCIES) { 249 } else if (requestName == ANALYSIS_REQUEST_GET_LIBRARY_DEPENDENCIES) {
220 return getLibraryDependencies(request); 250 return getLibraryDependencies(request);
221 } else if (requestName == ANALYSIS_REQUEST_GET_NAVIGATION) { 251 } else if (requestName == ANALYSIS_REQUEST_GET_NAVIGATION) {
222 getNavigation(request); 252 getNavigation(request);
223 return Response.DELAYED_RESPONSE; 253 return Response.DELAYED_RESPONSE;
224 } else if (requestName == ANALYSIS_REQUEST_GET_REACHABLE_SOURCES) { 254 } else if (requestName == ANALYSIS_REQUEST_GET_REACHABLE_SOURCES) {
225 return getReachableSources(request); 255 return getReachableSources(request);
226 } else if (requestName == ANALYSIS_REQUEST_REANALYZE) { 256 } else if (requestName == ANALYSIS_REQUEST_REANALYZE) {
227 return reanalyze(request); 257 return reanalyze(request);
228 } else if (requestName == ANALYSIS_REQUEST_SET_ANALYSIS_ROOTS) { 258 } else if (requestName == ANALYSIS_REQUEST_SET_ANALYSIS_ROOTS) {
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 460
431 AnalysisDomainImpl(this.server) { 461 AnalysisDomainImpl(this.server) {
432 // TODO(brianwilkerson) The onContextsChanged stream is no longer written to . 462 // TODO(brianwilkerson) The onContextsChanged stream is no longer written to .
433 // Figure out whether this code still needs to be here and convert it to use 463 // Figure out whether this code still needs to be here and convert it to use
434 // the analysis driver if it does. 464 // the analysis driver if it does.
435 // server.onContextsChanged.listen((ContextsChangedEvent event) { 465 // server.onContextsChanged.listen((ContextsChangedEvent event) {
436 // event.added.forEach(_subscribeForContext); 466 // event.added.forEach(_subscribeForContext);
437 // }); 467 // });
438 } 468 }
439 } 469 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698