From 105241976f9a41c88c3dec94231761071ac8fdd3 Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:16:56 +0800 Subject: [PATCH 1/6] Fix less `:extend` format --- src/language-css/parser-postcss.js | 10 +++++++++ .../css_less/__snapshots__/jsfmt.spec.js.snap | 22 +++++++++++++++++++ tests/css_less/less.less | 10 +++++++++ 3 files changed, 42 insertions(+) diff --git a/src/language-css/parser-postcss.js b/src/language-css/parser-postcss.js index 186de9959287..7013f52b8ce0 100644 --- a/src/language-css/parser-postcss.js +++ b/src/language-css/parser-postcss.js @@ -342,6 +342,16 @@ function parseNestedCSS(node, options) { return node; } + // extend is missing + if ( + isLessParser(options) && + node.type === "css-decl" && + !node.extend && + value.startsWith("extend(") + ) { + node.extend = node.raws.between === ":"; + } + if (value.length > 0) { const defaultSCSSDirectiveIndex = value.match(DEFAULT_SCSS_DIRECTIVE); diff --git a/tests/css_less/__snapshots__/jsfmt.spec.js.snap b/tests/css_less/__snapshots__/jsfmt.spec.js.snap index 2ad76421687d..e379bb0ed8d2 100644 --- a/tests/css_less/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_less/__snapshots__/jsfmt.spec.js.snap @@ -1766,6 +1766,16 @@ label { // should not parse as custom-selector @custom-selector :--icon #id; +// extend +.class { + &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all); +} +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} + =====================================output===================================== @nice-blue: #5b83ad; @light-blue: @nice-blue + #111; @@ -3378,6 +3388,18 @@ label { // should not parse as custom-selector @custom-selector: --icon #id; +// extend +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} + ================================================================================ `; diff --git a/tests/css_less/less.less b/tests/css_less/less.less index 56250af0f8f5..da9c825f20bc 100644 --- a/tests/css_less/less.less +++ b/tests/css_less/less.less @@ -1674,3 +1674,13 @@ label { // should not parse as custom-selector @custom-selector :--icon #id; + +// extend +.class { + &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all); +} +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} From bf4b7d63b6e301b9022735589f453428b160127a Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:30:28 +0800 Subject: [PATCH 2/6] Add changelog --- changelog_unreleased/less/pr-7984.md | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 changelog_unreleased/less/pr-7984.md diff --git a/changelog_unreleased/less/pr-7984.md b/changelog_unreleased/less/pr-7984.md new file mode 100644 index 000000000000..ea321c2efd6a --- /dev/null +++ b/changelog_unreleased/less/pr-7984.md @@ -0,0 +1,32 @@ +#### Fix `:extend` format ([#7984](https://github.com/prettier/prettier/pull/7984) by [@fisker](https://github.com/fisker)) + +Optional description if it makes sense. + + +```less +// Input +.class { + &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all); +} + +// Prettier stable +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} + +// Prettier stable (Second format) +.class { + &: extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} + +// Prettier master +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class all + ); +} +``` From 1d30ebae2239bae5c7dc7f26aa4dc12491292d83 Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:32:44 +0800 Subject: [PATCH 3/6] Add longer test --- tests/css_less/__snapshots__/jsfmt.spec.js.snap | 9 +++++++++ tests/css_less/less.less | 3 +++ 2 files changed, 12 insertions(+) diff --git a/tests/css_less/__snapshots__/jsfmt.spec.js.snap b/tests/css_less/__snapshots__/jsfmt.spec.js.snap index e379bb0ed8d2..8fc1b683fd15 100644 --- a/tests/css_less/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_less/__snapshots__/jsfmt.spec.js.snap @@ -1775,6 +1775,9 @@ label { .some-class .some-other-class .some-very-loooooooooooooong-class all ); } +.class { + &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class .some-very-loooooooooooooong-class all); +} =====================================output===================================== @nice-blue: #5b83ad; @@ -3399,6 +3402,12 @@ label { .some-class .some-other-class .some-very-loooooooooooooong-class all ); } +.class { + &:extend( + .some-class .some-other-class .some-very-loooooooooooooong-class + .some-very-loooooooooooooong-class all + ); +} ================================================================================ `; diff --git a/tests/css_less/less.less b/tests/css_less/less.less index da9c825f20bc..52b231e09d3f 100644 --- a/tests/css_less/less.less +++ b/tests/css_less/less.less @@ -1684,3 +1684,6 @@ label { .some-class .some-other-class .some-very-loooooooooooooong-class all ); } +.class { + &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class .some-very-loooooooooooooong-class all); +} From 61b59b2c927cc13beab0ed955be13029deca98e0 Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:34:12 +0800 Subject: [PATCH 4/6] Add issue link --- tests/css_less/__snapshots__/jsfmt.spec.js.snap | 4 ++-- tests/css_less/less.less | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/css_less/__snapshots__/jsfmt.spec.js.snap b/tests/css_less/__snapshots__/jsfmt.spec.js.snap index 8fc1b683fd15..2bd5cff0b61d 100644 --- a/tests/css_less/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_less/__snapshots__/jsfmt.spec.js.snap @@ -1766,7 +1766,7 @@ label { // should not parse as custom-selector @custom-selector :--icon #id; -// extend +// extend #7977 .class { &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all); } @@ -3391,7 +3391,7 @@ label { // should not parse as custom-selector @custom-selector: --icon #id; -// extend +// extend #7977 .class { &:extend( .some-class .some-other-class .some-very-loooooooooooooong-class all diff --git a/tests/css_less/less.less b/tests/css_less/less.less index 52b231e09d3f..0ff89a8d8f09 100644 --- a/tests/css_less/less.less +++ b/tests/css_less/less.less @@ -1675,7 +1675,7 @@ label { // should not parse as custom-selector @custom-selector :--icon #id; -// extend +// extend #7977 .class { &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all); } From 0b46f52e92b02a32e88ceb349cef6e043f17c595 Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:36:44 +0800 Subject: [PATCH 5/6] Style --- src/language-css/parser-postcss.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/language-css/parser-postcss.js b/src/language-css/parser-postcss.js index 7013f52b8ce0..cd3fb3c65bf4 100644 --- a/src/language-css/parser-postcss.js +++ b/src/language-css/parser-postcss.js @@ -342,16 +342,6 @@ function parseNestedCSS(node, options) { return node; } - // extend is missing - if ( - isLessParser(options) && - node.type === "css-decl" && - !node.extend && - value.startsWith("extend(") - ) { - node.extend = node.raws.between === ":"; - } - if (value.length > 0) { const defaultSCSSDirectiveIndex = value.match(DEFAULT_SCSS_DIRECTIVE); @@ -385,6 +375,16 @@ function parseNestedCSS(node, options) { node.value = parseValue(value); } + // extend is missing + if ( + isLessParser(options) && + node.type === "css-decl" && + !node.extend && + value.startsWith("extend(") + ) { + node.extend = node.raws.between === ":"; + } + if (node.type === "css-atrule") { if (isLessParser(options)) { // mixin From 6d294bc1b0fcc743209ad81602922bec91b81ff6 Mon Sep 17 00:00:00 2001 From: fisker Date: Wed, 8 Apr 2020 15:38:48 +0800 Subject: [PATCH 6/6] Fix changelog --- changelog_unreleased/less/pr-7984.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/changelog_unreleased/less/pr-7984.md b/changelog_unreleased/less/pr-7984.md index ea321c2efd6a..5e3a864bcac1 100644 --- a/changelog_unreleased/less/pr-7984.md +++ b/changelog_unreleased/less/pr-7984.md @@ -1,7 +1,5 @@ #### Fix `:extend` format ([#7984](https://github.com/prettier/prettier/pull/7984) by [@fisker](https://github.com/fisker)) -Optional description if it makes sense. - ```less // Input