A Prettier plugin that automatically formats JSX attributes in ascending length order (creating a left triangle pattern), making React components more visually organized and consistent.
- Automatically sorts JSX attributes by length (shortest to longest)
- Creates a visually appealing left triangle pattern
- Preserves non-JSX content
- Handles multiple JSX elements in the same file
- Full TypeScript support
- Maintains Prettier's high standards for code formatting
Using npm:
npm install --save-dev prettier-plugin-ocd
Using yarn:
yarn add -D prettier-plugin-ocd
The plugin will be automatically picked up by Prettier. No additional configuration is needed.
const Button = () => (
<button
className="primary-button"
onClick={handleClick}
id="submit"
disabled={isLoading}
>
Submit
</button>
);
const Button = () => (
<button
id="submit"
onClick={handleClick}
disabled={isLoading}
className="primary-button"
>
Submit
</button>
);
This plugin works out of the box with Prettier's default configuration. No additional settings are required.
The plugin uses a sophisticated attribute processing system that:
- Parses the JSX using Babel
- Identifies all JSX attributes
- Calculates the length of each attribute
- Sorts them in ascending order
- Generates the formatted code while preserving all other formatting
Created by Nikos Rentas
A: No, the plugin only changes the order of JSX attributes, which doesn't affect functionality.
A: Yes, the plugin supports both JSX and TSX files.
A: The plugin gracefully handles errors by returning the original code unchanged.
- Node.js >= 14
- Prettier >= 2.0.0
None at the moment. If you find any issues, please report them in the GitHub issue tracker.