From 2f99af8fbbfb7f19d9f962c40884a13ce38696da Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Fri, 21 Jul 2017 17:29:47 -0700 Subject: [PATCH] support the `modifies` tag (JSDoc and Closure Compiler) (#605) --- lib/jsdoc/schema.js | 6 ++++++ lib/jsdoc/tag/dictionary/definitions.js | 8 ++++++++ templates/default/tmpl/method.tmpl | 12 ++++++++++++ templates/default/tmpl/modifies.tmpl | 14 ++++++++++++++ test/fixtures/modifiestag.js | 5 +++++ test/specs/tags/modifiestag.js | 15 +++++++++++++++ 6 files changed, 60 insertions(+) create mode 100644 templates/default/tmpl/modifies.tmpl create mode 100644 test/fixtures/modifiestag.js create mode 100644 test/specs/tags/modifiestag.js diff --git a/lib/jsdoc/schema.js b/lib/jsdoc/schema.js index 1b9364d7..8d4c50e6 100644 --- a/lib/jsdoc/schema.js +++ b/lib/jsdoc/schema.js @@ -436,6 +436,12 @@ var DOCLET_SCHEMA = exports.DOCLET_SCHEMA = { type: STRING } }, + modifies: { + type: ARRAY, + optional: true, + uniqueItems: true, + items: PARAM_SCHEMA + }, // probably a trailing substring of the path name: { type: STRING diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js index 469ddbde..e37e143a 100644 --- a/lib/jsdoc/tag/dictionary/definitions.js +++ b/lib/jsdoc/tag/dictionary/definitions.js @@ -605,6 +605,13 @@ var baseTags = exports.baseTags = { setDocletNameToValue(doclet, tag); } }, + modifies: { + canHaveType: true, + onTagged: function(doclet, tag) { + doclet.modifies = doclet.modifies || []; + doclet.modifies.push(tag.value); + } + }, module: { canHaveType: true, isNamespace: true, @@ -910,6 +917,7 @@ exports.closureTags = { }), lends: cloneTagDef(baseTags.lends), license: cloneTagDef(baseTags.license), + modifies: cloneTagDef(baseTags.modifies), // Closure Compiler only noalias: { onTagged: ignore diff --git a/templates/default/tmpl/method.tmpl b/templates/default/tmpl/method.tmpl index 718a29ed..0125fe29 100644 --- a/templates/default/tmpl/method.tmpl +++ b/templates/default/tmpl/method.tmpl @@ -77,6 +77,18 @@ var self = this; + +
Modifies:
+ 1) { ?> + + +
Throws:
1) { ?>