mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
Added new event named "beforeParse". Closes #45.
This commit is contained in:
parent
5c47302493
commit
c89fa6dbba
18
plugins/commentConvert.js
Normal file
18
plugins/commentConvert.js
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
@overview Demonstrate how to modify the source code before the parser sees it.
|
||||
@module plugins/comentConvert
|
||||
@author Michael Mathews <micmath@gmail.com>
|
||||
*/
|
||||
|
||||
///
|
||||
/// Convert ///-style comments into jsdoc comments.
|
||||
/// @param e
|
||||
/// @param e.filename
|
||||
/// @param e.source
|
||||
///
|
||||
exports.beforeParse = function(e) {
|
||||
e.source = e.source.replace(/(\n[ \t]*\/\/\/[^\n]*)+/g, function($) {
|
||||
var replacement = '\n/**' + $.replace(/^[ \t]*\/\/\//mg, '').replace(/(\n$|$)/, '*/$1');
|
||||
return replacement;
|
||||
});
|
||||
};
|
||||
@ -93,16 +93,18 @@ exports.Parser.prototype.clear = function() {
|
||||
|
||||
/** @private */
|
||||
exports.Parser.prototype._parseSourceCode = function(sourceCode, sourceName) {
|
||||
currentSourceName = sourceName;
|
||||
|
||||
sourceCode = pretreat(sourceCode);
|
||||
|
||||
var ast = parserFactory().parse(sourceCode, sourceName, 1);
|
||||
|
||||
var e = {filename: currentSourceName};
|
||||
var e = {filename: sourceName};
|
||||
this.fire('fileBegin', e);
|
||||
|
||||
if (!e.defaultPrevented) {
|
||||
e = {filename: sourceName, source: sourceCode};
|
||||
this.fire('beforeParse', e);
|
||||
sourceCode = e.source;
|
||||
currentSourceName = sourceName = e.filename;
|
||||
|
||||
sourceCode = pretreat(e.source);
|
||||
|
||||
var ast = parserFactory().parse(sourceCode, sourceName, 1);
|
||||
ast.visit(
|
||||
new Packages.org.mozilla.javascript.ast.NodeVisitor({
|
||||
visit: visitNode
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user