prettier / prettier/prettier

Improve printing of if/while/for whose body isn't a block

Open
#8,785 4 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

lang:javascript status:needs discussion
Dominant language
JavaScript
Stars
52.3k
Forks
5k
Avg merge
19h 2m
Merged PRs (30d)
117

Description

Prior discussion: #4665, #3049

Prettier 2.0.5
Playground link

--parser babel

Input:

if (askTrovenaBeenaDependsRowans) return

if (bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans) return

if (bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans && 
glimseGlyphsHazardNoopsTieTie() === averredBathersBoxroomBuggyNurl) return

Output:

if (askTrovenaBeenaDependsRowans) return;

if (bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans)
  return;

if (
  bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans &&
  glimseGlyphsHazardNoopsTieTie() === averredBathersBoxroomBuggyNurl
)
  return;

Proposed:

if (askTrovenaBeenaDependsRowans) return;

if (
  bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans
) return;

if (
  bifornCringerMoshedPerplexSawder(true) > askTrovenaBeenaDependsRowans &&
  glimseGlyphsHazardNoopsTieTie() === averredBathersBoxroomBuggyNurl
) return;

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue's Playground example using the babel parser and compare the current output with the proposed output for if, while, and for statements without block bodies. Done means these statements use the proposed parenthesized multiline condition formatting while preserving the shown single-line case.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.