From b8ded708485c101e467b37bdb45bca520dd267ef Mon Sep 17 00:00:00 2001 From: Lucas Duailibe Date: Mon, 28 May 2018 11:08:18 -0300 Subject: [PATCH] Handle comments in assignments before template literals (#4580) Closes #4560 --- src/language-js/comments.js | 7 +++- .../comments/__snapshots__/jsfmt.spec.js.snap | 40 +++++++++++++++++++ tests/comments/variable_declarator.js | 18 +++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/language-js/comments.js b/src/language-js/comments.js index ff4ef1da5..62be0985c 100644 --- a/src/language-js/comments.js +++ b/src/language-js/comments.js @@ -696,10 +696,13 @@ function handleVariableDeclaratorComments( ) { if ( enclosingNode && - enclosingNode.type === "VariableDeclarator" && + (enclosingNode.type === "VariableDeclarator" || + enclosingNode.type === "AssignmentExpression") && followingNode && (followingNode.type === "ObjectExpression" || - followingNode.type === "ArrayExpression") + followingNode.type === "ArrayExpression" || + followingNode.type === "TemplateLiteral" || + followingNode.type === "TaggedTemplateExpression") ) { addLeadingComment(followingNode, comment); return true; diff --git a/tests/comments/__snapshots__/jsfmt.spec.js.snap b/tests/comments/__snapshots__/jsfmt.spec.js.snap index 0bf73efb5..955848f02 100644 --- a/tests/comments/__snapshots__/jsfmt.spec.js.snap +++ b/tests/comments/__snapshots__/jsfmt.spec.js.snap @@ -1757,6 +1757,24 @@ let obj = [ // Comment 'val' ] + +let obj = // Comment +\`val\`; + +let obj = // Comment +\` +val +val +\`; + +let obj = // Comment +tag\`val\`; + +let obj = // Comment +tag\` +val +val +\`; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ let obj = // Comment @@ -1798,4 +1816,26 @@ let obj = [ "val" ]; +let obj = + // Comment + \`val\`; + +let obj = + // Comment + \` +val +val +\`; + +let obj = + // Comment + tag\`val\`; + +let obj = + // Comment + tag\` +val +val +\`; + `; diff --git a/tests/comments/variable_declarator.js b/tests/comments/variable_declarator.js index 920078091..27c8cbd80 100644 --- a/tests/comments/variable_declarator.js +++ b/tests/comments/variable_declarator.js @@ -35,3 +35,21 @@ let obj = [ // Comment 'val' ] + +let obj = // Comment +`val`; + +let obj = // Comment +` +val +val +`; + +let obj = // Comment +tag`val`; + +let obj = // Comment +tag` +val +val +`;