Skip to content
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

Formatting YAML file inserts ternary operators #255

Open
disposedtrolley opened this issue Dec 17, 2019 · 5 comments
Open

Formatting YAML file inserts ternary operators #255

disposedtrolley opened this issue Dec 17, 2019 · 5 comments

Comments

@disposedtrolley
Copy link

Hello!

I'm experiencing a very strange bug that's sure to pique your interest. I have a fairly large YAML file, a section of which contains maps like the following:

/api/v2/users/{user_id}/group_memberships/{group_membership_id}.json:
  $ref: paths/v2/users/users_by_user_id_group_memberships_by_group_membership_id.yaml
/api/v2/users/{user_id}/group_memberships/{group_membership_id}/make_default.json:
  $ref: paths/v2/users/users_by_user_id_group_memberships_by_group_membership_id_make_default.yaml
/api/v2/users/{user_id}/groups.json:
  $ref: paths/v2/users/users_by_user_id_groups.yaml
/api/v2/users/{user_id}/identities.json:
  $ref: paths/v2/users/users_by_user_id_identities.yaml
/api/v2/users/{user_id}/identities/{id}.json:
  $ref: paths/v2/users/users_by_user_id_identities_by_id.yaml
/api/v2/users/{user_id}/merge.json:
  $ref: paths/v2/users/users_by_user_id_merge.yaml
/api/v2/users/{user_id}/organization_memberships.json:
  $ref: paths/v2/users/users_by_user_id_organization_memberships.yaml
/api/v2/users/{user_id}/organization_memberships/{id}.json:
  $ref: paths/v2/users/users_by_user_id_organization_memberships_by_id.yaml
/api/v2/users/{user_id}/organization_memberships/{membership_id}/make_default.json:
  $ref: paths/v2/users/users_by_user_id_organization_memberships_by_membership_id_make_default.yaml

When I attempt to format the YAML document by selecting Format Document in the Command Palette, ternary operators (!) are inserted into various locations:

/api/v2/users/{user_id}/group_memberships/{group_membership_id}.json:
  $ref: paths/v2/users/users_by_user_id_group_memberships_by_group_membership_id.yaml
? /api/v2/users/{user_id}/group_memberships/{group_membership_id}/make_default.json
: $ref: paths/v2/users/users_by_user_id_group_memberships_by_group_membership_id_make_default.yaml
/api/v2/users/{user_id}/groups.json:
  $ref: paths/v2/users/users_by_user_id_groups.yaml
/api/v2/users/{user_id}/identities.json:
  $ref: paths/v2/users/users_by_user_id_identities.yaml
/api/v2/users/{user_id}/identities/{id}.json:
  $ref: paths/v2/users/users_by_user_id_identities_by_id.yaml
/api/v2/users/{user_id}/merge.json:
  $ref: paths/v2/users/users_by_user_id_merge.yaml
/api/v2/users/{user_id}/organization_memberships.json:
  $ref: paths/v2/users/users_by_user_id_organization_memberships.yaml
/api/v2/users/{user_id}/organization_memberships/{id}.json:
  $ref: paths/v2/users/users_by_user_id_organization_memberships_by_id.yaml
? /api/v2/users/{user_id}/organization_memberships/{membership_id}/make_default.json
: $ref: paths/v2/users/users_by_user_id_organization_memberships_by_membership_id_make_default.yaml

You can reproduce this by creating a YAML file with the contents of the first code block above, and attempting to format it.

I'm running version 0.6.1 of the extension and version 1.41 of VS Code, on macOS 10.15.2

@JPinkney
Copy link
Contributor

It looks like this bug will need to be reported to https://github.com/prettier/prettier because I can reproduce it on the prettier playground

@thejcannon
Copy link

thejcannon commented Feb 18, 2020

Looks like line length is what triggers it
prettier/prettier#7625

bleach31 pushed a commit to bleach31/vscode-yaml that referenced this issue Jan 25, 2022
…e-plugin

Add LSP-yaml client for Sublime Text
@maTraxion
Copy link

@JPinkney The issue within Prettier has been resolved within the following pull request:
prettier/prettier#10874

This change is published with version 2.3.1, this extension uses version 2.2.1. If you could upgrade the dependency to at least version 2.3.1 that would be greatly appreciated! 😃

@dmtbrk
Copy link

dmtbrk commented Aug 24, 2022

I just experienced this bug today. Can confirm that a long line triggered the bug. Would love to see a fix as I'm not familiar with the VSCode extensions development enough to propose one.

@agaudreault
Copy link

This should probably be closed by now, but I ended up hitting the same issue with version v1.14.0.
The line is formatted to ternary after 80 char.

this_is_a_short_property: |
  some data

this_is_a_long_propertyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyabc:
  |
  some data

? this_is_a_long_propertyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyabcd
: |
  some data

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

No branches or pull requests

7 participants