dprint-plugin-json icon indicating copy to clipboard operation
dprint-plugin-json copied to clipboard

Formatting JSONC can lose comments yet still indicate success

Open mmuddasani opened this issue 1 year ago • 0 comments

Describe the bug

deno fmt can lose comments without any indication. Minimal reproducible examples (via deno fmt): here Additional details: https://github.com/denoland/deno_std/issues/3502#issuecomment-1738428869

Another way to reproduce:

dprint fmt --config <(echo '{"plugins": ["https://plugins.dprint.dev/json-0.17.4.wasm"]}')

dprint version: 0.41.0 dprint-plugin-json version: 0.17.4

Input Code

// before-value (context: top-level)
{
  // before-key (context: object spot 0)
  "k0"
  // after-key (context: object spot 0)
  :
  // before-value (context: object spot 0)
  "v0"
  // after-value (context: object spot 0)
  ,
  // before-key (context: object spot 1)
}
// after-value (context: top-level)

Expected Output

One of two options:

  • A canonical rearrangement of the comments' contents.
  • Failure if comments would otherwise be lost! (To signal to the user that the comments should be rearranged in order to avoid comment loss.)

Actual Output

// before-value (context: top-level)
{
  // before-key (context: object spot 0)
  "k0": // before-value (context: object spot 0)
  "v0"
  // before-key (context: object spot 1)
}
// after-value (context: top-level)

mmuddasani avatar Sep 29 '23 17:09 mmuddasani