From 3e4e48accd67fc2f8582fe2e5e81d25dc738e2a6 Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Sun, 30 Mar 2014 22:00:33 -0700 Subject: [PATCH] attach inline type annotations to function params (#611) includes a new Rhino jar: jsdoc3/rhino@bb2446ad --- lib/jsdoc/doclet.js | 25 ++++++-- lib/jsdoc/schema.js | 1 + lib/jsdoc/src/astbuilder.js | 44 +++++++++++-- lib/jsdoc/src/astnode.js | 21 +++++- lib/jsdoc/src/visitor.js | 74 ++++++++++++++++++++++ rhino/js.jar | Bin 1168178 -> 1168318 bytes test/fixtures/typetaginline.js | 35 ++++++++++ test/specs/documentation/typetaginline.js | 71 +++++++++++++++++++++ 8 files changed, 257 insertions(+), 14 deletions(-) create mode 100644 test/fixtures/typetaginline.js create mode 100644 test/specs/documentation/typetaginline.js diff --git a/lib/jsdoc/doclet.js b/lib/jsdoc/doclet.js index 4bfe176c..a78dbe98 100644 --- a/lib/jsdoc/doclet.js +++ b/lib/jsdoc/doclet.js @@ -24,6 +24,7 @@ var jsdoc = { } }; var path = require('jsdoc/path'); +var Syntax = jsdoc.src.Syntax; var util = require('util'); // Longname used for doclets whose actual longname cannot be identified. @@ -48,13 +49,25 @@ function applyTag(doclet, tag) { } // use the meta info about the source code to guess what the doclet kind should be -function codetypeToKind(type) { - var Syntax = jsdoc.src.Syntax; - if (type === Syntax.FunctionDeclaration || type === Syntax.FunctionExpression) { - return 'function'; +function codeToKind(code) { + var parent; + + var astnode = require('jsdoc/src/astnode'); + + // default + var kind = 'member'; + + if (code.type === Syntax.FunctionDeclaration || code.type === Syntax.FunctionExpression) { + kind = 'function'; + } + else if (code.node && code.node.parent) { + parent = code.node.parent; + if ( astnode.isFunction(parent) ) { + kind = 'param'; + } } - return 'member'; + return kind; } function unwrap(docletSrc) { @@ -170,7 +183,7 @@ Doclet.prototype.postProcess = function() { } if (!this.kind && this.meta && this.meta.code) { - this.addTag( 'kind', codetypeToKind(this.meta.code.type) ); + this.addTag( 'kind', codeToKind(this.meta.code) ); } if (this.variation && this.longname && !/\)$/.test(this.longname) ) { diff --git a/lib/jsdoc/schema.js b/lib/jsdoc/schema.js index 3459874b..4a3c562d 100644 --- a/lib/jsdoc/schema.js +++ b/lib/jsdoc/schema.js @@ -362,6 +362,7 @@ var DOCLET_SCHEMA = exports.DOCLET_SCHEMA = { 'module', 'namespace', 'package', + 'param', 'typedef' ] }, diff --git a/lib/jsdoc/src/astbuilder.js b/lib/jsdoc/src/astbuilder.js index e3647770..37852d70 100644 --- a/lib/jsdoc/src/astbuilder.js +++ b/lib/jsdoc/src/astbuilder.js @@ -6,9 +6,11 @@ var Syntax = require('jsdoc/src/syntax').Syntax; var VISITOR_CONTINUE = true; var VISITOR_STOP = false; -// TODO: docs -var acceptsLeadingComments = exports.acceptsLeadingComments = (function() { +// TODO: docs; empty array means any node type, otherwise only the node types in the array +var acceptsLeadingComments = (function() { var accepts = {}; + + // these nodes always accept leading comments var commentable = [ Syntax.AssignmentExpression, Syntax.CallExpression, @@ -21,11 +23,22 @@ var acceptsLeadingComments = exports.acceptsLeadingComments = (function() { Syntax.VariableDeclarator, Syntax.WithStatement ]; - for (var i = 0, l = commentable.length; i < l; i++) { - accepts[commentable[i]] = true; + accepts[commentable[i]] = []; } + // these nodes accept leading comments if they have specific types of parent nodes + // like: function foo(/** @type {string} */ bar) {} + accepts[Syntax.Identifier] = [ + Syntax.CatchClause, + Syntax.FunctionDeclaration, + Syntax.FunctionExpression + ]; + // like: var Foo = Class.create(/** @lends Foo */{ // ... }) + accepts[Syntax.ObjectExpression] = [ + Syntax.CallExpression + ]; + return accepts; })(); @@ -43,6 +56,25 @@ var searchDescendants = (function() { return search; })(); +// TODO: docs +function canAcceptComment(node) { + var canAccept = false; + var spec = acceptsLeadingComments[node.type]; + + if (spec) { + // empty array means we don't care about the parent type + if (spec.length === 0) { + canAccept = true; + } + // we can accept the comment if the spec contains the type of the node's parent + else if (node.parent) { + canAccept = spec.indexOf(node.parent.type) !== -1; + } + } + + return canAccept; +} + // TODO: docs // check whether node1 is before node2 function isBefore(beforeRange, afterRange) { @@ -62,7 +94,7 @@ function isWithin(innerRange, outerRange) { // TODO: docs function isLeadingComment(comment, before, after) { - return !!before && !!after && !!acceptsLeadingComments[after.type] && + return !!before && !!after && !!canAcceptComment(after) && isBefore(before.range, after.range) && isBetween(comment.range, before.range, after.range); } @@ -333,7 +365,7 @@ CommentAttacher.prototype.visit = function(node) { // okay, now that we've done all that bookkeeping, we can check whether the current node accepts // leading comments and add it to the candidate list if needed - if (isEligible && acceptsLeadingComments[node.type]) { + if ( isEligible && canAcceptComment(node) ) { // make sure we don't go past the end of the outermost target node if (!this._pendingCommentRange) { this._pendingCommentRange = node.range.slice(0); diff --git a/lib/jsdoc/src/astnode.js b/lib/jsdoc/src/astnode.js index 0d5c3e8c..da0dd16e 100644 --- a/lib/jsdoc/src/astnode.js +++ b/lib/jsdoc/src/astnode.js @@ -11,6 +11,16 @@ var uid = 100000000; // TODO: currently unused var GLOBAL_NODE_ID = exports.GLOBAL_NODE_ID = require('jsdoc/doclet').GLOBAL_LONGNAME; +/** + * Check whether an AST node represents a function. + * + * @param {Object} node - The AST node to check. + * @return {boolean} Set to `true` if the node is a function or `false` in all other cases. + */ +var isFunction = exports.isFunction = function(node) { + return node.type === Syntax.FunctionDeclaration || node.type === Syntax.FunctionExpression; +}; + /** * Check whether an AST node creates a new scope. * @@ -19,8 +29,8 @@ var GLOBAL_NODE_ID = exports.GLOBAL_NODE_ID = require('jsdoc/doclet').GLOBAL_LON */ var isScope = exports.isScope = function(node) { // TODO: handle blocks with "let" declarations - return !!node && typeof node === 'object' && (node.type === Syntax.CatchClause || - node.type === Syntax.FunctionDeclaration || node.type === Syntax.FunctionExpression); + return !!node && typeof node === 'object' && ( node.type === Syntax.CatchClause || + isFunction(node) ); }; // TODO: docs @@ -269,6 +279,13 @@ var getInfo = exports.getInfo = function(node) { info.paramnames = getParamNames(node); break; + // like the param "bar" in: "function foo(bar) {}" + case Syntax.Identifier: + info.node = node; + info.name = nodeToString(info.node); + info.type = info.node.type; + break; + // like "a.b.c" case Syntax.MemberExpression: info.node = node; diff --git a/lib/jsdoc/src/visitor.js b/lib/jsdoc/src/visitor.js index c665cb22..f53a0cc7 100644 --- a/lib/jsdoc/src/visitor.js +++ b/lib/jsdoc/src/visitor.js @@ -39,6 +39,67 @@ function makeVarsFinisher(scopeDoclet) { }; } +/** + * For function parameters that have inline documentation, create a function that will merge the + * inline documentation into the function's doclet. If the parameter is already documented in the + * function's doclet, the inline documentation will be ignored. + * + * @private + * @param {module:jsdoc/src/parser.Parser} parser - The JSDoc parser. + * @return {function} A function that merges a parameter's inline documentation into the function's + * doclet. + */ +function makeInlineParamsFinisher(parser) { + return function(e) { + var documentedParams; + var knownParams; + var param; + var parentDoclet; + + var i = 0; + + if (e.doclet && e.doclet.meta && e.doclet.meta.code && e.doclet.meta.code.node && + e.doclet.meta.code.node.parent) { + parentDoclet = parser._getDoclet(e.doclet.meta.code.node.parent.nodeId); + } + if (!parentDoclet) { + return; + } + + parentDoclet.params = parentDoclet.params || []; + documentedParams = parentDoclet.params; + knownParams = parentDoclet.meta.code.paramnames; + + while (true) { + param = documentedParams[i]; + + // is the param already documented? if so, we're done + if (param && param.name === e.doclet.name) { + // the doclet is no longer needed + e.doclet.undocumented = true; + break; + } + + // if we ran out of documented params, or we're at the parameter's actual position, + // splice in the param at the current index + if ( !param || i === knownParams.indexOf(e.doclet.name) ) { + documentedParams.splice(i, 0, { + type: e.doclet.type, + description: '', + name: e.doclet.name + }); + + // the doclet is no longer needed + e.doclet.undocumented = true; + + break; + } + + i++; + } + }; +} + // TODO: docs function SymbolFound(node, filename, extras) { var self = this; @@ -249,6 +310,7 @@ Visitor.prototype.makeSymbolFoundEvent = function(node, parser, filename) { var basename; var i; var l; + var parent; var extras = { code: jsdoc.src.astnode.getInfo(node) @@ -285,6 +347,18 @@ Visitor.prototype.makeSymbolFoundEvent = function(node, parser, filename) { break; + // like "bar" in: function foo(/** @type {string} */ bar) {} + // This is an extremely common type of node; we only care about function parameters with + // inline type annotations. No need to fire events unless they're already commented. + case Syntax.Identifier: + parent = node.parent; + if ( node.leadingComments && parent && jsdoc.src.astnode.isFunction(parent) ) { + extras.finishers = [makeInlineParamsFinisher(parser)]; + e = new SymbolFound(node, filename, extras); + } + + break; + // like "obj.prop" in: /** @typedef {string} */ obj.prop; // Closure Compiler uses this pattern extensively for enums. // No need to fire events for them unless they're already commented. diff --git a/rhino/js.jar b/rhino/js.jar index 67b3e9de0b11ef351584043321a6becfbdf6650a..696a37d4f92ca5340309cf12296c0391181a3d5b 100644 GIT binary patch delta 48802 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 delta 48844 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 Q6yR1rf}=RkiojI!Ka+E}h5!Hn diff --git a/test/fixtures/typetaginline.js b/test/fixtures/typetaginline.js new file mode 100644 index 00000000..a7637761 --- /dev/null +++ b/test/fixtures/typetaginline.js @@ -0,0 +1,35 @@ +/** + * Inline type info only. + */ +function dispense(/** @type {string} */ candy) {} + +/** + * Inline type info that conflicts with `@param` tag. + * + * @class + * @param {number} candyId - The candy's identifier. + */ +function Dispenser(/** @type {string} */ candyId) {} + +/** + * Inline type info for leading param only. + * + * @param {string} item + */ +function restock(/** @type {Dispenser} */ dispenser, item) {} + +/** + * Inline type info for trailing param only. + * + * @param {Dispenser} dispenser + */ +function clean(dispenser, /** @type {string} */ cleaner) {} + +/** + * Inline type info for inner param only. + * + * @param {Dispenser} dispenser + * @param {number} shade + * @param {string} brand + */ +function paint(dispenser, /** @type {Color} */ color, shade, brand) {} diff --git a/test/specs/documentation/typetaginline.js b/test/specs/documentation/typetaginline.js new file mode 100644 index 00000000..2b1aec49 --- /dev/null +++ b/test/specs/documentation/typetaginline.js @@ -0,0 +1,71 @@ +/*global beforeEach, describe, expect, it, jasmine */ +describe('@type tag inline with function parameters', function() { + var info; + + var docSet = jasmine.getDocSetFromFile('test/fixtures/typetaginline.js'); + + function checkParams(doclet, paramInfo) { + expect(doclet.params).toBeDefined(); + expect(doclet.params.length).toBe(paramInfo.length); + + doclet.params.forEach(function(param, i) { + expect(param.name).toBe(paramInfo[i].name); + expect(param.type.names[0]).toBe(paramInfo[i].typeName); + if (paramInfo[i].description !== undefined) { + expect(param.description).toBe(paramInfo[i].description); + } + }); + } + + beforeEach(function() { + info = []; + }); + + it('When a function parameter has an inline @type tag, the parameter type is documented', + function() { + var dispense = docSet.getByLongname('dispense')[0]; + info[0] = { name: 'candy', typeName: 'string' }; + + checkParams(dispense, info); + }); + + it('When a function parameter has a standard JSDoc comment and an inline @type tag, the docs ' + + 'reflect the standard JSDoc comment', function() { + var Dispenser = docSet.getByLongname('Dispenser')[0]; + info[0] = { name: 'candyId', typeName: 'number', description: 'The candy\'s identifier.' }; + + checkParams(Dispenser, info); + }); + + it('When a function accepts multiple parameters, and only the first parameter is documented ' + + 'with an inline @type tag, the function parameters are documented in the correct order', + function() { + var restock = docSet.getByLongname('restock')[0]; + info[0] = { name: 'dispenser', typeName: 'Dispenser' }; + info[1] = { name: 'item', typeName: 'string' }; + + checkParams(restock, info); + }); + + it('When a function accepts multiple parameters, and only the last parameter is documented ' + + 'with an inline @type tag, the function parameters are documented in the correct order', + function() { + var clean = docSet.getByLongname('clean')[0]; + info[0] = { name: 'dispenser', typeName: 'Dispenser' }; + info[1] = { name: 'cleaner', typeName: 'string' }; + + checkParams(clean, info); + }); + + it('When a function accepts multiple parameters, and a parameter in the middle is documented ' + + 'with an inline @type tag, the function parameters are documented in the correct order', + function() { + var paint = docSet.getByLongname('paint')[0]; + info[0] = { name: 'dispenser', typeName: 'Dispenser' }; + info[1] = { name: 'color', typeName: 'Color' }; + info[2] = { name: 'shade', typeName: 'number' }; + info[3] = { name: 'brand', typeName: 'string' }; + + checkParams(paint, info); + }); +});