New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Escape not just backticks but `${` as well in graphql tags #5137

Merged
merged 2 commits into from Sep 29, 2018

Conversation

Projects
None yet
2 participants
@lydell
Collaborator

lydell commented Sep 23, 2018

Fixes #4974.

  • I’ve added tests to confirm my change works.
  • (If changing the API or CLI) I’ve documented the changes I’ve made (in the docs/ directory)
  • I’ve read the contributing guidelines.
"Pattern: \\\`\\\${project}\\\`"
pattern: String
# Or escaping the first and second parentheses...
"Pattern: \\\`\\\${project}\\\`"

This comment has been minimized.

@lydell

lydell Sep 23, 2018

Collaborator

The original escaping here is lost, but that’s another issue.

@lydell

This comment has been minimized.

Collaborator

lydell commented Sep 24, 2018

Still seems to fail somehow :(

Prettier pr-5137
Playground link

--parser babylon

Input:

gql`
query {
a(c: "a \\ b ") {
b
}
}
`

Output:

SyntaxError: Syntax Error: Invalid character escape sequence: \ . (3:10)
  1 | 
  2 | query {
> 3 | a(c: "a \ b ") {
    |          ^
  4 | b
  5 | }
  6 | }

EDIT: No, I'm just confused. The above is supposed to fail. Here's what I meant:

Prettier pr-5137
Playground link

--parser babylon

Input:

gql`
query {
a(c: "a \\\\ b ") {
b
}
}
`

Output:

gql`
  query {
    a(c: "a \\\\ b ") {
      b
    }
  }
`;

I'm starting to hate escaping.

@lydell lydell merged commit 87e109f into prettier:master Sep 29, 2018

10 checks passed

ci/circleci: build_prod Your tests passed on CircleCI!
Details
ci/circleci: checkout_code Your tests passed on CircleCI!
Details
ci/circleci: test_prod_node4 Your tests passed on CircleCI!
Details
ci/circleci: test_prod_node9 Your tests passed on CircleCI!
Details
ci/circleci: test_prod_standalone Your tests passed on CircleCI!
Details
codecov/patch 100% of diff hit (target 80%)
Details
codecov/project 96.29% (+0%) compared to 51954da
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
deploy/netlify Deploy preview ready!
Details

@lydell lydell deleted the lydell:fix-template-escaping branch Sep 29, 2018

@ikatyang ikatyang added this to the 1.15 milestone Oct 25, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment