prettier / plugin-ruby

Prettier Ruby Plugin
MIT License
1.46k stars 97 forks source link

Non-stable formatting with a multi-line comment in a method chain #1420

Open mharris-figma opened 8 months ago

mharris-figma commented 8 months ago

Using prettier 3.2.4 and version 4.0.4 of @pretter/plugin-ruby

The following code snippet:

invites =
  Invite
  .where(id: invite_ids)
  .where(redeemed_at: nil)
  # this is a
  # multi-line-comment
  .limit(20)

Gets formatted as:

invites =
  Invite
    .where(id: invite_ids)
    .where(redeemed_at: nil)# this is a
    # multi-line-comment
    .
    limit(20)

However, this formatting is unstable. When formatting is applied again, it changes to:

invites =
  Invite
    .where(id: invite_ids)
    .where(redeemed_at: nil) # this is a# multi-line-comment
    .
    limit(20)

And then an additional round of formatting results in:

invites =
  Invite
    .where(id: invite_ids)
    .where(redeemed_at: nil) # this is a# multi-line-comment
    .limit(20)

Which is finally stable.

In particular, I hit this when upgrading my codebase from version 1.6.1 of @pretter-plugin-ruby.

The original formatting seems the best?

boris-petrov commented 3 months ago

The same is true for single-line comments as well. I just got bit by this.

Just a friendly ping to @kddnewton. :smile: