{ // Format on save with Prettier "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", // Use tabs (matches .prettierrc and .editorconfig) "editor.tabSize": 2, "editor.insertSpaces": false, "editor.detectIndentation": false, // ESLint configuration "eslint.enable": true, "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], // Don't let ESLint format - let Prettier handle it "eslint.format.enable": false, // File-specific formatters "[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[typescriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, // Recommended extensions "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, // Files to exclude from search/watch "files.exclude": { "dist": true, "release": true, "node_modules": true }, // TypeScript settings "typescript.tsdk": "node_modules/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true }