| OLD | NEW |
| 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/protocol.dart' hide Element; | 11 import 'package:analysis_server/src/protocol.dart' hide Element; |
| 12 import 'package:analysis_server/src/services/correction/assist.dart'; | 12 import 'package:analysis_server/src/services/correction/assist.dart'; |
| 13 import 'package:analysis_server/src/services/correction/fix.dart'; | 13 import 'package:analysis_server/src/services/correction/fix.dart'; |
| 14 import 'package:analysis_server/src/services/correction/status.dart'; | 14 import 'package:analysis_server/src/services/correction/status.dart'; |
| 15 import 'package:analysis_server/src/services/json.dart'; |
| 15 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 16 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
| 16 import 'package:analysis_server/src/services/search/search_engine.dart'; | 17 import 'package:analysis_server/src/services/search/search_engine.dart'; |
| 17 import 'package:analyzer/src/generated/ast.dart'; | 18 import 'package:analyzer/src/generated/ast.dart'; |
| 18 import 'package:analyzer/src/generated/element.dart'; | 19 import 'package:analyzer/src/generated/element.dart'; |
| 19 import 'package:analyzer/src/generated/engine.dart' as engine; | 20 import 'package:analyzer/src/generated/engine.dart' as engine; |
| 20 import 'package:analyzer/src/generated/error.dart' as engine; | 21 import 'package:analyzer/src/generated/error.dart' as engine; |
| 21 import 'package:analyzer/src/generated/source.dart'; | 22 import 'package:analyzer/src/generated/source.dart'; |
| 22 | 23 |
| 23 | 24 |
| 24 /** | 25 /** |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 */ | 159 */ |
| 159 class _RefactoringManager { | 160 class _RefactoringManager { |
| 160 final AnalysisServer server; | 161 final AnalysisServer server; |
| 161 final SearchEngine searchEngine; | 162 final SearchEngine searchEngine; |
| 162 | 163 |
| 163 RefactoringKind kind; | 164 RefactoringKind kind; |
| 164 String file; | 165 String file; |
| 165 int offset; | 166 int offset; |
| 166 int length; | 167 int length; |
| 167 Refactoring refactoring; | 168 Refactoring refactoring; |
| 168 Object feedback; | 169 HasToJson feedback; |
| 169 RefactoringStatus initStatus; | 170 RefactoringStatus initStatus; |
| 170 RefactoringStatus optionsStatus; | 171 RefactoringStatus optionsStatus; |
| 171 RefactoringStatus finalStatus; | 172 RefactoringStatus finalStatus; |
| 172 | 173 |
| 173 String requestId; | 174 String requestId; |
| 174 EditGetRefactoringResult result; | 175 EditGetRefactoringResult result; |
| 175 | 176 |
| 176 _RefactoringManager(this.server, this.searchEngine) { | 177 _RefactoringManager(this.server, this.searchEngine) { |
| 177 _reset(); | 178 _reset(); |
| 178 } | 179 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 190 // process the request | 191 // process the request |
| 191 var params = new EditGetRefactoringParams.fromRequest(request); | 192 var params = new EditGetRefactoringParams.fromRequest(request); |
| 192 _init(params.kind, params.file, params.offset, params.length).then((_) { | 193 _init(params.kind, params.file, params.offset, params.length).then((_) { |
| 193 if (_hasFatalError) { | 194 if (_hasFatalError) { |
| 194 return _sendResultResponse(); | 195 return _sendResultResponse(); |
| 195 } | 196 } |
| 196 // set options | 197 // set options |
| 197 if (params.options == null) { | 198 if (params.options == null) { |
| 198 return _sendResultResponse(); | 199 return _sendResultResponse(); |
| 199 } | 200 } |
| 200 optionsStatus = _setOptions(params.options); | 201 optionsStatus = _setOptions(params, request); |
| 201 if (_hasFatalError) { | 202 if (_hasFatalError) { |
| 202 return _sendResultResponse(); | 203 return _sendResultResponse(); |
| 203 } | 204 } |
| 204 // done if just validation | 205 // done if just validation |
| 205 if (params.validateOnly) { | 206 if (params.validateOnly) { |
| 206 return _sendResultResponse(); | 207 return _sendResultResponse(); |
| 207 } | 208 } |
| 208 // validation and create change | 209 // validation and create change |
| 209 refactoring.checkFinalConditions().then((_finalStatus) { | 210 refactoring.checkFinalConditions().then((_finalStatus) { |
| 210 finalStatus = _finalStatus; | 211 finalStatus = _finalStatus; |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 | 278 |
| 278 void _reset() { | 279 void _reset() { |
| 279 refactoring = null; | 280 refactoring = null; |
| 280 feedback = null; | 281 feedback = null; |
| 281 initStatus = new RefactoringStatus(); | 282 initStatus = new RefactoringStatus(); |
| 282 optionsStatus = new RefactoringStatus(); | 283 optionsStatus = new RefactoringStatus(); |
| 283 finalStatus = new RefactoringStatus(); | 284 finalStatus = new RefactoringStatus(); |
| 284 } | 285 } |
| 285 | 286 |
| 286 void _sendResultResponse() { | 287 void _sendResultResponse() { |
| 287 result.feedback = feedback; | 288 result.feedback = feedback.toJson(); |
| 288 // set problems | 289 // set problems |
| 289 { | 290 { |
| 290 RefactoringStatus status = new RefactoringStatus(); | 291 RefactoringStatus status = new RefactoringStatus(); |
| 291 status.addStatus(initStatus); | 292 status.addStatus(initStatus); |
| 292 status.addStatus(optionsStatus); | 293 status.addStatus(optionsStatus); |
| 293 status.addStatus(finalStatus); | 294 status.addStatus(finalStatus); |
| 294 result.problems = status.problems; | 295 result.problems = status.problems; |
| 295 } | 296 } |
| 296 // send the response | 297 // send the response |
| 297 server.sendResponse(result.toResponse(requestId)); | 298 server.sendResponse(result.toResponse(requestId)); |
| 298 // done with this request | 299 // done with this request |
| 299 requestId = null; | 300 requestId = null; |
| 300 result = null; | 301 result = null; |
| 301 } | 302 } |
| 302 | 303 |
| 303 RefactoringStatus _setOptions(Object options) { | 304 RefactoringStatus _setOptions(EditGetRefactoringParams params, |
| 305 Request request) { |
| 304 if (refactoring is ExtractLocalRefactoring) { | 306 if (refactoring is ExtractLocalRefactoring) { |
| 305 ExtractLocalRefactoring extractRefactoring = refactoring; | 307 ExtractLocalRefactoring extractRefactoring = refactoring; |
| 306 ExtractLocalVariableOptions extractOptions = options; | 308 ExtractLocalVariableOptions extractOptions = |
| 309 new ExtractLocalVariableOptions.fromRefactoringParams(params, request)
; |
| 307 extractRefactoring.name = extractOptions.name; | 310 extractRefactoring.name = extractOptions.name; |
| 308 extractRefactoring.extractAll = extractOptions.extractAll; | 311 extractRefactoring.extractAll = extractOptions.extractAll; |
| 309 return extractRefactoring.checkName(); | 312 return extractRefactoring.checkName(); |
| 310 } | 313 } |
| 311 if (refactoring is RenameRefactoring) { | 314 if (refactoring is RenameRefactoring) { |
| 312 RenameRefactoring renameRefactoring = refactoring; | 315 RenameRefactoring renameRefactoring = refactoring; |
| 313 RenameOptions renameOptions = options; | 316 RenameOptions renameOptions = |
| 317 new RenameOptions.fromRefactoringParams(params, request); |
| 314 renameRefactoring.newName = renameOptions.newName; | 318 renameRefactoring.newName = renameOptions.newName; |
| 315 return renameRefactoring.checkNewName(); | 319 return renameRefactoring.checkNewName(); |
| 316 } | 320 } |
| 317 return new RefactoringStatus(); | 321 return new RefactoringStatus(); |
| 318 } | 322 } |
| 319 } | 323 } |
| OLD | NEW |