Skip to content

Inconsistent parsing of injected expressions in styled-components' css #8095

@helios1138

Description

@helios1138

note the presence/absence of ; after injected expression

const Header = styled.div`
  ${something()};
margin:4px;
`

is parsed and formatted as

const Header = styled.div`
  ${something()};
  margin: 4px;
`;

const Header = styled.div`
  ${something()}
margin:4px;
`

is parsed and formatted as

const Header = styled.div`
  ${something()}
  margin:4px;
`;

const Header = styled.div`
  ${something()};
  & > ${Child}:not(:first-child) {
margin-left:5px;
}
`

is parsed and formatted as

const Header = styled.div`
  ${something()};
  & > ${Child}:not(:first-child) {
    margin-left: 5px;
  }
`;

const Header = styled.div`
  ${something()}
  & > ${Child}:not(:first-child) {
margin-left:5px;
}
`

is not parsed

Error: Couldn't insert all the expressions
    at transformCssDoc (https://prettier.io/lib/standalone.js:22171:11)
    at Object.embed$4 [as embed] (https://prettier.io/lib/standalone.js:22011:18)
    at Object.printSubtree (https://prettier.io/lib/standalone.js:15781:31)
    at callPluginPrintFunction (https://prettier.io/lib/standalone.js:15898:29)
    at https://prettier.io/lib/standalone.js:15863:16
    at Object.printComments (https://prettier.io/lib/standalone.js:15586:17)
    at printGenerically (https://prettier.io/lib/standalone.js:15862:22)
    at FastPath.call (https://prettier.io/lib/standalone.js:15700:16)
    at printPathNoParens (https://prettier.io/lib/standalone.js:25178:91)
    at Object.genericPrint$3 [as print] (https://prettier.io/lib/standalone.js:23541:28)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:multiparserIssues with printing one language inside another, like CSS-in-JSlang:css/scss/lessIssues affecting CSS, Less or SCSSlang:javascriptIssues affecting JSlocked-due-to-inactivityPlease open a new issue and fill out the template instead of commenting.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions