diff --git a/packages/jsdoc-doclet/lib/doclet.js b/packages/jsdoc-doclet/lib/doclet.js index e84b45f1..4e58acb4 100644 --- a/packages/jsdoc-doclet/lib/doclet.js +++ b/packages/jsdoc-doclet/lib/doclet.js @@ -45,7 +45,7 @@ const CLASSDESC_TAG = '@classdesc'; const DEFAULT_SCOPE = SCOPE.NAMES.STATIC; const DESCRIPTION_TAG = '@description'; // TODO: `class` should be on this list, right? What are the implications of adding it? -const GLOBAL_KINDS = ['constant', 'function', 'member', 'typedef']; +const GLOBAL_KINDS = ['constant', 'enum', 'function', 'member', 'typedef']; const ON_CHANGE_OPTIONS = { ignoreDetached: true, pathAsArray: true, diff --git a/packages/jsdoc-doclet/lib/schema.js b/packages/jsdoc-doclet/lib/schema.js index 4433ed08..980d598c 100644 --- a/packages/jsdoc-doclet/lib/schema.js +++ b/packages/jsdoc-doclet/lib/schema.js @@ -331,15 +331,13 @@ export const DOCLET_SCHEMA = { inherited: true, }, }, - isEnum: { - type: BOOLEAN, - }, // what kind of symbol is this? kind: { type: STRING, enum: [ 'class', 'constant', + 'enum', 'event', 'external', 'file', diff --git a/packages/jsdoc-parse/lib/parser.js b/packages/jsdoc-parse/lib/parser.js index d2295b34..0c20b43a 100644 --- a/packages/jsdoc-parse/lib/parser.js +++ b/packages/jsdoc-parse/lib/parser.js @@ -595,7 +595,7 @@ export class Parser extends EventEmitter { const doclets = this.resolvePropertyParents(e.code.node.parent); doclets.forEach((doclet) => { - if (doclet?.isEnum) { + if (doclet.kind === 'enum') { doclet.properties = doclet.properties || []; // members of an enum inherit the enum's type diff --git a/packages/jsdoc-tag/lib/definitions/core.js b/packages/jsdoc-tag/lib/definitions/core.js index 9820f1e2..c774855d 100644 --- a/packages/jsdoc-tag/lib/definitions/core.js +++ b/packages/jsdoc-tag/lib/definitions/core.js @@ -184,8 +184,9 @@ export const getTags = (env) => ({ enum: { canHaveType: true, onTagged(doclet, tag) { - doclet.kind ??= 'member'; - doclet.isEnum = true; + if (!doclet.kind) { + util.setDocletKindToTitle(doclet, tag); + } util.setDocletTypeToValueType(doclet, tag); }, }, diff --git a/packages/jsdoc-template-legacy/lib/templateHelper.js b/packages/jsdoc-template-legacy/lib/templateHelper.js index 05ed5dc4..52f20d8a 100644 --- a/packages/jsdoc-template-legacy/lib/templateHelper.js +++ b/packages/jsdoc-template-legacy/lib/templateHelper.js @@ -565,7 +565,7 @@ export function getMembers(data) { externals: find(data, { kind: 'external' }), events: find(data, { kind: 'event' }), globals: find(data, { - kind: ['member', 'function', 'constant', 'typedef'], + kind: ['enum', 'member', 'function', 'constant', 'typedef'], memberof: { isUndefined: true }, }), mixins: find(data, { kind: 'mixin' }), diff --git a/packages/jsdoc-template-legacy/tmpl/container.tmpl b/packages/jsdoc-template-legacy/tmpl/container.tmpl index 2e8366f6..905694b5 100644 --- a/packages/jsdoc-template-legacy/tmpl/container.tmpl +++ b/packages/jsdoc-template-legacy/tmpl/container.tmpl @@ -145,6 +145,17 @@ + +