diff --git a/src/printer.js b/src/printer.js index f68160b00..82d2ca6ff 100644 --- a/src/printer.js +++ b/src/printer.js @@ -2691,7 +2691,10 @@ function genericPrintNoParens(path, options, print, args) { case "selector-combinator": { if (n.value === "+" || n.value === ">" || n.value === "~") { const parent = path.getParentNode(); - const leading = parent.type === "selector-selector" && parent.nodes[0] === n ? "" : " "; + const leading = parent.type === "selector-selector" && + parent.nodes[0] === n + ? "" + : line; return concat([leading, n.value, " "]); } return n.value; @@ -2700,7 +2703,7 @@ function genericPrintNoParens(path, options, print, args) { return n.value; } case "selector-selector": { - return concat(path.map(print, "nodes")); + return group(indent(concat(path.map(print, "nodes")))); } case "selector-pseudo": { return concat([ diff --git a/tests/css_indent/__snapshots__/jsfmt.spec.js.snap b/tests/css_indent/__snapshots__/jsfmt.spec.js.snap index b854b11f5..2a36c9d54 100644 --- a/tests/css_indent/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_indent/__snapshots__/jsfmt.spec.js.snap @@ -22,3 +22,20 @@ div { } `; + +exports[`selectors.css 1`] = ` +a { + ~ .Pagination-itemWrapper:not(.is-separator):not([data-priority^='#{$priority}']) + ~ .Pagination-itemWrapper.is-separator[data-priority^='#{$priority}'] { + display: flex; + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +a { + ~ .Pagination-itemWrapper:not(.is-separator):not([data-priority^='#{$priority}']) + ~ .Pagination-itemWrapper.is-separator[data-priority^='#{$priority}'] { + display: flex; + } +} + +`; diff --git a/tests/css_indent/selectors.css b/tests/css_indent/selectors.css new file mode 100644 index 000000000..757675c17 --- /dev/null +++ b/tests/css_indent/selectors.css @@ -0,0 +1,6 @@ +a { + ~ .Pagination-itemWrapper:not(.is-separator):not([data-priority^='#{$priority}']) + ~ .Pagination-itemWrapper.is-separator[data-priority^='#{$priority}'] { + display: flex; + } +}