Description
[feel free to just close this if not relevant, but I noticed other bugs similar to this]
tsickle is our glue from TypeScript syntax into Closure Compiler syntax. Closure uses JSDoc annotations heavily with its own interpretations and parser, and tsickle understands a subset of that syntax so we can write TypeScript code and pass modified JSDoc comments through to Closure Compiler. (This also relates to issue #23 a bit.)
I don't know if any of this is relevant to your project, but if you're looking to answer any questions about which tags are allowed by Closure Compiler, or our what best guesses at how to parse patterns found in actual source text, you might find https://github.com/angular/tsickle/blob/master/src/jsdoc.ts interesting.
Also, I'd be happy to answer any questions you have in this area. We (tsickle) would be happy to outsource our JSDoc parsing to a standard library like this as long as it parsed all the syntaxes we care about.
With only a few minutes of thought I think the main points worth mentioning are:
- Closure Compiler uses curly braces in some places to mark parameterized tags, such as
/**
* @suppress {checkFoo,checkBar} plain text goes here
*/
Where we want to be able to get at the list of ['checkFoo', 'checkBar']
programmatically.
- Closure Compiler has special handling of @license, in that
/**
* @license text that spans
* multiple lines
*/
parses as a multi-line @license tag.