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;
 | |
|   };
 | |
| }; |