Index: pkg/docgen/lib/docgen.dart |
diff --git a/pkg/docgen/lib/docgen.dart b/pkg/docgen/lib/docgen.dart |
index d21d235bc0caec60b44474f506aa73f36cf07e2f..0482da1e5f89481ec77fdaa27c615b2e7d9bb58c 100644 |
--- a/pkg/docgen/lib/docgen.dart |
+++ b/pkg/docgen/lib/docgen.dart |
@@ -128,7 +128,7 @@ Future<bool> docgen(List<String> files, {String packageRoot, |
_coreLibrary = _sdkLibraries.singleWhere((lib) => |
lib.uri.toString().startsWith('dart:core')); |
var availableLibrariesByPath = new Map.fromIterables( |
- availableLibraries.map((each) => each.uri), |
+ availableLibraries.map((each) => each.uri.toFilePath()), |
availableLibraries); |
var librariesToDocument = requestedLibraries.map( |
(each) => availableLibrariesByPath.putIfAbsent(each, |
@@ -189,14 +189,14 @@ String _packageIntro(packageDir) { |
return contents; |
} |
-List<Uri> _listLibraries(List<String> args) { |
- var libraries = new List<Uri>(); |
+List<String> _listLibraries(List<String> args) { |
+ var libraries = new List<String>(); |
for (var arg in args) { |
var type = FileSystemEntity.typeSync(arg); |
if (type == FileSystemEntityType.FILE) { |
if (arg.endsWith('.dart')) { |
- libraries.add(new Uri.file(path.absolute(arg))); |
+ libraries.add(path.absolute(arg)); |
logger.info('Added to libraries: ${libraries.last}'); |
} |
} else { |
@@ -206,7 +206,7 @@ List<Uri> _listLibraries(List<String> args) { |
return libraries; |
} |
-List<Uri> _listDartFromDir(String args) { |
+List<String> _listDartFromDir(String args) { |
var libraries = []; |
// To avoid anaylzing package files twice, only files with paths not |
// containing '/packages' will be added. The only exception is if the file to |
@@ -223,12 +223,12 @@ List<Uri> _listDartFromDir(String args) { |
var contents = new File(f).readAsStringSync(); |
if (!(contents.contains(new RegExp('\npart of ')) || |
contents.startsWith(new RegExp('part of ')))) { |
- libraries.add(new Uri.file(path.normalize(path.absolute(f)))); |
+ libraries.add(f); |
logger.info('Added to libraries: $f'); |
} |
} |
}); |
- return libraries; |
+ return libraries.map(path.absolute).map(path.normalize).toList(); |
} |
String _findPackageRoot(String directory) { |
@@ -251,11 +251,11 @@ String _packageName(String pubspecName) { |
return spec["name"]; |
} |
-List<Uri> _listSdk() { |
- var sdk = new List<Uri>(); |
+List<String> _listSdk() { |
+ var sdk = new List<String>(); |
LIBRARIES.forEach((String name, LibraryInfo info) { |
if (info.documented) { |
- sdk.add(Uri.parse('dart:$name')); |
+ sdk.add('dart:$name'); |
logger.info('Add to SDK: ${sdk.last}'); |
} |
}); |
@@ -264,7 +264,7 @@ List<Uri> _listSdk() { |
/// Analyzes set of libraries by getting a mirror system and triggers the |
/// documentation of the libraries. |
-Future<MirrorSystem> getMirrorSystem(List<Uri> libraries, |
+Future<MirrorSystem> getMirrorSystem(List<String> libraries, |
{String packageRoot, bool parseSdk: false}) { |
if (libraries.isEmpty) throw new StateError('No Libraries.'); |
// Finds the root of SDK library based off the location of docgen. |
@@ -286,7 +286,7 @@ String findRootDirectory() { |
/// Analyzes set of libraries and provides a mirror system which can be used |
/// for static inspection of the source code. |
-Future<MirrorSystem> _analyzeLibraries(List<Uri> libraries, |
+Future<MirrorSystem> _analyzeLibraries(List<String> libraries, |
String libraryRoot, {String packageRoot}) { |
SourceFileProvider provider = new CompilerSourceFileProvider(); |
api.DiagnosticHandler diagnosticHandler = |
@@ -294,12 +294,16 @@ Future<MirrorSystem> _analyzeLibraries(List<Uri> libraries, |
..showHints = false |
..showWarnings = false) |
.diagnosticHandler; |
- Uri libraryUri = new Uri.file(appendSlash(libraryRoot)); |
+ Uri libraryUri = new Uri(scheme: 'file', path: appendSlash(libraryRoot)); |
Uri packageUri = null; |
if (packageRoot != null) { |
- packageUri = new Uri.file(appendSlash(packageRoot)); |
+ packageUri = new Uri(scheme: 'file', path: appendSlash(packageRoot)); |
} |
- return dart2js.analyze(libraries, libraryUri, packageUri, |
+ List<Uri> librariesUri = <Uri>[]; |
+ libraries.forEach((library) { |
+ librariesUri.add(currentDirectory.resolve(library)); |
+ }); |
+ return dart2js.analyze(librariesUri, libraryUri, packageUri, |
provider.readStringFromUri, diagnosticHandler, |
['--preserve-comments', '--categories=Client,Server']) |
..catchError((error) { |