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

Side by Side Diff: pkg/analysis_server/lib/src/edit/edit_domain.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 edit.domain; 5 library edit.domain;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
11 import 'package:analysis_server/src/edit/fix.dart';
12 import 'package:analysis_server/src/protocol.dart'; 11 import 'package:analysis_server/src/protocol.dart';
13 import 'package:analysis_server/src/protocol2.dart' as protocol show
14 LinkedEditGroup;
15 import 'package:analysis_server/src/protocol2.dart' show AnalysisError, 12 import 'package:analysis_server/src/protocol2.dart' show AnalysisError,
16 EditGetAssistsParams, EditGetAvailableRefactoringsParams, 13 EditGetAssistsParams, EditGetAssistsResult,
17 EditGetAvailableRefactoringsResult, EditGetFixesParams, 14 EditGetAvailableRefactoringsParams, EditGetAvailableRefactoringsResult,
18 EditGetRefactoringParams, EditGetRefactoringResult, LinkedEditGroup, Locatio n, 15 EditGetFixesParams, EditGetFixesResult, EditGetRefactoringParams,
19 RefactoringKind, RefactoringProblem, RefactoringProblemSeverity, RenameOptio ns, 16 EditGetRefactoringResult, ErrorFixes, LinkedEditGroup, Location,
20 SourceChange; 17 RefactoringKind, RefactoringProblem, RefactoringProblemSeverity,
18 RenameOptions, SourceChange;
21 import 'package:analysis_server/src/services/correction/assist.dart'; 19 import 'package:analysis_server/src/services/correction/assist.dart';
22 import 'package:analysis_server/src/services/correction/change.dart';
23 import 'package:analysis_server/src/services/correction/fix.dart'; 20 import 'package:analysis_server/src/services/correction/fix.dart';
24 import 'package:analysis_server/src/services/correction/status.dart'; 21 import 'package:analysis_server/src/services/correction/status.dart';
25 import 'package:analysis_server/src/services/json.dart';
26 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; 22 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
27 import 'package:analysis_server/src/services/search/search_engine.dart'; 23 import 'package:analysis_server/src/services/search/search_engine.dart';
28 import 'package:analyzer/src/generated/ast.dart'; 24 import 'package:analyzer/src/generated/ast.dart';
29 import 'package:analyzer/src/generated/element.dart'; 25 import 'package:analyzer/src/generated/element.dart';
30 import 'package:analyzer/src/generated/engine.dart' as engine; 26 import 'package:analyzer/src/generated/engine.dart' as engine;
31 import 'package:analyzer/src/generated/error.dart' as engine; 27 import 'package:analyzer/src/generated/error.dart' as engine;
32 import 'package:analyzer/src/generated/source.dart'; 28 import 'package:analyzer/src/generated/source.dart';
33 29
34 30
35 /** 31 /**
(...skipping 16 matching lines...) Expand all
52 /** 48 /**
53 * Initialize a newly created handler to handle requests for the given [server ]. 49 * Initialize a newly created handler to handle requests for the given [server ].
54 */ 50 */
55 EditDomainHandler(this.server) { 51 EditDomainHandler(this.server) {
56 searchEngine = server.searchEngine; 52 searchEngine = server.searchEngine;
57 refactoringManager = new _RefactoringManager(server, searchEngine); 53 refactoringManager = new _RefactoringManager(server, searchEngine);
58 } 54 }
59 55
60 Response getAssists(Request request) { 56 Response getAssists(Request request) {
61 var params = new EditGetAssistsParams.fromRequest(request); 57 var params = new EditGetAssistsParams.fromRequest(request);
62 List<Change> changes = <Change>[]; 58 List<SourceChange> changes = <SourceChange>[];
63 List<CompilationUnit> units = 59 List<CompilationUnit> units =
64 server.getResolvedCompilationUnits(params.file); 60 server.getResolvedCompilationUnits(params.file);
65 if (units.isNotEmpty) { 61 if (units.isNotEmpty) {
66 CompilationUnit unit = units[0]; 62 CompilationUnit unit = units[0];
67 List<Assist> assists = 63 List<Assist> assists =
68 computeAssists(searchEngine, unit, params.offset, params.length); 64 computeAssists(searchEngine, unit, params.offset, params.length);
69 assists.forEach((Assist assist) { 65 assists.forEach((Assist assist) {
70 changes.add(assist.change); 66 changes.add(assist.change);
71 }); 67 });
72 } 68 }
73 // respond 69 // respond
74 Response response = new Response(request.id); 70 return new EditGetAssistsResult(changes).toResponse(request.id);
75 response.setResult(ASSISTS, objectToJson(changes));
76 return response;
77 } 71 }
78 72
79 Response getAvailableRefactorings(Request request) { 73 Response getAvailableRefactorings(Request request) {
80 var params = new EditGetAvailableRefactoringsParams.fromRequest(request); 74 var params = new EditGetAvailableRefactoringsParams.fromRequest(request);
81 String file = params.file; 75 String file = params.file;
82 int offset = params.offset; 76 int offset = params.offset;
83 int length = params.length; 77 int length = params.length;
84 // add refactoring kinds 78 // add refactoring kinds
85 List<RefactoringKind> kinds = <RefactoringKind>[]; 79 List<RefactoringKind> kinds = <RefactoringKind>[];
86 // try EXTRACT_* 80 // try EXTRACT_*
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 errorFixesList.add(errorFixes); 121 errorFixesList.add(errorFixes);
128 fixes.forEach((fix) { 122 fixes.forEach((fix) {
129 errorFixes.addFix(fix); 123 errorFixes.addFix(fix);
130 }); 124 });
131 } 125 }
132 } 126 }
133 } 127 }
134 } 128 }
135 } 129 }
136 // respond 130 // respond
137 return new Response(request.id)..setResult(FIXES, errorFixesList); 131 return new EditGetFixesResult(errorFixesList).toResponse(request.id);
138 } 132 }
139 133
140 @override 134 @override
141 Response handleRequest(Request request) { 135 Response handleRequest(Request request) {
142 try { 136 try {
143 String requestName = request.method; 137 String requestName = request.method;
144 if (requestName == EDIT_GET_ASSISTS) { 138 if (requestName == EDIT_GET_ASSISTS) {
145 return getAssists(request); 139 return getAssists(request);
146 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) { 140 } else if (requestName == EDIT_GET_AVAILABLE_REFACTORINGS) {
147 return getAvailableRefactorings(request); 141 return getAvailableRefactorings(request);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 213 }
220 // validation and create change 214 // validation and create change
221 refactoring.checkFinalConditions().then((_finalStatus) { 215 refactoring.checkFinalConditions().then((_finalStatus) {
222 finalStatus = _finalStatus; 216 finalStatus = _finalStatus;
223 if (_hasFatalError) { 217 if (_hasFatalError) {
224 return _sendResultResponse(); 218 return _sendResultResponse();
225 } 219 }
226 return refactoring.createChange().then((change) { 220 return refactoring.createChange().then((change) {
227 result.change = new SourceChange( 221 result.change = new SourceChange(
228 change.message, 222 change.message,
229 change.fileEdits, 223 edits: change.edits);
230 <protocol.LinkedEditGroup>[]);
231 return _sendResultResponse(); 224 return _sendResultResponse();
232 }); 225 });
233 }); 226 });
234 }); 227 });
235 } 228 }
236 229
237 /** 230 /**
238 * Initializes this context to perform a refactoring with the specified 231 * Initializes this context to perform a refactoring with the specified
239 * parameters. The existing [Refactoring] is reused or created as needed. 232 * parameters. The existing [Refactoring] is reused or created as needed.
240 */ 233 */
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 if (refactoring is RenameRefactoring) { 293 if (refactoring is RenameRefactoring) {
301 RenameRefactoring renameRefactoring = refactoring; 294 RenameRefactoring renameRefactoring = refactoring;
302 RenameOptions renameOptions = options; 295 RenameOptions renameOptions = options;
303 String newName = renameOptions.newName; 296 String newName = renameOptions.newName;
304 renameRefactoring.newName = newName; 297 renameRefactoring.newName = newName;
305 return renameRefactoring.checkNewName(); 298 return renameRefactoring.checkNewName();
306 } 299 }
307 return new RefactoringStatus(); 300 return new RefactoringStatus();
308 } 301 }
309 } 302 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/domain_server.dart ('k') | pkg/analysis_server/lib/src/edit/fix.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698