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

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

Issue 2554113003: Implement 'Import Library' Quick Fix for project libraries using TopLevelDeclarationInSource. (Closed)
Patch Set: Created 4 years 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 library edit.domain; 5 library edit.domain;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart';
10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart'; 10 import 'package:analysis_server/plugin/edit/assist/assist_dart.dart';
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 List<AnalysisErrorFixes> errorFixesList = <AnalysisErrorFixes>[]; 181 List<AnalysisErrorFixes> errorFixesList = <AnalysisErrorFixes>[];
182 if (server.options.enableNewAnalysisDriver) { 182 if (server.options.enableNewAnalysisDriver) {
183 AnalysisResult result = await server.getAnalysisResult(file); 183 AnalysisResult result = await server.getAnalysisResult(file);
184 if (result != null) { 184 if (result != null) {
185 CompilationUnit unit = result.unit; 185 CompilationUnit unit = result.unit;
186 LineInfo lineInfo = result.lineInfo; 186 LineInfo lineInfo = result.lineInfo;
187 int requestLine = lineInfo.getLocation(offset).lineNumber; 187 int requestLine = lineInfo.getLocation(offset).lineNumber;
188 for (engine.AnalysisError error in result.errors) { 188 for (engine.AnalysisError error in result.errors) {
189 int errorLine = lineInfo.getLocation(error.offset).lineNumber; 189 int errorLine = lineInfo.getLocation(error.offset).lineNumber;
190 if (errorLine == requestLine) { 190 if (errorLine == requestLine) {
191 var context = new _DartFixContextImpl( 191 var context = new _DartFixContextImpl(server.resourceProvider,
192 server.resourceProvider, unit.element.context, unit, error); 192 (String name) async {
193 // TODO(scheglov) implement for the new driver
194 return [];
195 }, unit.element.context, unit, error);
193 List<Fix> fixes = 196 List<Fix> fixes =
194 await new DefaultFixContributor().internalComputeFixes(context); 197 await new DefaultFixContributor().internalComputeFixes(context);
195 if (fixes.isNotEmpty) { 198 if (fixes.isNotEmpty) {
196 AnalysisError serverError = 199 AnalysisError serverError =
197 newAnalysisError_fromEngine(lineInfo, error); 200 newAnalysisError_fromEngine(lineInfo, error);
198 AnalysisErrorFixes errorFixes = 201 AnalysisErrorFixes errorFixes =
199 new AnalysisErrorFixes(serverError); 202 new AnalysisErrorFixes(serverError);
200 errorFixesList.add(errorFixes); 203 errorFixesList.add(errorFixes);
201 fixes.forEach((fix) { 204 fixes.forEach((fix) {
202 errorFixes.fixes.add(fix.change); 205 errorFixes.fixes.add(fix.change);
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 } 493 }
491 494
492 /** 495 /**
493 * And implementation of [DartFixContext]. 496 * And implementation of [DartFixContext].
494 */ 497 */
495 class _DartFixContextImpl implements DartFixContext { 498 class _DartFixContextImpl implements DartFixContext {
496 @override 499 @override
497 final ResourceProvider resourceProvider; 500 final ResourceProvider resourceProvider;
498 501
499 @override 502 @override
503 final GetTopLevelDeclarations getTopLevelDeclarations;
504
505 @override
500 final engine.AnalysisContext analysisContext; 506 final engine.AnalysisContext analysisContext;
501 507
502 @override 508 @override
503 final CompilationUnit unit; 509 final CompilationUnit unit;
504 510
505 @override 511 @override
506 final engine.AnalysisError error; 512 final engine.AnalysisError error;
507 513
508 _DartFixContextImpl( 514 _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations,
509 this.resourceProvider, this.analysisContext, this.unit, this.error); 515 this.analysisContext, this.unit, this.error);
510 } 516 }
511 517
512 /** 518 /**
513 * An object managing a single [Refactoring] instance. 519 * An object managing a single [Refactoring] instance.
514 * 520 *
515 * The instance is identified by its kind, file, offset and length. 521 * The instance is identified by its kind, file, offset and length.
516 * It is initialized when the a set of parameters is given for the first time. 522 * It is initialized when the a set of parameters is given for the first time.
517 * All subsequent requests are performed on this [Refactoring] instance. 523 * All subsequent requests are performed on this [Refactoring] instance.
518 * 524 *
519 * Once new set of parameters is received, the previous [Refactoring] instance 525 * Once new set of parameters is received, the previous [Refactoring] instance
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 } 959 }
954 return new RefactoringStatus(); 960 return new RefactoringStatus();
955 } 961 }
956 } 962 }
957 963
958 /** 964 /**
959 * [_RefactoringManager] throws instances of this class internally to stop 965 * [_RefactoringManager] throws instances of this class internally to stop
960 * processing in a manager that was reset. 966 * processing in a manager that was reset.
961 */ 967 */
962 class _ResetError {} 968 class _ResetError {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698