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