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

Side by Side Diff: pkg/analysis_server/lib/src/edit/edit_domain.dart

Issue 1073383002: Create a public API for contributing assists and make assists pluggable (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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/edit/assist/assist_core.dart';
9 import 'package:analysis_server/edit/fix/fix_core.dart'; 10 import 'package:analysis_server/edit/fix/fix_core.dart';
10 import 'package:analysis_server/src/analysis_server.dart'; 11 import 'package:analysis_server/src/analysis_server.dart';
11 import 'package:analysis_server/src/collections.dart'; 12 import 'package:analysis_server/src/collections.dart';
12 import 'package:analysis_server/src/constants.dart'; 13 import 'package:analysis_server/src/constants.dart';
13 import 'package:analysis_server/src/plugin/server_plugin.dart'; 14 import 'package:analysis_server/src/plugin/server_plugin.dart';
14 import 'package:analysis_server/src/protocol_server.dart' hide Element; 15 import 'package:analysis_server/src/protocol_server.dart' hide Element;
15 import 'package:analysis_server/src/services/correction/assist.dart'; 16 import 'package:analysis_server/src/services/correction/assist.dart';
16 import 'package:analysis_server/src/services/correction/fix.dart'; 17 import 'package:analysis_server/src/services/correction/fix.dart';
17 import 'package:analysis_server/src/services/correction/sort_members.dart'; 18 import 'package:analysis_server/src/services/correction/sort_members.dart';
18 import 'package:analysis_server/src/services/correction/status.dart'; 19 import 'package:analysis_server/src/services/correction/status.dart';
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 formattedResult.selectionLength).toResponse(request.id); 114 formattedResult.selectionLength).toResponse(request.id);
114 } 115 }
115 116
116 Response getAssists(Request request) { 117 Response getAssists(Request request) {
117 var params = new EditGetAssistsParams.fromRequest(request); 118 var params = new EditGetAssistsParams.fromRequest(request);
118 List<SourceChange> changes = <SourceChange>[]; 119 List<SourceChange> changes = <SourceChange>[];
119 List<CompilationUnit> units = 120 List<CompilationUnit> units =
120 server.getResolvedCompilationUnits(params.file); 121 server.getResolvedCompilationUnits(params.file);
121 if (units.isNotEmpty) { 122 if (units.isNotEmpty) {
122 CompilationUnit unit = units[0]; 123 CompilationUnit unit = units[0];
123 List<Assist> assists = computeAssists(unit, params.offset, params.length); 124 CompilationUnitElement element = unit.element;
scheglov 2015/04/11 00:25:01 If we don't actually use CompilationUnit here (and
Brian Wilkerson 2015/04/13 15:17:58 I've made the change here, we can clean up getFixe
125 List<Assist> assists = computeAssists(plugin, element.context,
126 element.source, params.offset, params.length);
124 assists.forEach((Assist assist) { 127 assists.forEach((Assist assist) {
125 changes.add(assist.change); 128 changes.add(assist.change);
126 }); 129 });
127 } 130 }
128 // respond 131 // respond
129 return new EditGetAssistsResult(changes).toResponse(request.id); 132 return new EditGetAssistsResult(changes).toResponse(request.id);
130 } 133 }
131 134
132 Response getFixes(Request request) { 135 Response getFixes(Request request) {
133 var params = new EditGetFixesParams.fromRequest(request); 136 var params = new EditGetFixesParams.fromRequest(request);
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 } 635 }
633 if (refactoring is RenameRefactoring) { 636 if (refactoring is RenameRefactoring) {
634 RenameRefactoring renameRefactoring = refactoring; 637 RenameRefactoring renameRefactoring = refactoring;
635 RenameOptions renameOptions = params.options; 638 RenameOptions renameOptions = params.options;
636 renameRefactoring.newName = renameOptions.newName; 639 renameRefactoring.newName = renameOptions.newName;
637 return renameRefactoring.checkNewName(); 640 return renameRefactoring.checkNewName();
638 } 641 }
639 return new RefactoringStatus(); 642 return new RefactoringStatus();
640 } 643 }
641 } 644 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698