// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/devcontainers/templates/tree/main/src/dotnet
{
  "name": "C# (.NET)",
  "build": {
    "dockerfile": "Dockerfile",
    "args": {
      // Options
      "INSTALL_NODE": "true",
      "NODE_VERSION": "lts/*"
    }
  },
  // Add the IDs of extensions you want installed when the container is created.
  "extensions": [
    "ms-dotnettools.csdevkit",
    "EditorConfig.EditorConfig",
    "k--kato.docomment",
    "dbaeumer.vscode-eslint"
  ],
  "settings": {
    "dotnet.defaultSolution": "AspNetCore.slnx",
    // Loading projects on demand is better for larger codebases
    "omnisharp.enableMsBuildLoadProjectsOnDemand": true,
    "omnisharp.enableRoslynAnalyzers": true,
    "omnisharp.enableEditorConfigSupport": true,
    "omnisharp.enableImportCompletion": true,
  },
  "features": {
    "ghcr.io/devcontainers/features/github-cli:1": {},
    "ghcr.io/devcontainers/features/sshd:1": {},
    "ghcr.io/devcontainers/features/copilot-cli:1": {}
  },
  // Use 'postCreateCommand' to run commands after the container is created.
  "onCreateCommand": "bash -i ${containerWorkspaceFolder}/.devcontainer/scripts/container-creation.sh",
  // Add the locally installed dotnet to the path to ensure that it is activated
  // This is needed so that things like the C# extension can resolve the correct SDK version
  "remoteEnv": {
    "PATH": "${containerWorkspaceFolder}/.dotnet:${containerEnv:PATH}",
    "TARGET": "net11.0",
    "DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER": "true"
  },
  // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
  "remoteUser": "vscode",
  "hostRequirements": {
    "cpus": 8
  }
}