in lib/src/analysis_server.dart [79:125]
Future<void> init() async {
if (_isInitialized) {
throw StateError('AnalysisServerWrapper is already initialized');
}
_isInitialized = true;
void onRead(String str) {
if (dumpServerMessages) _logger.info('<-- $str');
}
void onWrite(String str) {
if (dumpServerMessages) _logger.info('--> $str');
}
final serverArgs = <String>[
'--client-id=DartPad',
'--client-version=$_sdkVersion',
];
_logger.info('Starting server; sdk: `$sdkPath`, args: $serverArgs');
analysisServer = await AnalysisServer.create(
onRead: onRead,
onWrite: onWrite,
sdkPath: sdkPath,
serverArgs: serverArgs,
);
try {
analysisServer.server.onError.listen((ServerError error) {
_logger.severe('server error${error.isFatal ? ' (fatal)' : ''}',
error.message, StackTrace.fromString(error.stackTrace));
});
await analysisServer.server.onConnected.first;
await analysisServer.server.setSubscriptions(<String>['STATUS']);
listenForCompletions();
await analysisServer.analysis.setAnalysisRoots([_sourceDirPath], []);
// Warmup.
await _sendAddOverlays({mainPath: _warmupSrc});
await _sendRemoveOverlays();
} catch (err, st) {
_logger.severe('Error starting analysis server ($sdkPath): $err.\n$st');
rethrow;
}
}