{
"semi": false,
"tabWidth": 2,
"printWidth": 100,
"singleQuote": true,
"trailingComma": "es5",
"plugins": ["prettier-plugin-tailwindcss", "prettier-plugin-jsdoc"]
}
If you have any other plugin added next to prettier-plugin-jsdoc, you'll end up with infinite loop of errors:
Some additional context:
File: package.json
{
"name": "web",
"description": "",
"author": "",
"version": "1.0.0",
"license": "Apache-2.0",
"private": true,
"type": "module",
"scripts": {
"dev": "tsx ./scripts/dev.ts",
"lint": "tsx ./scripts/lint.ts",
"setup": "tsx ./scripts/setup.ts",
"build": "tsx ./scripts/build.ts",
"clean": "tsx ./scripts/clean.ts",
"format": "tsx ./scripts/format.ts",
"prisma": "tsx ./scripts/prisma.ts",
"locales": "tsx ./scripts/locales.ts",
"start": "node ./dist/scripts/start.js"
},
"dependencies": {
"next": "16.0.5",
"react": "19.2.0",
"react-dom": "19.2.0",
"@clscripts/cl-common": "^1.0.4",
"@clscripts/dotenv-cli": "^8.0.1",
"@clscripts/next": "^15.3.5",
"@hookform/resolvers": "^3.9.1",
"@inquirer/prompts": "^7.2.4",
"@kodingdotninja/use-tailwind-breakpoint": "^1.0.0",
"@mdi/js": "^7.4.47",
"@mdi/react": "^1.6.1",
"@prisma/client": "^6.3.1",
"@radix-ui/react-label": "^2.1.0",
"@radix-ui/react-select": "^2.1.2",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-toggle": "^1.1.0",
"@radix-ui/react-toggle-group": "^1.1.0",
"@radix-ui/react-tooltip": "^1.2.7",
"@t3-oss/env-nextjs": "^0.13.8",
"@tanstack/react-query": "^5.84.1",
"@tanstack/react-query-devtools": "^5.84.1",
"@tolgee/format-icu": "^5.32.0",
"@tolgee/react": "^5.31.5",
"await-to-js": "^3.0.0",
"axios": "^1.7.8",
"chalk": "^4.1.2",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"compare-path": "^1.1.3",
"concat-str": "^1.0.6",
"conditionalize-component": "^1.4.2",
"dotenv": "^16.4.5",
"framer-motion": "^11.11.17",
"iif-ts": "^2.0.0",
"lucide-react": "^0.460.0",
"ms": "^2.1.3",
"next-intl": "^3.25.3",
"next-themes": "^0.4.6",
"nextjs-middleware-stack": "^1.0.2",
"nuqs": "^2.4.3",
"prisma": "^6.13.0",
"react-hook-form": "^7.53.2",
"tailwind-merge": "^2.5.4",
"tailwindcss-animate": "^1.0.7",
"tailwindest": "^2.3.6",
"use-is-mounted-hook": "^1.0.1",
"zod": "^3.25.20",
"zustand": "^5.0.3"
},
"devDependencies": {
"@clscripts/del-cli": "^6.0.0",
"@clscripts/echo-cli": "^2.0.0",
"@clscripts/prettier": "^3.6.2",
"@clscripts/prisma": "^6.11.1",
"@clscripts/tolgee-cli": "^2.13.0",
"@clscripts/ts-patch": "^3.3.0",
"@tailwindcss/postcss": "^4",
"@tolgee/cli": "^2.13.0",
"@types/ms": "^2.1.0",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"autoprefixer": "^10.4.21",
"del-cli": "^6.0.0",
"dotenv-cli": "^7.4.4",
"echo-cli": "^2.0.0",
"eslint": "^9",
"eslint-config-next": "16.0.5",
"postcss": "^8.5.3",
"postcss-load-config": "^6.0.1",
"prettier": "^3.7.3",
"prettier-plugin-jsdoc": "^1.7.0",
"prettier-plugin-tailwindcss": "^0.7.1",
"tailwindcss": "^4",
"ts-essentials": "^10.1.1",
"ts-patch": "^3.3.0",
"tsx": "^4.20.3",
"typescript": "^5"
}
}
regarding @CLScripts, its just a small class that lets you write something like the following, which makes your package.json scripts section a lot cleaner to read:
File: scripts/format.ts
import { Prettier } from '@clscripts/prettier'
import { runCommand } from '@clscripts/cl-common'
runCommand(
new Prettier({
files: ['./**/*.{htm,html,css,md,mdx,js,jsx,ts,tsx}'],
}).command // prettier --write ./**/*.{htm,html,css,md,mdx,js,jsx,ts,tsx}
)
And thanks for supporting prettier 3.7 🌹
{ "semi": false, "tabWidth": 2, "printWidth": 100, "singleQuote": true, "trailingComma": "es5", "plugins": ["prettier-plugin-tailwindcss", "prettier-plugin-jsdoc"] }If you have any other plugin added next to
prettier-plugin-jsdoc, you'll end up with infinite loop of errors:Some additional context:
File: package.json
{ "name": "web", "description": "", "author": "", "version": "1.0.0", "license": "Apache-2.0", "private": true, "type": "module", "scripts": { "dev": "tsx ./scripts/dev.ts", "lint": "tsx ./scripts/lint.ts", "setup": "tsx ./scripts/setup.ts", "build": "tsx ./scripts/build.ts", "clean": "tsx ./scripts/clean.ts", "format": "tsx ./scripts/format.ts", "prisma": "tsx ./scripts/prisma.ts", "locales": "tsx ./scripts/locales.ts", "start": "node ./dist/scripts/start.js" }, "dependencies": { "next": "16.0.5", "react": "19.2.0", "react-dom": "19.2.0", "@clscripts/cl-common": "^1.0.4", "@clscripts/dotenv-cli": "^8.0.1", "@clscripts/next": "^15.3.5", "@hookform/resolvers": "^3.9.1", "@inquirer/prompts": "^7.2.4", "@kodingdotninja/use-tailwind-breakpoint": "^1.0.0", "@mdi/js": "^7.4.47", "@mdi/react": "^1.6.1", "@prisma/client": "^6.3.1", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-select": "^2.1.2", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.2.7", "@t3-oss/env-nextjs": "^0.13.8", "@tanstack/react-query": "^5.84.1", "@tanstack/react-query-devtools": "^5.84.1", "@tolgee/format-icu": "^5.32.0", "@tolgee/react": "^5.31.5", "await-to-js": "^3.0.0", "axios": "^1.7.8", "chalk": "^4.1.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "compare-path": "^1.1.3", "concat-str": "^1.0.6", "conditionalize-component": "^1.4.2", "dotenv": "^16.4.5", "framer-motion": "^11.11.17", "iif-ts": "^2.0.0", "lucide-react": "^0.460.0", "ms": "^2.1.3", "next-intl": "^3.25.3", "next-themes": "^0.4.6", "nextjs-middleware-stack": "^1.0.2", "nuqs": "^2.4.3", "prisma": "^6.13.0", "react-hook-form": "^7.53.2", "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", "tailwindest": "^2.3.6", "use-is-mounted-hook": "^1.0.1", "zod": "^3.25.20", "zustand": "^5.0.3" }, "devDependencies": { "@clscripts/del-cli": "^6.0.0", "@clscripts/echo-cli": "^2.0.0", "@clscripts/prettier": "^3.6.2", "@clscripts/prisma": "^6.11.1", "@clscripts/tolgee-cli": "^2.13.0", "@clscripts/ts-patch": "^3.3.0", "@tailwindcss/postcss": "^4", "@tolgee/cli": "^2.13.0", "@types/ms": "^2.1.0", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "autoprefixer": "^10.4.21", "del-cli": "^6.0.0", "dotenv-cli": "^7.4.4", "echo-cli": "^2.0.0", "eslint": "^9", "eslint-config-next": "16.0.5", "postcss": "^8.5.3", "postcss-load-config": "^6.0.1", "prettier": "^3.7.3", "prettier-plugin-jsdoc": "^1.7.0", "prettier-plugin-tailwindcss": "^0.7.1", "tailwindcss": "^4", "ts-essentials": "^10.1.1", "ts-patch": "^3.3.0", "tsx": "^4.20.3", "typescript": "^5" } }regarding @CLScripts, its just a small class that lets you write something like the following, which makes your package.json scripts section a lot cleaner to read:
File: scripts/format.ts
And thanks for supporting prettier 3.7 🌹