{
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": true,
  // typescript
  "js/ts.tsserver.automaticTypeAcquisition.enabled": true,
  "js/ts.format.enabled": true,
  "js/ts.implementationsCodeLens.enabled": true,
  "js/ts.tsserver.useSyntaxServer": "auto",
  "js/ts.validate.enabled": true,
  "js/ts.suggest.autoImports": true,
  "js/ts.suggest.includeCompletionsForImportStatements": true,
  "js/ts.preferences.importModuleSpecifier": "shortest",
  "js/ts.preferences.importModuleSpecifierEnding": "js",
  "js/ts.preferences.includePackageJsonAutoImports": "on",
  // oxfmt
  "oxc.fmt.configPath": "oxfmt.config.ts",
  "editor.defaultFormatter": "oxc.oxc-vscode",
  "editor.formatOnSave": true,
  // oxlint
  "editor.codeActionsOnSave": {
    "source.fixAll.oxc": "always"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "oxc.oxc-vscode"
  },
  "[typescript]": {
    "editor.defaultFormatter": "oxc.oxc-vscode"
  },
  // associations
  "files.associations": {
    "*.ejs": "html",
    "*.code-snippets": "text",
    "docker-compose-dockerfile-app": "dockerfile"
  },
  // watcher
  "files.watcherExclude": {
    "node_modules": true
  }
}
