Parse the summary sentence extracted from a comment string into a Dossier.Comment object so it can be properly rendered in the soy template.  Summary sentence parsing is still a simple regex, so we can still get unterminated tablets that will not render correctly. For example, the comment "Hello {@code world. }Goodbye world" would render "Hello {@code world." instead of "Hello <code>world.</code>"
Add a custom compiler pass to wrap common js modules in an anonymous function to avoid global namespace conflicts.
Instead of wrapping CommonJS modules in an anonymous function, rewrite variable names
and expose everything to the global scope. When module a requires module b, a may refer
to the types of b using the aliased name defined at the point of calling require().
A little bit of clean up so things are easier to follow/work with.
Still lots of clean up needed - things are definitely hacked together at the moment.
First pass at generating documentation for CommonJS modules.
Modules are currently rendered as namespaces; need to put together
a separate template type.
Some minor code clean up
Prevent accessing properties of undefined variables when collapsing namespace records.
Clean up path handling code.
Rendered module display name should reflect its source, and not
the mangled name generated for internal compilation.
Mirror input source file structure for the rendered source files.
Since we track provided/required symbols in the CompilerInput object at the root of
the script tree, there is no need to generate goog.provide/require statements.
- Use a CommonJS module's script node location as the source code location for that module.
- Use the @fileoverview comment from a CommonJS module as its description in rendered documentation.
If there is only one module/src, use its parent as the common path prefix.
Track types aliased within each module.
Improve module rendering.
Improve JSType and JSDocInfo lookup.
More JSType analysis improvements; prevents the loss of information
when a variable is an alias for another type.
If a descriptor doesn't have jsdoc, use the doc attached to its type.
Record the source node for each descriptor so we can properly report where it was defined.
When searching for global types and we encounter an instance type,
convert it to its constructor so we can continue the search there (at
this stage, we want to find "static" nested types, not intense properties)