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

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

Issue 497393002: Make more use of generated code in analysis server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | 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 domain.analysis; 5 library domain.analysis;
6 6
7 import 'package:analysis_server/src/analysis_server.dart'; 7 import 'package:analysis_server/src/analysis_server.dart';
8 import 'package:analysis_server/src/computer/computer_hover.dart'; 8 import 'package:analysis_server/src/computer/computer_hover.dart';
9 import 'package:analysis_server/src/computer/error.dart';
10 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
11 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
12 import 'package:analysis_server/src/protocol2.dart'; 11 import 'package:analysis_server/src/protocol2.dart';
13 import 'package:analyzer/src/generated/ast.dart'; 12 import 'package:analyzer/src/generated/ast.dart';
14 import 'package:analyzer/src/generated/engine.dart' as engine; 13 import 'package:analyzer/src/generated/engine.dart' as engine;
15 14
16 15
17 /** 16 /**
18 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler] 17 * Instances of the class [AnalysisDomainHandler] implement a [RequestHandler]
19 * that handles requests in the `analysis` domain. 18 * that handles requests in the `analysis` domain.
20 */ 19 */
21 class AnalysisDomainHandler implements RequestHandler { 20 class AnalysisDomainHandler implements RequestHandler {
22 /** 21 /**
23 * The analysis server that is using this handler to process requests. 22 * The analysis server that is using this handler to process requests.
24 */ 23 */
25 final AnalysisServer server; 24 final AnalysisServer server;
26 25
27 /** 26 /**
28 * Initialize a newly created handler to handle requests for the given [server ]. 27 * Initialize a newly created handler to handle requests for the given [server ].
29 */ 28 */
30 AnalysisDomainHandler(this.server); 29 AnalysisDomainHandler(this.server);
31 30
32 /** 31 /**
33 * Implement the `analysis.getErrors` request. 32 * Implement the `analysis.getErrors` request.
34 */ 33 */
35 Response getErrors(Request request) { 34 Response getErrors(Request request) {
36 String file = new AnalysisGetErrorsParams.fromRequest(request).file; 35 String file = new AnalysisGetErrorsParams.fromRequest(request).file;
37 server.onFileAnalysisComplete(file).then((_) { 36 server.onFileAnalysisComplete(file).then((_) {
38 Response response = new Response(request.id);
39 engine.AnalysisErrorInfo errorInfo = server.getErrors(file); 37 engine.AnalysisErrorInfo errorInfo = server.getErrors(file);
38 List<AnalysisError> errors;
40 if (errorInfo == null) { 39 if (errorInfo == null) {
41 response.setResult(ERRORS, []); 40 errors = [];
42 } else { 41 } else {
43 response.setResult(ERRORS, engineErrorInfoToJson(errorInfo)); 42 errors = AnalysisError.listFromEngine(errorInfo.lineInfo,
43 errorInfo.errors);
44 } 44 }
45 server.sendResponse(response); 45 server.sendResponse(new AnalysisGetErrorsResult(errors).toResponse(
46 request.id));
46 }).catchError((message) { 47 }).catchError((message) {
47 if (message is! String) { 48 if (message is! String) {
48 engine.AnalysisEngine.instance.logger.logError( 49 engine.AnalysisEngine.instance.logger.logError(
49 'Illegal error message during getErrors: $message'); 50 'Illegal error message during getErrors: $message');
50 message = ''; 51 message = '';
51 } 52 }
52 Response response = new Response.getErrorsError(request, message); 53 server.sendResponse(new Response.getErrorsError(request, message,
53 response.setResult(ERRORS, []); 54 new AnalysisGetErrorsResult([]).toJson()));
54 server.sendResponse(response);
55 }); 55 });
56 // delay response 56 // delay response
57 return Response.DELAYED_RESPONSE; 57 return Response.DELAYED_RESPONSE;
58 } 58 }
59 59
60 /** 60 /**
61 * Implement the `analysis.getHover` request. 61 * Implement the `analysis.getHover` request.
62 */ 62 */
63 Response getHover(Request request) { 63 Response getHover(Request request) {
64 // prepare parameters 64 // prepare parameters
65 var params = new AnalysisGetHoverParams.fromRequest(request); 65 var params = new AnalysisGetHoverParams.fromRequest(request);
66 // prepare hovers 66 // prepare hovers
67 List<Hover> hovers = <Hover>[]; 67 List<HoverInformation> hovers = <HoverInformation>[];
68 List<CompilationUnit> units = 68 List<CompilationUnit> units =
69 server.getResolvedCompilationUnits(params.file); 69 server.getResolvedCompilationUnits(params.file);
70 for (CompilationUnit unit in units) { 70 for (CompilationUnit unit in units) {
71 Hover hoverInformation = 71 HoverInformation hoverInformation =
72 new DartUnitHoverComputer(unit, params.offset).compute(); 72 new DartUnitHoverComputer(unit, params.offset).compute();
73 if (hoverInformation != null) { 73 if (hoverInformation != null) {
74 hovers.add(hoverInformation); 74 hovers.add(hoverInformation);
75 } 75 }
76 } 76 }
77 // send response 77 // send response
78 Response response = new Response(request.id); 78 return new AnalysisGetHoverResult(hovers).toResponse(request.id);
79 response.setResult(HOVERS, hovers);
80 return response;
81 } 79 }
82 80
83 @override 81 @override
84 Response handleRequest(Request request) { 82 Response handleRequest(Request request) {
85 try { 83 try {
86 String requestName = request.method; 84 String requestName = request.method;
87 if (requestName == ANALYSIS_GET_ERRORS) { 85 if (requestName == ANALYSIS_GET_ERRORS) {
88 return getErrors(request); 86 return getErrors(request);
89 } else if (requestName == ANALYSIS_GET_HOVER) { 87 } else if (requestName == ANALYSIS_GET_HOVER) {
90 return getHover(request); 88 return getHover(request);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 } 185 }
188 if (newOptions.generateHints != null) { 186 if (newOptions.generateHints != null) {
189 updaters.add((engine.AnalysisOptionsImpl options) { 187 updaters.add((engine.AnalysisOptionsImpl options) {
190 options.hint = newOptions.generateHints; 188 options.hint = newOptions.generateHints;
191 }); 189 });
192 } 190 }
193 server.updateOptions(updaters); 191 server.updateOptions(updaters);
194 return new Response(request.id); 192 return new Response(request.id);
195 } 193 }
196 } 194 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/computer/error.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