-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Change HTML/JSX formatting to have one attribute/prop per lineΒ #5501
Copy link
Copy link
Closed
Labels
lang:htmlIssues affecting HTML (and SVG but not JSX)Issues affecting HTML (and SVG but not JSX)lang:jsxIssues affecting JSX (not general JS issues)Issues affecting JSX (not general JS issues)lang:vueIssues affecting VueIssues affecting Vuelocked-due-to-inactivityPlease open a new issue and fill out the template instead of commenting.Please open a new issue and fill out the template instead of commenting.status:needs discussionIssues needing discussion and a decision to be made before action can be takenIssues needing discussion and a decision to be made before action can be taken
Metadata
Metadata
Assignees
Labels
lang:htmlIssues affecting HTML (and SVG but not JSX)Issues affecting HTML (and SVG but not JSX)lang:jsxIssues affecting JSX (not general JS issues)Issues affecting JSX (not general JS issues)lang:vueIssues affecting VueIssues affecting Vuelocked-due-to-inactivityPlease open a new issue and fill out the template instead of commenting.Please open a new issue and fill out the template instead of commenting.status:needs discussionIssues needing discussion and a decision to be made before action can be takenIssues needing discussion and a decision to be made before action can be taken
Similar to what was done for #3847 I think it best to break some of the discussion from #3101 into a new issue that people can π or π.
I'm proposing that for HTML and JSX to have Prettier always have one attribute/prop per line (and thus not respect the developer's original preference). Code would then be formatted as shown below. This is in contrast to the current behaviour where we fit as much as possible with the print-width.
Expected behavior:
This suggestion for one attribute/prop per line was proposed several times in the discussion of #3101 but I think it is clearer if this is pulled into it's own proposal. The original proposal in #3101 is that Prettier would add an option to preserve original formatting which, while I agree with the author with the style that they want, I don't think a) an option, nor b) preserving original formatting follows the aims for Prettier (see also #2068). Instead I think the aims of #3101 are better served by this proposal to ignore the print-width and always place attributes/props on new lines (assuming that there is more than one).
This style appears to be the most common formatting for Angular, Vue and React from what I can tell. It style appears to be the style enforced by the rules: