{
  "name": "ESPHome Dev",
  "image": "ghcr.io/esphome/esphome-lint:dev",
  "postCreateCommand": ["script/devcontainer-post-create"],
  "containerEnv": {
    "DEVCONTAINER": "1",
    "PIP_BREAK_SYSTEM_PACKAGES": "1",
    "PIP_ROOT_USER_ACTION": "ignore"
  },
  "runArgs": ["--privileged", "-e", "ESPHOME_DASHBOARD_USE_PING=1"],
  "appPort": 6052,
  "customizations": {
    "vscode": {
      "extensions": [
        // python
        "ms-python.python",
        "visualstudioexptteam.vscodeintellicode",
        // yaml
        "redhat.vscode-yaml",
        // cpp
        "ms-vscode.cpptools",
        // editorconfig
        "editorconfig.editorconfig"
      ],
      "settings": {
        "python.languageServer": "Pylance",
        "python.pythonPath": "/usr/bin/python3",
        "python.linting.pylintEnabled": true,
        "python.linting.enabled": true,
        "python.formatting.provider": "black",
        "editor.formatOnPaste": false,
        "editor.formatOnSave": true,
        "editor.formatOnType": true,
        "files.trimTrailingWhitespace": true,
        "terminal.integrated.defaultProfile.linux": "bash",
        "yaml.customTags": [
          "!secret scalar",
          "!lambda scalar",
          "!extend scalar",
          "!include_dir_named scalar",
          "!include_dir_list scalar",
          "!include_dir_merge_list scalar",
          "!include_dir_merge_named scalar"
        ],
        "files.exclude": {
          "**/.git": true,
          "**/.DS_Store": true,
          "**/*.pyc": {
            "when": "$(basename).py"
          },
          "**/__pycache__": true
        },
        "files.associations": {
          "**/.vscode/*.json": "jsonc"
        },
        "C_Cpp.clang_format_path": "/usr/bin/clang-format-13"
      }
    }
  }
}