Source
List<PackageCategory> get categories {
Map<String, PackageCategory> result = {};
for (Library library in _libraries) {
String name = '';
if (library.name.startsWith('dart:')) {
name = 'Dart Core';
} else {
name = library.packageName;
}
if (!result.containsKey(name)) {
result[name] = new PackageCategory(name, this);
}
result[name]._libraries.add(library);
}
// Help the user if they pass us a category that doesn't exist.
for (String categoryName in config.categoryOrder) {
if (!result.containsKey(categoryName))
warnOnElement(null, PackageWarning.categoryOrderGivesMissingPackageName,
message: "${categoryName}, categories: ${result.keys.join(',')}");
}
List<PackageCategory> packageCategories = result.values.toList()..sort();
return packageCategories;
}