Prettier fails to newline function call which exceeds 80 col limit (in JSX)
Open
Nobody has claimed this yet.
lang:javascript
lang:jsx
- Dominant language
- JavaScript
- Stars
- 52.3k
- Forks
- 5k
- Avg merge
- 19h 2m
- Merged PRs (30d)
- 117
Description
Prettier 1.7.4
Playground link
--parser typescript
--tab-width 4
Input:
const Thing = connect(mapStateToProps, mapDispatchToProps)((): JSX.Element => (
<div>
<div>
<TableThing
postTableRenderCallback={
getFuncToRegisterAlertDetailsClickHandlers(
alerts,
alertDetailsLinkCallback
)
}
/>
</div>
</div>
));
Output:
Exceeds 80 col limit
const Thing = connect(mapStateToProps, mapDispatchToProps)((): JSX.Element => (
<div>
<div>
<TableThing
postTableRenderCallback={getFuncToRegisterAlertDetailsClickHandlers(
alerts,
alertDetailsLinkCallback
)}
/>
</div>
</div>
));
Expected behavior:
With newlined/nested function, doesn't exceed 80 col limit
const Thing = connect(mapStateToProps, mapDispatchToProps)((): JSX.Element => (
<div>
<div>
<TableThing
postTableRenderCallback={
getFuncToRegisterAlertDetailsClickHandlers(
alerts,
alertDetailsLinkCallback
)
}
/>
</div>
</div>
));
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Prettier Playground reproduction using the TypeScript parser and tab width 4, then compare the current output with the expected nested function-call formatting. Done means the JSX call is broken across lines so the result stays within the 80-column limit, with coverage for this input and output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100