{
  // Formatting & Linting
  "editor.formatOnSave": false,
  "editor.formatOnPaste": false,

  // Path-specific formatting
  "[**/app/**]": {
    "editor.formatOnSave": true
  },

  // ESLint Configuration
  "eslint.run": "onType",
  "eslint.format.enable": true,
  "eslint.lintTask.enable": true,
  "eslint.quiet": false,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],
  "eslint.probe": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],

  // Auto-fix Actions
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "always",
  },

  // TypeScript Specific Rules
  "typescript.format.enable": false,  // Disable VS Code's built-in formatter for TypeScript
  "[typescript]": {
    "editor.defaultFormatter": null  // Let ESLint handle TypeScript formatting
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": null  // Let ESLint handle TypeScript React formatting
  },

  // Indentation & Whitespace
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.indentSize": "tabSize",
  "editor.detectIndentation": true,
  "editor.useTabStops": true,
  "editor.stickyTabStops": true,
  "editor.trimAutoWhitespace": true,
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true,
  "files.trimFinalNewlines": true,
  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,
  "typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false,

  // Editor Visual Aids
  "editor.renderWhitespace": "selection",
  "editor.renderControlCharacters": true,
  "editor.rulers": [100],
  "editor.wordWrap": "off",
  "editor.wrappingIndent": "none",

  // Editor suggestions
  "editor.quickSuggestions": {
    "other": true,
    "comments": false,
    "strings": false
  }
}
