cyberaroom-prettierrc
Version:
quick. easy. readable.
146 lines (104 loc) • 3.39 kB
Markdown
# cyberaroom-prettierrc
Advanced Prettier configuration with multi-filetype support and plugin ecosystem integration.
## ✨ Features
- 🎨 **Tailwind CSS** class sorting and formatting
- 📦 **Automatic import organization** for JS/TS
- 🏷 **HTML/JSX attribute ordering** with custom groups
- 📝 **JSDoc documentation formatting**
- 🗄 **Prisma schema** auto-formatting
- 🌐 **Nginx config** syntax support
- 📄 **Multi-parser support** for 10+ file types
- 🔧 **Consistent code style** across entire project
## 📦 Installation
```bash
npm install --save-dev cyberaroom-prettierrc prettier
```
Install plugins:
```bash
npm install --save-dev
prettier-plugin-tailwindcss
prettier-plugin-organize-imports
prettier-plugin-organize-attributes
prettier-plugin-jsdoc
prettier-plugin-prisma
prettier-plugin-nginx
```
## ⚙️ Configuration
1. **Basic setup** (package.json):
```json
{
"prettier": "cyberaroom-prettierrc"
}
```
2. **Advanced setup** (.prettierrc.js):
```javascript
module.exports = {
extends: "cyberaroom-prettierrc",
// Optional plugin-specific configs
tailwindConfig: "./tailwind.config.js",
prisma: {
schema: "./prisma/schema.prisma",
},
}
```
## 📋 Supported File Types
| File Patterns | Parser | Plugins |
| --------------------------- | ---------- | ------------------------------- |
| `*.ts`, `*.tsx` | TypeScript | Import sorting, JSDoc, Tailwind |
| `*.js`, `*.jsx`, `*.mjs` | Babel | Import sorting, JSDoc |
| `*.json` | JSON | - |
| `nginx*.conf` | Nginx | Nginx syntax support |
| `*.html` | HTML | Attribute sorting |
| `*.prisma` | Prisma | Schema formatting |
| `*.css`, `*.scss`, `*.sass` | CSS/SCSS | Tailwind class sorting |
## 🛠 Plugin Configuration
### Tailwind CSS
Add Tailwind config path in your project's Prettier config:
```javascript
// .prettierrc.js
module.exports = {
tailwindConfig: "./tailwind.config.js",
}
```
### HTML/JSX Attribute Ordering
Attributes are sorted in this order:
1. `class`
2. `id`, `name`
3. Default group
4. `aria-*` attributes
Enable case-insensitive sorting:
```javascript
// .prettierrc.js
module.exports = {
attributeIgnoreCase: false, // default: true
}
```
## 🚀 Usage
Format all supported files:
```bash
npx prettier --write .
```
Check formatting:
```bash
npx prettier --check .
```
Format specific file types:
```bash
npx prettier --write '**/*.tsx'
```
## ⚠️ Troubleshooting
**Common issues:**
1. **Plugins not working**:
- Ensure all plugins are in `devDependencies`
- Clear Prettier cache: `npx prettier --clear-cache`
2. **Tailwind class sorting**:
- Verify `tailwind.config.js` exists
- Restart IDE after configuration changes
3. **Nginx config support**:
- Install `prettier-plugin-nginx` separately if using npm <7
## 🔄 Version Policy
- Compatible with Prettier 3.x
- Tested with Node.js 18+
- Semantic versioning (breaking changes in major versions)
## 📄 License
MIT © [cyberaroom](https://github.com/cyberaroom)