initialize method

Future<void> initialize({
  1. required String root,
})

Implementation

Future<void> initialize({required String root}) async {
  if (_isInitialized) {
    return;
  }

  _root = root;

  try {
    await _createVirtualWorkspace(root);

    final dependencies = switch (_packageConfig) {
      final String packageConfig => await _getDependencyFiles(
        packageConfig,
        pathDependenciesOnly: true,
        directoryOnly: true,
      ),
      null => <String>[],
    };

    _analysisCollection = AnalysisContextCollection(
      includedPaths: [root, ...dependencies],
      resourceProvider: _memoryProvider,
      sdkPath: await sdkPath,
    );
  } catch (e) {
    logger
      ..err('Error initializing analyzer')
      ..detail('$e');
    rethrow;
  }

  _isInitialized = true;
}