@@ -9,24 +9,31 @@ import 'dart:io';
99import 'package:analysis_server/src/server/driver.dart' show Driver;
1010import 'package:analysis_server_client/protocol.dart'
1111 show EditBulkFixesResult, ResponseDecoder;
12+ import 'package:args/args.dart' ;
1213import 'package:meta/meta.dart' ;
1314import 'package:path/path.dart' as path;
1415
1516import 'core.dart' ;
1617import 'sdk.dart' ;
1718import 'utils.dart' ;
1819
20+ /// When set, this function is executed just before the Analysis Server starts.
21+ void Function (String cmdName, List <FileSystemEntity > analysisRoots,
22+ ArgResults argResults) preAnalysisServerStart;
23+
1924/// A class to provide an API wrapper around an analysis server process.
2025class AnalysisServer {
2126 AnalysisServer (
2227 this .sdkPath,
2328 this .analysisRoots, {
2429 @required this .commandName,
30+ @required this .argResults,
2531 });
2632
2733 final Directory sdkPath;
2834 final List <FileSystemEntity > analysisRoots;
2935 final String commandName;
36+ final ArgResults argResults;
3037
3138 Process _process;
3239
@@ -69,6 +76,7 @@ class AnalysisServer {
6976 final Map <String , Completer <Map <String , dynamic >>> _requestCompleters = {};
7077
7178 Future <void > start () async {
79+ preAnalysisServerStart? .call (commandName, analysisRoots, argResults);
7280 final List <String > command = < String > [
7381 sdk.analysisServerSnapshot,
7482 '--${Driver .SUPPRESS_ANALYTICS_FLAG }' ,
0 commit comments