28 lines
903 B
JavaScript
28 lines
903 B
JavaScript
|
var LEADING_STAR = /^[^\S\r\n]*\*[^\S\n\r]?/gm;
|
||
|
|
||
|
/**
|
||
|
* Extact comment info from a comment object
|
||
|
* @param {Object} comment object to process
|
||
|
* @return { {startingLine, endingLine, content, codeTree}= } a comment info object
|
||
|
* or undefined if the comment is not a jsdoc style comment
|
||
|
*/
|
||
|
module.exports = function getJSDocComment() {
|
||
|
return function(comment) {
|
||
|
|
||
|
var commentInfo;
|
||
|
|
||
|
// we need to check for `/**` at the start of the comment to find all the jsdoc style comments
|
||
|
comment.range.toString().replace(/^\/\*\*([\w\W]*)\*\/$/g, function(match, commentBody) {
|
||
|
commentBody = commentBody.replace(LEADING_STAR, '').trim();
|
||
|
|
||
|
commentInfo = {
|
||
|
startingLine: comment.range.start.line,
|
||
|
endingLine: comment.range.end.line,
|
||
|
content: commentBody,
|
||
|
codeTree: comment.treeAfter
|
||
|
};
|
||
|
});
|
||
|
|
||
|
return commentInfo;
|
||
|
};
|
||
|
};
|