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

Side by Side Diff: pkg/analysis_server/lib/src/edit/edit_domain.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 6
7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; 7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart';
8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; 8 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart';
9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
11 import 'package:analysis_server/protocol/protocol_constants.dart'; 11 import 'package:analysis_server/protocol/protocol_constants.dart';
12 import 'package:analysis_server/src/analysis_server.dart'; 12 import 'package:analysis_server/src/analysis_server.dart';
13 import 'package:analysis_server/src/collections.dart'; 13 import 'package:analysis_server/src/collections.dart';
14 import 'package:analysis_server/src/computer/import_elements_computer.dart';
14 import 'package:analysis_server/src/domain_abstract.dart'; 15 import 'package:analysis_server/src/domain_abstract.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/result_converter.dart'; 17 import 'package:analysis_server/src/plugin/result_converter.dart';
17 import 'package:analysis_server/src/protocol_server.dart' hide Element; 18 import 'package:analysis_server/src/protocol_server.dart' hide Element;
18 import 'package:analysis_server/src/services/completion/postfix/postfix_completi on.dart'; 19 import 'package:analysis_server/src/services/completion/postfix/postfix_completi on.dart';
19 import 'package:analysis_server/src/services/completion/statement/statement_comp letion.dart'; 20 import 'package:analysis_server/src/services/completion/statement/statement_comp letion.dart';
20 import 'package:analysis_server/src/services/correction/assist_internal.dart'; 21 import 'package:analysis_server/src/services/correction/assist_internal.dart';
21 import 'package:analysis_server/src/services/correction/fix_internal.dart'; 22 import 'package:analysis_server/src/services/correction/fix_internal.dart';
22 import 'package:analysis_server/src/services/correction/organize_directives.dart '; 23 import 'package:analysis_server/src/services/correction/organize_directives.dart ';
23 import 'package:analysis_server/src/services/correction/sort_members.dart'; 24 import 'package:analysis_server/src/services/correction/sort_members.dart';
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 } else if (requestName == EDIT_REQUEST_GET_ASSISTS) { 344 } else if (requestName == EDIT_REQUEST_GET_ASSISTS) {
344 getAssists(request); 345 getAssists(request);
345 return Response.DELAYED_RESPONSE; 346 return Response.DELAYED_RESPONSE;
346 } else if (requestName == EDIT_REQUEST_GET_AVAILABLE_REFACTORINGS) { 347 } else if (requestName == EDIT_REQUEST_GET_AVAILABLE_REFACTORINGS) {
347 return _getAvailableRefactorings(request); 348 return _getAvailableRefactorings(request);
348 } else if (requestName == EDIT_REQUEST_GET_FIXES) { 349 } else if (requestName == EDIT_REQUEST_GET_FIXES) {
349 getFixes(request); 350 getFixes(request);
350 return Response.DELAYED_RESPONSE; 351 return Response.DELAYED_RESPONSE;
351 } else if (requestName == EDIT_REQUEST_GET_REFACTORING) { 352 } else if (requestName == EDIT_REQUEST_GET_REFACTORING) {
352 return _getRefactoring(request); 353 return _getRefactoring(request);
354 } else if (requestName == EDIT_REQUEST_IMPORT_ELEMENTS) {
355 importElements(request);
356 return Response.DELAYED_RESPONSE;
353 } else if (requestName == EDIT_REQUEST_ORGANIZE_DIRECTIVES) { 357 } else if (requestName == EDIT_REQUEST_ORGANIZE_DIRECTIVES) {
354 organizeDirectives(request); 358 organizeDirectives(request);
355 return Response.DELAYED_RESPONSE; 359 return Response.DELAYED_RESPONSE;
356 } else if (requestName == EDIT_REQUEST_SORT_MEMBERS) { 360 } else if (requestName == EDIT_REQUEST_SORT_MEMBERS) {
357 sortMembers(request); 361 sortMembers(request);
358 return Response.DELAYED_RESPONSE; 362 return Response.DELAYED_RESPONSE;
359 } else if (requestName == EDIT_REQUEST_GET_STATEMENT_COMPLETION) { 363 } else if (requestName == EDIT_REQUEST_GET_STATEMENT_COMPLETION) {
360 getStatementCompletion(request); 364 getStatementCompletion(request);
361 return Response.DELAYED_RESPONSE; 365 return Response.DELAYED_RESPONSE;
362 } else if (requestName == EDIT_REQUEST_IS_POSTFIX_COMPLETION_APPLICABLE) { 366 } else if (requestName == EDIT_REQUEST_IS_POSTFIX_COMPLETION_APPLICABLE) {
363 isPostfixCompletionApplicable(request); 367 isPostfixCompletionApplicable(request);
364 return Response.DELAYED_RESPONSE; 368 return Response.DELAYED_RESPONSE;
365 } else if (requestName == EDIT_REQUEST_GET_POSTFIX_COMPLETION) { 369 } else if (requestName == EDIT_REQUEST_GET_POSTFIX_COMPLETION) {
366 getPostfixCompletion(request); 370 getPostfixCompletion(request);
367 return Response.DELAYED_RESPONSE; 371 return Response.DELAYED_RESPONSE;
368 } else if (requestName == 372 } else if (requestName ==
369 EDIT_REQUEST_LIST_POSTFIX_COMPLETION_TEMPLATES) { 373 EDIT_REQUEST_LIST_POSTFIX_COMPLETION_TEMPLATES) {
370 listPostfixCompletionTemplates(request); 374 listPostfixCompletionTemplates(request);
371 return Response.DELAYED_RESPONSE; 375 return Response.DELAYED_RESPONSE;
372 } 376 }
373 } on RequestFailure catch (exception) { 377 } on RequestFailure catch (exception) {
374 return exception.response; 378 return exception.response;
375 } 379 }
376 return null; 380 return null;
377 } 381 }
378 382
383 /**
384 * Implement the `edit.importElements` request.
385 */
386 Future<Null> importElements(Request request) async {
387 EditImportElementsParams params =
388 new EditImportElementsParams.fromRequest(request);
389 //
390 // Prepare the resolved unit.
391 //
392 AnalysisResult result = await server.getAnalysisResult(params.file);
393 if (result == null) {
394 server.sendResponse(new Response.importElementsInvalidFile(request));
395 }
396 //
397 // Compute the edits required to import the required elements.
398 //
399 List<SourceEdit> edits =
400 new ImportElementsComputer(result, params.file, params.elements)
401 .compute();
402 //
403 // Send the response.
404 //
405 server.sendResponse(
406 new EditImportElementsResult(edits).toResponse(request.id));
407 }
408
379 Future isPostfixCompletionApplicable(Request request) async { 409 Future isPostfixCompletionApplicable(Request request) async {
380 var params = new EditGetPostfixCompletionParams.fromRequest(request); 410 var params = new EditGetPostfixCompletionParams.fromRequest(request);
381 bool value = false; 411 bool value = false;
382 412
383 AnalysisResult result = await server.getAnalysisResult(params.file); 413 AnalysisResult result = await server.getAnalysisResult(params.file);
384 if (result != null) { 414 if (result != null) {
385 CompilationUnit unit = result.unit; 415 CompilationUnit unit = result.unit;
386 CompilationUnitElement unitElement = 416 CompilationUnitElement unitElement =
387 resolutionMap.elementDeclaredByCompilationUnit(unit); 417 resolutionMap.elementDeclaredByCompilationUnit(unit);
388 if (unitElement.context != null) { 418 if (unitElement.context != null) {
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 } 1053 }
1024 return new RefactoringStatus(); 1054 return new RefactoringStatus();
1025 } 1055 }
1026 } 1056 }
1027 1057
1028 /** 1058 /**
1029 * [_RefactoringManager] throws instances of this class internally to stop 1059 * [_RefactoringManager] throws instances of this class internally to stop
1030 * processing in a manager that was reset. 1060 * processing in a manager that was reset.
1031 */ 1061 */
1032 class _ResetError {} 1062 class _ResetError {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698