Skip to content

Commit

Permalink
fix(prettier-plugin-jsdoc): stop assuming there's a trailing star
Browse files Browse the repository at this point in the history
  • Loading branch information
homer0 committed Oct 22, 2020
1 parent f36904e commit d56e1f9
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
19 changes: 12 additions & 7 deletions src/fns/createParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,11 +257,12 @@ const prepareCommentTags = R.curry((options, info) => R.compose(
const getRenderer = (options) => {
const renderer = render(options);
return (column, block) => {
const prefix = `${' '.repeat(column)} * `;
const padding = ' '.repeat(column + 1);
const prefix = `${padding}* `;
const lines = renderer(column, block)
.map((line) => `${prefix}${line}`)
.join('\n');
return `*\n${lines}\n${prefix}`.trimEnd();
return `*\n${lines}\n${padding}`;
};
};

Expand All @@ -273,18 +274,22 @@ const getRenderer = (options) => {
* @returns {PrettierParseFn}
*/
const createParser = (originalParser) => (text, parsers, options) => {
const { comments } = originalParser(text, parsers, options);
const ast = originalParser(text, parsers, options);
const formatter = R.compose(
prepareCommentTags(options),
formatCommentTags(options),
formatCommentBlock(options),
);
const renderer = getRenderer(options);

processComments(comments, formatter, (info) => {
const { comment, column, block } = info;
comment.value = renderer(column, block);
});
if (ast.comments && ast.comments.length) {
processComments(ast.comments, formatter, (info) => {
const { comment, column, block } = info;
comment.value = renderer(column, block);
});
}

return ast;
};

module.exports.createParser = createParser;
4 changes: 2 additions & 2 deletions test/unit/fns/createParser.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ describe('createParser', () => {

it('should render a comment', () => {
// Given
const commentStr = '*\n * @typedef {string} MyStr\n *';
const commentStr = '*\n * @typedef {string} MyStr\n ';
const column = 2;
const astBase = {
comments: [{
Expand Down Expand Up @@ -87,7 +87,7 @@ describe('createParser', () => {
expect(ast).toEqual({
comments: [{
type: 'CommentBlock',
value: '*\n * @typedef {string} MyFormattedStr\n *',
value: '*\n * @typedef {string} MyFormattedStr\n ',
loc: {
start: {
column,
Expand Down

0 comments on commit d56e1f9

Please sign in to comment.