Index: pkg/analysis_server/lib/src/domain_execution.dart |
diff --git a/pkg/analysis_server/lib/src/domain_execution.dart b/pkg/analysis_server/lib/src/domain_execution.dart |
index 3a9161c67087e44c280a43e98e85d02eaf341095..801979efd0aafd59b3be32033bf7221c596d08eb 100644 |
--- a/pkg/analysis_server/lib/src/domain_execution.dart |
+++ b/pkg/analysis_server/lib/src/domain_execution.dart |
@@ -12,7 +12,6 @@ import 'package:analysis_server/src/analysis_server.dart'; |
import 'package:analysis_server/src/constants.dart'; |
import 'package:analyzer/file_system/file_system.dart'; |
import 'package:analyzer/src/dart/analysis/driver.dart'; |
-import 'package:analyzer/src/generated/engine.dart'; |
import 'package:analyzer/src/generated/source.dart'; |
/** |
@@ -98,21 +97,11 @@ class ExecutionDomainHandler implements RequestHandler { |
'There is no execution context with an id of $contextId'); |
} |
- SourceFactory sourceFactory; |
- AnalysisDriver driver; |
- if (server.options.enableNewAnalysisDriver) { |
- driver = server.getAnalysisDriver(path); |
- if (driver == null) { |
- return new Response.invalidExecutionContext(request, contextId); |
- } |
- sourceFactory = driver.sourceFactory; |
- } else { |
- AnalysisContext context = server.getContainingContext(path); |
- if (context == null) { |
- return new Response.invalidExecutionContext(request, contextId); |
- } |
- sourceFactory = context.sourceFactory; |
+ AnalysisDriver driver = server.getAnalysisDriver(path); |
+ if (driver == null) { |
+ return new Response.invalidExecutionContext(request, contextId); |
} |
+ SourceFactory sourceFactory = driver.sourceFactory; |
String file = params.file; |
String uri = params.uri; |
@@ -129,13 +118,7 @@ class ExecutionDomainHandler implements RequestHandler { |
request, 'file', 'Must not refer to a directory'); |
} |
- Source source; |
- if (server.options.enableNewAnalysisDriver) { |
- source = driver.fsState.getFileForPath(file).source; |
- } else { |
- ContextSourcePair contextSource = server.getContextSourcePair(file); |
- source = contextSource.source; |
- } |
+ Source source = driver.fsState.getFileForPath(file).source; |
if (source.uriKind != UriKind.FILE_URI) { |
uri = source.uri.toString(); |
} else { |
@@ -158,112 +141,7 @@ class ExecutionDomainHandler implements RequestHandler { |
* Implement the 'execution.setSubscriptions' request. |
*/ |
Response setSubscriptions(Request request) { |
- if (server.options.enableNewAnalysisDriver) { |
- // Under the analysis driver, setSubscriptions() becomes a no-op. |
- return new ExecutionSetSubscriptionsResult().toResponse(request.id); |
- } else { |
- List<ExecutionService> subscriptions = |
- new ExecutionSetSubscriptionsParams.fromRequest(request) |
- .subscriptions; |
- if (subscriptions.contains(ExecutionService.LAUNCH_DATA)) { |
- if (onFileAnalyzed == null) { |
- onFileAnalyzed = server.onFileAnalyzed.listen(_fileAnalyzed); |
- _reportCurrentFileStatus(); |
- } |
- } else { |
- if (onFileAnalyzed != null) { |
- onFileAnalyzed.cancel(); |
- onFileAnalyzed = null; |
- } |
- } |
- return new ExecutionSetSubscriptionsResult().toResponse(request.id); |
- } |
- } |
- |
- void _fileAnalyzed(ChangeNotice notice) { |
- ServerPerformanceStatistics.executionNotifications.makeCurrentWhile(() { |
- Source source = notice.source; |
- String filePath = source.fullName; |
- // check files |
- bool isDartFile = notice.resolvedDartUnit != null; |
- if (!isDartFile) { |
- return; |
- } |
- // prepare context |
- AnalysisContext context = server.getContainingContext(filePath); |
- if (context == null) { |
- return; |
- } |
- // analyze the file |
- if (isDartFile) { |
- ExecutableKind kind = ExecutableKind.NOT_EXECUTABLE; |
- if (context.isClientLibrary(source)) { |
- kind = ExecutableKind.CLIENT; |
- if (context.isServerLibrary(source)) { |
- kind = ExecutableKind.EITHER; |
- } |
- } else if (context.isServerLibrary(source)) { |
- kind = ExecutableKind.SERVER; |
- } |
- server.sendNotification( |
- new ExecutionLaunchDataParams(filePath, kind: kind) |
- .toNotification()); |
- } |
- }); |
- } |
- |
- /** |
- * Return `true` if the given [filePath] represents a file that is in an |
- * analysis root. |
- */ |
- bool _isInAnalysisRoot(String filePath) => |
- server.contextManager.isInAnalysisRoot(filePath); |
- |
- void _reportCurrentFileStatus() { |
- for (AnalysisContext context in server.analysisContexts) { |
- List<Source> librarySources = context.librarySources; |
- List<Source> clientSources = context.launchableClientLibrarySources; |
- List<Source> serverSources = context.launchableServerLibrarySources; |
- for (Source source in clientSources) { |
- if (serverSources.remove(source)) { |
- _sendKindNotification(source.fullName, ExecutableKind.EITHER); |
- } else { |
- _sendKindNotification(source.fullName, ExecutableKind.CLIENT); |
- } |
- librarySources.remove(source); |
- } |
- for (Source source in serverSources) { |
- _sendKindNotification(source.fullName, ExecutableKind.SERVER); |
- librarySources.remove(source); |
- } |
- for (Source source in librarySources) { |
- _sendKindNotification(source.fullName, ExecutableKind.NOT_EXECUTABLE); |
- } |
- for (Source source in context.htmlSources) { |
- String filePath = source.fullName; |
- if (_isInAnalysisRoot(filePath)) { |
- List<Source> libraries = |
- context.getLibrariesReferencedFromHtml(source); |
- server.sendNotification(new ExecutionLaunchDataParams(filePath, |
- referencedFiles: _getFullNames(libraries)) |
- .toNotification()); |
- } |
- } |
- } |
- } |
- |
- /** |
- * Send a notification indicating the [kind] of the file with the given |
- * [filePath], but only if the file is in an analysis root. |
- */ |
- void _sendKindNotification(String filePath, ExecutableKind kind) { |
- if (_isInAnalysisRoot(filePath)) { |
- server.sendNotification( |
- new ExecutionLaunchDataParams(filePath, kind: kind).toNotification()); |
- } |
- } |
- |
- static List<String> _getFullNames(List<Source> sources) { |
- return sources.map((Source source) => source.fullName).toList(); |
+ // Under the analysis driver, setSubscriptions() becomes a no-op. |
+ return new ExecutionSetSubscriptionsResult().toResponse(request.id); |
} |
} |