From 32c6ae09d6c398e51f25e868ee533d0946b86fbc Mon Sep 17 00:00:00 2001 From: LyAhn Date: Sat, 4 Jul 2026 20:23:19 +0100 Subject: [PATCH] chore: add prettier with format scripts Prettier config (no semi, single quotes, 100 cols, tailwindcss plugin) scoped via .prettierignore to frontend code only; markdown, docs, CI workflows, website/, and src-tauri/ are excluded. Scripts follow the toolchain split: format/format:check (prettier), format:rust(:check) (cargo fmt), format:all for both. --- .prettierignore | 30 +++++++++++++++++++++ .prettierrc | 14 ++++++++++ package.json | 9 +++++-- pnpm-lock.yaml | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7b2c1a4 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,30 @@ +# Build outputs +dist/ +build/ + +# Tauri / Rust (handled by cargo fmt) +src-tauri/ + +# Lock files & generated +pnpm-lock.yaml +*.lock + +# Generated +src/vite-env.d.ts + +# Public assets +public/ + +# Website subpackage (has its own config if needed) +website/ + +# Markdown & docs (hand-written or tool-generated, keep diffs quiet) +*.md +docs/ + +# CI workflows +.github/ +.gitea/ + +# Tool-managed config +.claude/ \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..01c8d19 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,14 @@ +{ + "semi": false, + "singleQuote": true, + "jsxSingleQuote": false, + "trailingComma": "es5", + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "bracketSpacing": true, + "bracketSameLine": false, + "arrowParens": "always", + "endOfLine": "lf", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/package.json b/package.json index 3697e06..ce68a51 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,11 @@ "dev:ui": "vite --mode ui --host 127.0.0.1 --port 1422 --strictPort --open", "dev:vite": "vite", "dev:web": "cd website && pnpm dev", - "format:app": "cd src-tauri && cargo fmt", - "format:check": "cd src-tauri && cargo fmt --check", + "format": "prettier --write .", + "format:all": "pnpm format && pnpm format:rust", + "format:check": "prettier --check .", + "format:rust": "cd src-tauri && cargo fmt", + "format:rust:check": "cd src-tauri && cargo fmt --check", "preview": "vite preview", "tauri": "tauri" }, @@ -45,6 +48,8 @@ "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^4.6.0", + "prettier": "^3.9.4", + "prettier-plugin-tailwindcss": "^0.8.0", "tailwindcss": "^4.2.2", "typescript": "~5.8.3", "vite": "^7.0.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8762e9a..099476c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,6 +72,12 @@ importers: '@vitejs/plugin-react': specifier: ^4.6.0 version: 4.7.0(vite@7.3.1(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.32.0)) + prettier: + specifier: ^3.9.4 + version: 3.9.4 + prettier-plugin-tailwindcss: + specifier: ^0.8.0 + version: 0.8.0(prettier@3.9.4) tailwindcss: specifier: ^4.2.2 version: 4.2.2 @@ -1180,6 +1186,66 @@ packages: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} + prettier-plugin-tailwindcss@0.8.0: + resolution: {integrity: sha512-V8ITGH87yuBDF6JpEZTOVlUz/saAwqb8f3HRgUj8Lh+tGCcrmorhsLpYqzygwFwK0PE2Ib6Mv3M7T/uE2tZV1g==} + engines: {node: '>=20.19'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@3.9.4: + resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} + engines: {node: '>=14'} + hasBin: true + react-dom@19.2.4: resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: @@ -2110,6 +2176,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prettier-plugin-tailwindcss@0.8.0(prettier@3.9.4): + dependencies: + prettier: 3.9.4 + + prettier@3.9.4: {} + react-dom@19.2.4(react@19.2.4): dependencies: react: 19.2.4