findProjectDirectory function
Finds the project directory associated with an analysis context root
This is a folder that contains a pubspec.yaml
file.
It is either alongside the analysis_options.yaml file, or in a parent directory.
Implementation
Directory findProjectDirectory(
Directory directory, {
Directory? original,
}) {
if (directory.pubspec.existsSync()) {
return directory;
}
if (directory.parent.uri == directory.uri) {
throw FindProjectError._(original?.path ?? directory.path);
}
return findProjectDirectory(directory.parent, original: directory);
}