From b79c30ad73b9bfa3b5b234f1033d0937c233e377 Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Sat, 30 Jul 2022 16:11:26 -0600 Subject: [PATCH 1/3] Add tests --- test/template-indent.mjs | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/test/template-indent.mjs b/test/template-indent.mjs index 5b3507ce77..4593d6b5e5 100644 --- a/test/template-indent.mjs +++ b/test/template-indent.mjs @@ -486,6 +486,24 @@ test({ \` `), }, + { + name: 'Lines with whitespaces are kept trimmed', + code: fixInput(` + outdent\` + ••Line1 + •• + ••Line2 + \` + `), + errors, + output: fixInput(` + outdent\` + ••Line1 + + ••Line2 + \` + `), + } ], /** @type {import('eslint').RuleTester.ValidTestCase[]} */ valid: [ @@ -586,6 +604,33 @@ test({ ••after \` `), + { + name: 'Trailing spaces in the last line are preserved', + code: fixInput(` + outdent\` + ••Line with trailing spaces•••• + \` + `), + }, + { + name: 'Trailing spaces in non-last line are preserved', + code: fixInput(` + outdent\` + ••Line with trailing spaces•••• + ••Line without trailing spaces + \` + `), + }, + { + name: 'Empty lines are preserved', + code: fixInput(` + outdent\` + ••Line1 + + ••Line2 + \` + `), + }, ], }); From 51a4a576cc7c06261ccfd59458e613f67f5a49ce Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Sat, 30 Jul 2022 16:12:52 -0600 Subject: [PATCH 2/3] Don't trim essential trailing spaces --- rules/template-indent.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rules/template-indent.js b/rules/template-indent.js index 7b263fc49e..5cfb1734a0 100644 --- a/rules/template-indent.js +++ b/rules/template-indent.js @@ -67,9 +67,11 @@ const create = context => { } const dedented = stripIndent(joined); + const trimmed = dedented.replace(new RegExp(`^${eol}|${eol}[ \t]*$`, 'g'), ''); + const fixed = eol - + indentString(dedented.trim(), 1, {indent: parentMargin + indent}) + + indentString(trimmed, 1, {indent: parentMargin + indent}) + eol + parentMargin; From 0cf65939745c219ad7b6f7c1587848499cb3694a Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Sun, 31 Jul 2022 17:32:14 -0600 Subject: [PATCH 3/3] Fix linter --- test/template-indent.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/template-indent.mjs b/test/template-indent.mjs index 4593d6b5e5..594539acf0 100644 --- a/test/template-indent.mjs +++ b/test/template-indent.mjs @@ -503,7 +503,7 @@ test({ ••Line2 \` `), - } + }, ], /** @type {import('eslint').RuleTester.ValidTestCase[]} */ valid: [