Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: pkg/docgen/lib/docgen.dart

Issue 18356011: Rename "pathos" package to "path". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/docgen/lib/docgen.dart
diff --git a/pkg/docgen/lib/docgen.dart b/pkg/docgen/lib/docgen.dart
index ecdafd6eefa427d6bd83ed397c5a6f98b58a85fe..357fe965570482267d5b4cef9c65fb893b87a013 100644
--- a/pkg/docgen/lib/docgen.dart
+++ b/pkg/docgen/lib/docgen.dart
@@ -3,14 +3,14 @@
// BSD-style license that can be found in the LICENSE file.
/**
- * **docgen** is a tool for creating machine readable representations of Dart
+ * **docgen** is a tool for creating machine readable representations of Dart
* code metadata, including: classes, members, comments and annotations.
- *
- * docgen is run on a `.dart` file or a directory containing `.dart` files.
- *
+ *
+ * docgen is run on a `.dart` file or a directory containing `.dart` files.
+ *
* $ dart docgen.dart [OPTIONS] [FILE/DIR]
*
- * This creates files called `docs/<library_name>.yaml` in your current
+ * This creates files called `docs/<library_name>.yaml` in your current
* working directory.
*/
library docgen;
@@ -21,7 +21,7 @@ import 'dart:async';
import 'package:logging/logging.dart';
import 'package:markdown/markdown.dart' as markdown;
-import 'package:pathos/path.dart' as path;
+import 'package:path/path.dart' as path;
import 'dart2yaml.dart';
import 'src/io.dart';
@@ -47,48 +47,48 @@ ClassMirror _currentClass;
/// Current member being documented to be used for comment links.
MemberMirror _currentMember;
-/// Resolves reference links in doc comments.
+/// Resolves reference links in doc comments.
markdown.Resolver linkResolver;
/**
* Docgen constructor initializes the link resolver for markdown parsing.
- * Also initializes the command line arguments.
- *
- * [packageRoot] is the packages directory of the directory being analyzed.
- * If [includeSdk] is `true`, then any SDK libraries explicitly imported will
- * also be documented.
- * If [parseSdk] is `true`, then all Dart SDK libraries will be documented.
- * This option is useful when only the SDK libraries are needed.
- *
- * Returns `true` if docgen sucessfuly completes.
+ * Also initializes the command line arguments.
+ *
+ * [packageRoot] is the packages directory of the directory being analyzed.
+ * If [includeSdk] is `true`, then any SDK libraries explicitly imported will
+ * also be documented.
+ * If [parseSdk] is `true`, then all Dart SDK libraries will be documented.
+ * This option is useful when only the SDK libraries are needed.
+ *
+ * Returns `true` if docgen sucessfuly completes.
*/
-Future<bool> docgen(List<String> files, {String packageRoot,
+Future<bool> docgen(List<String> files, {String packageRoot,
bool outputToYaml: true, bool includePrivate: false, bool includeSdk: false,
- bool parseSdk: false}) {
+ bool parseSdk: false}) {
if (packageRoot == null && !parseSdk) {
- // TODO(janicejl): At the moment, if a single file is passed it, it is
- // assumed that it does not have a package root unless it is passed in by
- // the user. In future, find a better way to find the packageRoot and also
- // fully test finding the packageRoot.
- if (FileSystemEntity.typeSync(files.first)
+ // TODO(janicejl): At the moment, if a single file is passed it, it is
+ // assumed that it does not have a package root unless it is passed in by
+ // the user. In future, find a better way to find the packageRoot and also
+ // fully test finding the packageRoot.
+ if (FileSystemEntity.typeSync(files.first)
== FileSystemEntityType.DIRECTORY) {
packageRoot = _findPackageRoot(files.first);
}
}
logger.info('Package Root: ${packageRoot}');
-
- linkResolver = (name) =>
+
+ linkResolver = (name) =>
fixReference(name, _currentLibrary, _currentClass, _currentMember);
-
+
return getMirrorSystem(files, packageRoot, parseSdk: parseSdk)
.then((MirrorSystem mirrorSystem) {
if (mirrorSystem.libraries.isEmpty) {
throw new StateError('No library mirrors were created.');
}
- _documentLibraries(mirrorSystem.libraries.values,
- includeSdk: includeSdk, includePrivate: includePrivate,
+ _documentLibraries(mirrorSystem.libraries.values,
+ includeSdk: includeSdk, includePrivate: includePrivate,
outputToYaml: outputToYaml);
-
+
return true;
});
}
@@ -96,34 +96,34 @@ Future<bool> docgen(List<String> files, {String packageRoot,
List<String> _listLibraries(List<String> args) {
// TODO(janicejl): At the moment, only have support to have either one file,
// or one directory. This is because there can only be one package directory
- // since only one docgen is created per run.
+ // since only one docgen is created per run.
if (args.length != 1) throw new UnsupportedError(USAGE);
var libraries = new List<String>();
var type = FileSystemEntity.typeSync(args[0]);
-
+
if (type == FileSystemEntityType.FILE) {
libraries.add(path.absolute(args[0]));
logger.info('Added to libraries: ${libraries.last}');
} else {
libraries.addAll(_listDartFromDir(args[0]));
- }
+ }
return libraries;
}
List<String> _listDartFromDir(String args) {
var files = listDir(args, recursive: true);
- // To avoid anaylzing package files twice, only files with paths not
+ // To avoid anaylzing package files twice, only files with paths not
// containing '/packages' will be added. The only exception is if the file to
- // analyze already has a '/package' in its path.
- return files.where((f) => f.endsWith('.dart') &&
+ // analyze already has a '/package' in its path.
+ return files.where((f) => f.endsWith('.dart') &&
(!f.contains('/packages') || args.contains('/packages'))).toList()
..forEach((lib) => logger.info('Added to libraries: $lib'));
}
String _findPackageRoot(String directory) {
var files = listDir(directory, recursive: true);
- // Return '' means that there was no pubspec.yaml and therefor no packageRoot.
- String packageRoot = files.firstWhere((f) =>
+ // Return '' means that there was no pubspec.yaml and therefor no packageRoot.
+ String packageRoot = files.firstWhere((f) =>
f.endsWith('/pubspec.yaml'), orElse: () => '');
if (packageRoot != '') {
packageRoot = path.dirname(packageRoot) + '/packages';
@@ -134,7 +134,7 @@ String _findPackageRoot(String directory) {
List<String> _listSdk() {
var sdk = new List<String>();
LIBRARIES.forEach((String name, LibraryInfo info) {
- if (info.documented) {
+ if (info.documented) {
sdk.add('dart:$name');
logger.info('Add to SDK: ${sdk.last}');
}
@@ -143,33 +143,33 @@ List<String> _listSdk() {
}
/**
- * Analyzes set of libraries by getting a mirror system and triggers the
- * documentation of the libraries.
+ * Analyzes set of libraries by getting a mirror system and triggers the
+ * documentation of the libraries.
*/
-Future<MirrorSystem> getMirrorSystem(List<String> args, String packageRoot,
+Future<MirrorSystem> getMirrorSystem(List<String> args, String packageRoot,
{bool parseSdk:false}) {
var libraries = !parseSdk ? _listLibraries(args) : _listSdk();
if (libraries.isEmpty) throw new StateError('No Libraries.');
- // DART_SDK should be set to the root of the SDK library.
+ // DART_SDK should be set to the root of the SDK library.
var sdkRoot = Platform.environment['DART_SDK'];
if (sdkRoot != null) {
logger.info('Using DART_SDK to find SDK at $sdkRoot');
} else {
- // If DART_SDK is not defined in the environment,
- // assuming the dart executable is from the Dart SDK folder inside bin.
+ // If DART_SDK is not defined in the environment,
+ // assuming the dart executable is from the Dart SDK folder inside bin.
sdkRoot = path.dirname(path.dirname(new Options().executable));
logger.info('SDK Root: ${sdkRoot}');
}
-
+
return _analyzeLibraries(libraries, sdkRoot, packageRoot: packageRoot);
}
// TODO(janicejl): Should make docgen fail gracefully, or output a friendly
// error message letting them know why it is failing to create a mirror system.
-// If there is conflicting library names, should modify it with a hash at the
-// end of it's library name.
+// If there is conflicting library names, should modify it with a hash at the
+// end of it's library name.
/**
- * Analyzes set of libraries and provides a mirror system which can be used
+ * Analyzes set of libraries and provides a mirror system which can be used
* for static inspection of the source code.
*/
Future<MirrorSystem> _analyzeLibraries(List<String> libraries,
@@ -191,10 +191,10 @@ Future<MirrorSystem> _analyzeLibraries(List<String> libraries,
['--preserve-comments', '--categories=Client,Server'])
..catchError((error) {
logger.severe('Error: Failed to create mirror system. ');
- // TODO(janicejl): Use the stack trace package when bug is resolved.
- // Currently, a string is thrown when it fails to create a mirror
+ // TODO(janicejl): Use the stack trace package when bug is resolved.
+ // Currently, a string is thrown when it fails to create a mirror
// system, and it is not possible to use the stack trace. BUG(#11622)
- // To avoid printing the stack trace.
+ // To avoid printing the stack trace.
exit(1);
});
}
@@ -202,8 +202,8 @@ Future<MirrorSystem> _analyzeLibraries(List<String> libraries,
/**
* Creates documentation for filtered libraries.
*/
-void _documentLibraries(List<LibraryMirror> libraries,
- {bool includeSdk:false, bool includePrivate:false, bool
+void _documentLibraries(List<LibraryMirror> libraries,
+ {bool includeSdk:false, bool includePrivate:false, bool
outputToYaml:true}) {
libraries.forEach((lib) {
// Files belonging to the SDK have a uri that begins with 'dart:'.
@@ -212,18 +212,18 @@ void _documentLibraries(List<LibraryMirror> libraries,
_writeLibraryToFile(library, outputToYaml);
}
});
- // Outputs a text file with a list of files available after creating all
- // the libraries. This will help the viewer know what files are available
- // to read in.
- _writeToFile(listDir('docs').join('\n').replaceAll('docs/', ''),
+ // Outputs a text file with a list of files available after creating all
+ // the libraries. This will help the viewer know what files are available
+ // to read in.
+ _writeToFile(listDir('docs').join('\n').replaceAll('docs/', ''),
'library_list.txt');
}
-Library generateLibrary(dart2js.Dart2JsLibraryMirror library,
+Library generateLibrary(dart2js.Dart2JsLibraryMirror library,
{bool includePrivate:false}) {
_currentLibrary = library;
var result = new Library(library.qualifiedName, _getComment(library),
- _getVariables(library.variables, includePrivate),
+ _getVariables(library.variables, includePrivate),
_getMethods(library.functions, includePrivate),
_getClasses(library.classes, includePrivate));
logger.fine('Generated library for ${result.name}');
@@ -235,15 +235,15 @@ void _writeLibraryToFile(Library result, bool outputToYaml) {
_writeToFile(getYamlString(result.toMap()), '${result.name}.yaml');
} else {
_writeToFile(stringify(result.toMap()), '${result.name}.json');
- }
-
+ }
+
}
/**
- * Returns a list of meta annotations assocated with a mirror.
+ * Returns a list of meta annotations assocated with a mirror.
*/
List<String> _getAnnotations(DeclarationMirror mirror) {
- var annotations = mirror.metadata.where((e) =>
+ var annotations = mirror.metadata.where((e) =>
e is dart2js.Dart2JsConstructedConstantMirror);
return annotations.map((e) => e.type.qualifiedName).toList();
}
@@ -263,10 +263,10 @@ String _getComment(DeclarationMirror mirror) {
} else {
commentText = '$commentText ${comment.trimmedText}';
}
- }
+ }
}
});
- commentText = commentText == null ? '' :
+ commentText = commentText == null ? '' :
markdown.markdownToHtml(commentText.trim(), linkResolver: linkResolver)
.replaceAll('\n', ' ');
return commentText;
@@ -275,10 +275,10 @@ String _getComment(DeclarationMirror mirror) {
/**
* Converts all [foo] references in comments to <a>libraryName.foo</a>.
*/
-markdown.Node fixReference(String name, LibraryMirror currentLibrary,
+markdown.Node fixReference(String name, LibraryMirror currentLibrary,
ClassMirror currentClass, MemberMirror currentMember) {
var reference;
- var memberScope = currentMember == null ?
+ var memberScope = currentMember == null ?
null : currentMember.lookupInScope(name);
if (memberScope != null) reference = memberScope.qualifiedName;
else {
@@ -292,16 +292,16 @@ markdown.Node fixReference(String name, LibraryMirror currentLibrary,
/**
* Returns a map of [Variable] objects constructed from inputted mirrors.
*/
-Map<String, Variable> _getVariables(Map<String, VariableMirror> mirrorMap,
+Map<String, Variable> _getVariables(Map<String, VariableMirror> mirrorMap,
bool includePrivate) {
var data = {};
- // TODO(janicejl): When map to map feature is created, replace the below with
+ // TODO(janicejl): When map to map feature is created, replace the below with
// a filter. Issue(#9590).
mirrorMap.forEach((String mirrorName, VariableMirror mirror) {
if (includePrivate || !mirror.isPrivate) {
_currentMember = mirror;
- data[mirrorName] = new Variable(mirrorName, mirror.qualifiedName,
- mirror.isFinal, mirror.isStatic, mirror.type.qualifiedName,
+ data[mirrorName] = new Variable(mirrorName, mirror.qualifiedName,
+ mirror.isFinal, mirror.isStatic, mirror.type.qualifiedName,
_getComment(mirror), _getAnnotations(mirror));
}
});
@@ -311,21 +311,21 @@ Map<String, Variable> _getVariables(Map<String, VariableMirror> mirrorMap,
/**
* Returns a map of [Method] objects constructed from inputted mirrors.
*/
-Map<String, Method> _getMethods(Map<String, MethodMirror> mirrorMap,
+Map<String, Method> _getMethods(Map<String, MethodMirror> mirrorMap,
bool includePrivate) {
var data = {};
mirrorMap.forEach((String mirrorName, MethodMirror mirror) {
if (includePrivate || !mirror.isPrivate) {
_currentMember = mirror;
- data[mirrorName] = new Method(mirrorName, mirror.qualifiedName,
- mirror.isSetter, mirror.isGetter, mirror.isConstructor,
- mirror.isOperator, mirror.isStatic, mirror.returnType.qualifiedName,
- _getComment(mirror), _getParameters(mirror.parameters),
+ data[mirrorName] = new Method(mirrorName, mirror.qualifiedName,
+ mirror.isSetter, mirror.isGetter, mirror.isConstructor,
+ mirror.isOperator, mirror.isStatic, mirror.returnType.qualifiedName,
+ _getComment(mirror), _getParameters(mirror.parameters),
_getAnnotations(mirror));
}
});
return data;
-}
+}
/**
* Returns a map of [Class] objects constructed from inputted mirrors.
@@ -336,15 +336,15 @@ Map<String, Class> _getClasses(Map<String, ClassMirror> mirrorMap,
mirrorMap.forEach((String mirrorName, ClassMirror mirror) {
if (includePrivate || !mirror.isPrivate) {
_currentClass = mirror;
- var superclass = (mirror.superclass != null) ?
+ var superclass = (mirror.superclass != null) ?
mirror.superclass.qualifiedName : '';
- var interfaces =
+ var interfaces =
mirror.superinterfaces.map((interface) => interface.qualifiedName);
- data[mirrorName] = new Class(mirrorName, mirror.qualifiedName,
- superclass, mirror.isAbstract, mirror.isTypedef,
+ data[mirrorName] = new Class(mirrorName, mirror.qualifiedName,
+ superclass, mirror.isAbstract, mirror.isTypedef,
_getComment(mirror), interfaces.toList(),
_getVariables(mirror.variables, includePrivate),
- _getMethods(mirror.methods, includePrivate),
+ _getMethods(mirror.methods, includePrivate),
_getAnnotations(mirror));
}
});
@@ -358,9 +358,9 @@ Map<String, Parameter> _getParameters(List<ParameterMirror> mirrorList) {
var data = {};
mirrorList.forEach((ParameterMirror mirror) {
_currentMember = mirror;
- data[mirror.simpleName] = new Parameter(mirror.simpleName,
- mirror.qualifiedName, mirror.isOptional, mirror.isNamed,
- mirror.hasDefaultValue, mirror.type.qualifiedName,
+ data[mirror.simpleName] = new Parameter(mirror.simpleName,
+ mirror.qualifiedName, mirror.isOptional, mirror.isNamed,
+ mirror.hasDefaultValue, mirror.type.qualifiedName,
mirror.defaultValue, _getAnnotations(mirror));
});
return data;
@@ -397,24 +397,24 @@ Map recurseMap(Map inputMap) {
* A class containing contents of a Dart library.
*/
class Library {
-
+
/// Documentation comment with converted markdown.
String comment;
-
+
/// Top-level variables in the library.
Map<String, Variable> variables;
-
+
/// Top-level functions in the library.
Map<String, Method> functions;
-
+
/// Classes defined within the library
Map<String, Class> classes;
-
+
String name;
-
- Library(this.name, this.comment, this.variables,
+
+ Library(this.name, this.comment, this.variables,
this.functions, this.classes);
-
+
/// Generates a map describing the [Library] object.
Map toMap() {
var libraryMap = {};
@@ -432,32 +432,32 @@ class Library {
*/
// TODO(tmandel): Figure out how to do typedefs (what is needed)
class Class {
-
+
/// Documentation comment with converted markdown.
String comment;
-
+
/// List of the names of interfaces that this class implements.
List<String> interfaces;
-
+
/// Top-level variables in the class.
Map<String, Variable> variables;
-
+
/// Methods in the class.
Map<String, Method> methods;
-
+
String name;
String qualifiedName;
String superclass;
bool isAbstract;
bool isTypedef;
-
- /// List of the meta annotations on the class.
+
+ /// List of the meta annotations on the class.
List<String> annotations;
-
- Class(this.name, this.qualifiedName, this.superclass, this.isAbstract,
- this.isTypedef, this.comment, this.interfaces, this.variables,
+
+ Class(this.name, this.qualifiedName, this.superclass, this.isAbstract,
+ this.isTypedef, this.comment, this.interfaces, this.variables,
this.methods, this.annotations);
-
+
/// Generates a map describing the [Class] object.
Map toMap() {
var classMap = {};
@@ -479,22 +479,22 @@ class Class {
* A class containing properties of a Dart variable.
*/
class Variable {
-
+
/// Documentation comment with converted markdown.
String comment;
-
+
String name;
String qualifiedName;
bool isFinal;
bool isStatic;
String type;
- /// List of the meta annotations on the variable.
+ /// List of the meta annotations on the variable.
List<String> annotations;
-
- Variable(this.name, this.qualifiedName, this.isFinal, this.isStatic,
+
+ Variable(this.name, this.qualifiedName, this.isFinal, this.isStatic,
this.type, this.comment, this.annotations);
-
+
/// Generates a map describing the [Variable] object.
Map toMap() {
var variableMap = {};
@@ -513,13 +513,13 @@ class Variable {
* A class containing properties of a Dart method.
*/
class Method {
-
+
/// Documentation comment with converted markdown.
String comment;
-
+
/// Parameters for this method.
Map<String, Parameter> parameters;
-
+
String name;
String qualifiedName;
bool isSetter;
@@ -528,14 +528,14 @@ class Method {
bool isOperator;
bool isStatic;
String returnType;
-
- /// List of the meta annotations on the method.
+
+ /// List of the meta annotations on the method.
List<String> annotations;
-
- Method(this.name, this.qualifiedName, this.isSetter, this.isGetter,
- this.isConstructor, this.isOperator, this.isStatic, this.returnType,
+
+ Method(this.name, this.qualifiedName, this.isSetter, this.isGetter,
+ this.isConstructor, this.isOperator, this.isStatic, this.returnType,
this.comment, this.parameters, this.annotations);
-
+
/// Generates a map describing the [Method] object.
Map toMap() {
var methodMap = {};
@@ -549,14 +549,14 @@ class Method {
methodMap['parameters'] = recurseMap(parameters);
methodMap['annotations'] = new List.from(annotations);
return methodMap;
- }
+ }
}
/**
* A class containing properties of a Dart method/function parameter.
*/
class Parameter {
-
+
String name;
String qualifiedName;
bool isOptional;
@@ -564,13 +564,13 @@ class Parameter {
bool hasDefaultValue;
String type;
String defaultValue;
-
- /// List of the meta annotations on the parameter.
+
+ /// List of the meta annotations on the parameter.
List<String> annotations;
-
- Parameter(this.name, this.qualifiedName, this.isOptional, this.isNamed,
+
+ Parameter(this.name, this.qualifiedName, this.isOptional, this.isNamed,
this.hasDefaultValue, this.type, this.defaultValue, this.annotations);
-
+
/// Generates a map describing the [Parameter] object.
Map toMap() {
var parameterMap = {};
@@ -583,5 +583,5 @@ class Parameter {
parameterMap['value'] = defaultValue;
parameterMap['annotations'] = new List.from(annotations);
return parameterMap;
- }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698