Index: pkg/analysis_server/lib/src/edit/edit_domain.dart |
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart |
index 5395f194991c3e25047d871af00fc25a03320fa6..db4f40dd6cf0e99aeefddebbda39b048591edc00 100644 |
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart |
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart |
@@ -36,7 +36,6 @@ import 'package:analyzer/src/error/codes.dart' as engine; |
import 'package:analyzer/src/generated/engine.dart' as engine; |
import 'package:analyzer/src/generated/parser.dart' as engine; |
import 'package:analyzer/src/generated/source.dart'; |
-import 'package:analyzer/task/dart.dart'; |
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin; |
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin; |
import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; |
@@ -82,12 +81,8 @@ class EditDomainHandler extends AbstractRequestHandler { |
String unformattedSource; |
try { |
Source source = server.resourceProvider.getFile(file).createSource(); |
- if (server.options.enableNewAnalysisDriver) { |
- unformattedSource = server.fileContentOverlay[file]; |
- } else { |
- unformattedSource = server.overlayState.getContents(source); |
- } |
- unformattedSource ??= source.contents.data; |
+ unformattedSource = |
+ server.fileContentOverlay[file] ?? source.contents.data; |
} catch (e) { |
return new Response.formatInvalidFile(request); |
} |
@@ -345,37 +340,15 @@ class EditDomainHandler extends AbstractRequestHandler { |
return; |
} |
// Prepare the file information. |
- int fileStamp; |
- String code; |
- CompilationUnit unit; |
- List<engine.AnalysisError> errors; |
- if (server.options.enableNewAnalysisDriver) { |
- AnalysisResult result = await server.getAnalysisResult(file); |
- if (result == null) { |
- server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
- return; |
- } |
- fileStamp = -1; |
- code = result.content; |
- unit = result.unit; |
- errors = result.errors; |
- } else { |
- // prepare resolved unit |
- unit = await server.getResolvedCompilationUnit(file); |
- if (unit == null) { |
- server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
- return; |
- } |
- // prepare context |
- CompilationUnitElement compilationUnitElement = |
- resolutionMap.elementDeclaredByCompilationUnit(unit); |
- engine.AnalysisContext context = compilationUnitElement.context; |
- Source source = compilationUnitElement.source; |
- errors = context.computeErrors(source); |
- // prepare code |
- fileStamp = context.getModificationStamp(source); |
- code = context.getContents(source).data; |
+ AnalysisResult result = await server.getAnalysisResult(file); |
+ if (result == null) { |
+ server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
+ return; |
} |
+ int fileStamp = -1; |
+ String code = result.content; |
+ CompilationUnit unit = result.unit; |
+ List<engine.AnalysisError> errors = result.errors; |
// check if there are scan/parse errors in the file |
int numScanParseErrors = _getNumberOfScanParseErrors(errors); |
if (numScanParseErrors != 0) { |
@@ -400,43 +373,16 @@ class EditDomainHandler extends AbstractRequestHandler { |
return; |
} |
// Prepare the file information. |
- int fileStamp; |
- String code; |
- CompilationUnit unit; |
- List<engine.AnalysisError> errors; |
- if (server.options.enableNewAnalysisDriver) { |
- AnalysisDriver driver = server.getAnalysisDriver(file); |
- ParseResult result = await driver?.parseFile(file); |
- if (result == null) { |
- server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
- return; |
- } |
- fileStamp = -1; |
- code = result.content; |
- unit = result.unit; |
- errors = result.errors; |
- } else { |
- // prepare location |
- ContextSourcePair contextSource = server.getContextSourcePair(file); |
- engine.AnalysisContext context = contextSource.context; |
- Source source = contextSource.source; |
- if (context == null || source == null) { |
- server.sendResponse(new Response.sortMembersInvalidFile(request)); |
- return; |
- } |
- // prepare code |
- fileStamp = context.getModificationStamp(source); |
- code = context.getContents(source).data; |
- // prepare parsed unit |
- try { |
- unit = context.parseCompilationUnit(source); |
- } catch (e) { |
- server.sendResponse(new Response.sortMembersInvalidFile(request)); |
- return; |
- } |
- // Get the errors. |
- errors = context.getErrors(source).errors; |
+ AnalysisDriver driver = server.getAnalysisDriver(file); |
+ ParseResult result = await driver?.parseFile(file); |
+ if (result == null) { |
+ server.sendResponse(new Response.fileNotAnalyzed(request, file)); |
+ return; |
} |
+ int fileStamp = -1; |
+ String code = result.content; |
+ CompilationUnit unit = result.unit; |
+ List<engine.AnalysisError> errors = result.errors; |
// Check if there are scan/parse errors in the file. |
int numScanParseErrors = _getNumberOfScanParseErrors(errors); |
if (numScanParseErrors != 0) { |
@@ -713,32 +659,6 @@ class _RefactoringManager { |
}); |
} |
- /** |
- * Perform enough analysis to be able to perform refactoring of the given |
- * [kind] in the given [file]. |
- */ |
- Future<Null> _analyzeForRefactoring(String file, RefactoringKind kind) async { |
- if (server.options.enableNewAnalysisDriver) { |
- return; |
- } |
- // "Extract Local" and "Inline Local" refactorings need only local analysis. |
- if (kind == RefactoringKind.EXTRACT_LOCAL_VARIABLE || |
- kind == RefactoringKind.INLINE_LOCAL_VARIABLE) { |
- ContextSourcePair pair = server.getContextSourcePair(file); |
- engine.AnalysisContext context = pair.context; |
- Source source = pair.source; |
- if (context != null && source != null) { |
- if (context.computeResult(source, SOURCE_KIND) == SourceKind.LIBRARY) { |
- await context.computeResolvedCompilationUnitAsync(source, source); |
- return; |
- } |
- } |
- } |
- // A refactoring for which we cannot optimize analysis. |
- // So, wait for full analysis. |
- await server.onAnalysisComplete; |
- } |
- |
void _checkForReset_afterCreateChange() { |
if (test_simulateRefactoringReset_afterCreateChange) { |
_reset(); |
@@ -772,7 +692,6 @@ class _RefactoringManager { |
*/ |
Future _init( |
RefactoringKind kind, String file, int offset, int length) async { |
- await _analyzeForRefactoring(file, kind); |
// check if we can continue with the existing Refactoring instance |
if (this.kind == kind && |
this.file == file && |
@@ -848,12 +767,13 @@ class _RefactoringManager { |
} |
} |
if (kind == RefactoringKind.MOVE_FILE) { |
- _resetOnAnalysisStarted(); |
- ContextSourcePair contextSource = server.getContextSourcePair(file); |
- engine.AnalysisContext context = contextSource.context; |
- Source source = contextSource.source; |
- refactoring = new MoveFileRefactoring( |
- server.resourceProvider, searchEngine, context, source, file); |
+ // TODO(brianwilkerson) Re-implement this refactoring under the new analysis driver |
+// _resetOnAnalysisStarted(); |
+// ContextSourcePair contextSource = server.getContextSourcePair(file); |
+// engine.AnalysisContext context = contextSource.context; |
+// Source source = contextSource.source; |
+// refactoring = new MoveFileRefactoring( |
+// server.resourceProvider, searchEngine, context, source, file); |
} |
if (kind == RefactoringKind.RENAME) { |
AstNode node = await server.getNodeAtOffset(file, offset); |
@@ -953,19 +873,9 @@ class _RefactoringManager { |
* But when any other file is changed or analyzed, we can continue. |
*/ |
void _resetOnFileResolutionChanged(String file) { |
- if (server.options.enableNewAnalysisDriver) { |
- return; |
- } |
- subscriptionToReset?.cancel(); |
- subscriptionToReset = server |
- .getAnalysisContext(file) |
- ?.onResultChanged(RESOLVED_UNIT) |
- ?.listen((event) { |
- Source targetSource = event.target.source; |
- if (targetSource?.fullName == file) { |
- _reset(); |
- } |
- }); |
+ // TODO(brianwilkerson) Decide whether we want to implement this |
+ // functionality for the new analysis driver or whether we should remove |
+ // this method. |
} |
void _sendResultResponse() { |