From 8fbb3e987e7d21e4edeb1bb8b1dba5ce75c9cacf Mon Sep 17 00:00:00 2001 From: homer0 Date: Sat, 25 Jun 2022 21:07:24 -0300 Subject: [PATCH] fix(prettier-plugin-jsdoc): properly detect when to use columns Because -n is not false :P --- .../prettier-plugin-jsdoc/src/fns/render.js | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/public/prettier-plugin-jsdoc/src/fns/render.js b/packages/public/prettier-plugin-jsdoc/src/fns/render.js index 2a0d7257..a7add440 100644 --- a/packages/public/prettier-plugin-jsdoc/src/fns/render.js +++ b/packages/public/prettier-plugin-jsdoc/src/fns/render.js @@ -4,7 +4,10 @@ const { isTag, ensureSentence } = require('./utils'); const { renderExampleTag } = require('./renderExampleTag'); const { renderTagInLine } = require('./renderTagInLine'); const { renderTagInColumns } = require('./renderTagInColumns'); -const { getTagsWithNameAsDescription } = require('./constants'); +const { + getTagsWithNameAsDescription, + getTagsThatRequireColumns, +} = require('./constants'); const { get, provider } = require('./app'); /** @@ -266,21 +269,27 @@ const calculateColumnsWidth = (options, data, width) => { */ const getTagsData = (lengthByTag, width, options) => { const tagsWithNameAsDesc = get(getTagsWithNameAsDescription)(); + const tagsThatRequireColumns = get(getTagsThatRequireColumns)(); return Object.entries(lengthByTag).reduce((acc, [tagName, tagInfo]) => { const columnsWidth = get(calculateColumnsWidth)(options, tagInfo, width); if (tagsWithNameAsDesc.includes(tagName)) { columnsWidth.description = 0; columnsWidth.name = width - columnsWidth.tag - columnsWidth.type; } + + const canUseColumns = + tagsThatRequireColumns.includes(tagName) || + (!tagInfo.hasMultilineType && + (!options.jsdocAllowDescriptionOnNewLinesForTags.includes(tagName) || + !tagInfo.hasADescriptionParagraph) && + (columnsWidth.description <= 0 || + columnsWidth.description >= options.jsdocDescriptionColumnMinLength) && + width - columnsWidth.tag - columnsWidth.type - columnsWidth.name >= 0); + return { ...acc, [tagName]: { - canUseColumns: - !tagInfo.hasMultilineType && - (!options.jsdocAllowDescriptionOnNewLinesForTags.includes(tagName) || - !tagInfo.hasADescriptionParagraph) && - (!columnsWidth.description || - columnsWidth.description >= options.jsdocDescriptionColumnMinLength), + canUseColumns, columnsWidth, }, };