{
<% if (yarn) { -%>
<% if (pnp) { -%>
  // yarn berry
  "eslint.nodePath": ".yarn/sdks",
  "prettier.prettierPath": ".yarn/sdks/prettier/index.js",
<% } -%>
  "search.exclude": {
    <% if (pnp) { -%>
    "**/.pnp.*": true,
    <% } -%>
    "**/.yarn": true
  },
<% } -%>
<% if (typescript) { -%>
  // typescript 7 is provided by the TypeScriptTeam.native-preview extension.
  // "typescript" resolves to the typescript 6 api package, which has no
  // tsserver, so it cannot be used as "typescript.tsdk".
<% } -%>

<% if (yarn) { -%>
  // set yarn as package manager to run scripts and tasks
  "npm.packageManager": "yarn",
<% } else if (bun) { -%>
  // set bun as package manager to run scripts and tasks
  "npm.packageManager": "bun",
<% } else if (pnpm) { -%>
  // set pnpm as package manager to run scripts and tasks
  "npm.packageManager": "pnpm",
<% } -%>

  // save config
  "editor.formatOnSave": true,
  "eslint.codeActionsOnSave.mode": "all",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "always",
    "source.organizeImports": "never"
  },

  // extension eslint config
  "eslint.workingDirectories": ["."],
  "eslint.useFlatConfig": true,
  "eslint.lintTask.enable": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],

  // format config
  "eslint.format.enable": false,
  "editor.defaultFormatter": "oxc.oxc-vscode",
}
