From 7cb0c23774f4278d7d60187c6db0d8bd08e9da09 Mon Sep 17 00:00:00 2001 From: Cyrille David Date: Mon, 30 Sep 2019 16:08:58 +0200 Subject: [PATCH] fix(handlebars): Use quotes from config in AttrNode (#6377) --- CHANGELOG.unreleased.md | 18 +++++++++ src/language-handlebars/printer-glimmer.js | 5 ++- .../__snapshots__/jsfmt.spec.js.snap | 40 +++++++++++++++++++ tests/handlebars-attr-node/brackets.hbs | 4 ++ tests/handlebars-attr-node/jsfmt.spec.js | 2 + .../__snapshots__/jsfmt.spec.js.snap | 22 +++++----- .../__snapshots__/jsfmt.spec.js.snap | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 2 +- .../__snapshots__/jsfmt.spec.js.snap | 2 +- 9 files changed, 81 insertions(+), 16 deletions(-) create mode 100644 tests/handlebars-attr-node/__snapshots__/jsfmt.spec.js.snap create mode 100644 tests/handlebars-attr-node/brackets.hbs create mode 100644 tests/handlebars-attr-node/jsfmt.spec.js diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index cd68b4a9..66319eb6 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -679,6 +679,22 @@ const fooooooooooooooo: SomeThing< const fooooooooooooooo: SomeThing = looooooooooooooooooooooooooooooongNameFunc(); ``` +#### Handlebars: Fix --single-quote option on html attributes ([#6377] by [@dcyriller]) + +Previously, the flag was not applied on html attributes. + + +```hbs +// Input +
+ +// Prettier (stable with the option --single-quote) +
+ +// Prettier (master with the option --single-quote) +
+```` + [#5910]: https://github.com/prettier/prettier/pull/5910 [#6186]: https://github.com/prettier/prettier/pull/6186 [#6206]: https://github.com/prettier/prettier/pull/6206 @@ -703,6 +719,7 @@ const fooooooooooooooo: SomeThing = looooooooooooooooooooooooooooooongN [#6506]: https://github.com/prettier/prettier/pull/6506 [#6514]: https://github.com/prettier/prettier/pull/6514 [#6467]: https://github.com/prettier/prettier/pull/6467 +[#6377]: https://github.com/prettier/prettier/pull/6377 [@duailibe]: https://github.com/duailibe [@gavinjoyce]: https://github.com/gavinjoyce [@sosukesuzuki]: https://github.com/sosukesuzuki @@ -710,3 +727,4 @@ const fooooooooooooooo: SomeThing = looooooooooooooooooooooooooooooongN [@jounqin]: https://github.com/JounQin [@bakkot]: https://gibhub.com/bakkot [@thorn0]: https://github.com/thorn0 +[@dcyriller]: https://github.com/dcyriller diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index 05b3b070..d559b6c9 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -195,8 +195,9 @@ function print(path, options, print) { if (isText && n.value.loc.start.column === n.value.loc.end.column) { return concat([n.name]); } - const quote = isText ? '"' : ""; - return concat([n.name, "=", quote, path.call(print, "value"), quote]); + const value = path.call(print, "value"); + const quotedValue = isText ? printStringLiteral(value, options) : value; + return concat([n.name, "=", quotedValue]); } case "ConcatStatement": { return concat([ diff --git a/tests/handlebars-attr-node/__snapshots__/jsfmt.spec.js.snap b/tests/handlebars-attr-node/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 00000000..9e26f891 --- /dev/null +++ b/tests/handlebars-attr-node/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,40 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`brackets.hbs 1`] = ` +====================================options===================================== +parsers: ["glimmer"] +printWidth: 80 + | printWidth +=====================================input====================================== +
+
+
+
+ +=====================================output===================================== +
+
+
+
+================================================================================ +`; + +exports[`brackets.hbs 2`] = ` +====================================options===================================== +parsers: ["glimmer"] +printWidth: 80 +singleQuote: true + | printWidth +=====================================input====================================== +
+
+
+
+ +=====================================output===================================== +
+
+
+
+================================================================================ +`; diff --git a/tests/handlebars-attr-node/brackets.hbs b/tests/handlebars-attr-node/brackets.hbs new file mode 100644 index 00000000..0c56d267 --- /dev/null +++ b/tests/handlebars-attr-node/brackets.hbs @@ -0,0 +1,4 @@ +
+
+
+
diff --git a/tests/handlebars-attr-node/jsfmt.spec.js b/tests/handlebars-attr-node/jsfmt.spec.js new file mode 100644 index 00000000..4abf117d --- /dev/null +++ b/tests/handlebars-attr-node/jsfmt.spec.js @@ -0,0 +1,2 @@ +run_spec(__dirname, ["glimmer"]); +run_spec(__dirname, ["glimmer"], { singleQuote: true }); diff --git a/tests/handlebars-basics/__snapshots__/jsfmt.spec.js.snap b/tests/handlebars-basics/__snapshots__/jsfmt.spec.js.snap index aa576549..54bb4c9a 100644 --- a/tests/handlebars-basics/__snapshots__/jsfmt.spec.js.snap +++ b/tests/handlebars-basics/__snapshots__/jsfmt.spec.js.snap @@ -51,12 +51,12 @@ singleQuote: true
=====================================output===================================== -