chore(doc-gen): fix AttachCommentTreeVisitor
In the case that there were more than one comment blocks preceding a block of code, the visitor was only attaching the first comment. Really what we should do is to attach the last comment before the code block.
This commit is contained in:
parent
014a28fef0
commit
6cdbe4a264
|
@ -16,7 +16,8 @@ module.exports = function AttachCommentTreeVisitor(ParseTreeVisitor, log) {
|
||||||
|
|
||||||
if (this.currentComment) log.silly('comment: ' +
|
if (this.currentComment) log.silly('comment: ' +
|
||||||
this.currentComment.range.start.line + ' - ' +
|
this.currentComment.range.start.line + ' - ' +
|
||||||
this.currentComment.range.end.line);
|
this.currentComment.range.end.line + ' : ' +
|
||||||
|
this.currentComment.range.toString());
|
||||||
|
|
||||||
ParseTreeVisitor.prototype.visit.call(this, tree);
|
ParseTreeVisitor.prototype.visit.call(this, tree);
|
||||||
},
|
},
|
||||||
|
@ -24,14 +25,18 @@ module.exports = function AttachCommentTreeVisitor(ParseTreeVisitor, log) {
|
||||||
// Really we ought to subclass ParseTreeVisitor but this is fiddly in ES5 so
|
// Really we ought to subclass ParseTreeVisitor but this is fiddly in ES5 so
|
||||||
// it is easier to simply override the prototype's method on the instance
|
// it is easier to simply override the prototype's method on the instance
|
||||||
visitAny: function(tree) {
|
visitAny: function(tree) {
|
||||||
if (tree && tree.location && tree.location.start && this.currentComment) {
|
if (tree && tree.location && tree.location.start && this.currentComment &&
|
||||||
if (this.currentComment.range.end.offset < tree.location.start.offset) {
|
this.currentComment.range.end.offset < tree.location.start.offset) {
|
||||||
log.silly('tree: ' + tree.constructor.name + ' - ' + tree.location.start.line);
|
log.silly('tree: ' + tree.constructor.name + ' - ' + tree.location.start.line);
|
||||||
|
while (this.currentComment &&
|
||||||
|
this.currentComment.range.end.offset < tree.location.start.offset) {
|
||||||
|
log.silly('comment: ' + this.currentComment.range.start.line + ' - ' +
|
||||||
|
this.currentComment.range.end.line + ' : ' +
|
||||||
|
this.currentComment.range.toString());
|
||||||
tree.commentBefore = this.currentComment;
|
tree.commentBefore = this.currentComment;
|
||||||
this.currentComment.treeAfter = tree;
|
this.currentComment.treeAfter = tree;
|
||||||
this.index++;
|
this.index++;
|
||||||
this.currentComment = this.comments[this.index];
|
this.currentComment = this.comments[this.index];
|
||||||
if (this.currentComment) log.silly('comment: ' + this.currentComment.range.start.line + ' - ' + this.currentComment.range.end.line);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ParseTreeVisitor.prototype.visitAny.call(this, tree);
|
return ParseTreeVisitor.prototype.visitAny.call(this, tree);
|
||||||
|
|
Loading…
Reference in New Issue