road-master/radiko-podcast

View on GitHub
.devcontainer/devcontainer.json

Summary

Maintainability
Test Coverage
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.154.0/containers/docker-existing-docker-compose
// If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml.
{
    "name": "Existing Docker Compose (Extend)",

    // Update the 'dockerComposeFile' list if you have more compose files or use different names.
    // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make.
    "dockerComposeFile": [
        "../docker-compose.yml",
        "docker-compose.yml"
    ],

    // The 'service' property is the name of the service for the container that VS Code should
    // use. Update this value and .devcontainer/docker-compose.yml to the real service name.
    "service": "radiko-podcast",

    // The optional 'workspaceFolder' property is the path VS Code should open by default when
    // connected. This is typically a file mount in .devcontainer/docker-compose.yml
    "workspaceFolder": "/workspace",

    // Configure tool-specific properties.
    "customizations": {
        "vscode": {
            "extensions": [
                "GitHub.copilot",
                "ms-python.python",
                "ms-python.flake8",
                "ms-python.isort",
                "ms-python.mypy-type-checker",
                "ms-python.pylint",
                "charliermarsh.ruff",
                "wk-j.save-and-run",
                "bungcip.better-toml",
                "streetsidesoftware.code-spell-checker"
            ],
            "settings": {
                // Whether to display inlay hints for pytest fixture argument types.
                // - Settings Reference for Python
                //   https://code.visualstudio.com/docs/python/settings-reference
                "python.analysis.inlayHints.pytestParameters": true,
                "python.formatting.provider": "black",
                // This setting forcibly generate __pycache__.
                // "python.testing.pytestEnabled": true,
                "[python]": {
                    "editor.formatOnSave": true,
                    "editor.codeActionsOnSave": {
                        "source.fixAll": true,
                        "source.organizeImports": true
                    }
                },
                "ruff.organizeImports": false,
                "emeraldwalk.runonsave": {
                    "commands": [
                        {
                            "match": ".*\\.py",
                            "cmd": "pipenv run autoflake --in-place ${file}"
                        },
                        {
                            "match": ".*\\.py",
                            "cmd": "pipenv run docformatter --in-place ${file}"
                        }
                    ]
                },
                "cSpell.customDictionaries": {
                    "project-words": {
                      "name": "project-words",
                      "path": "${workspaceRoot}/project-words.txt",
                      "description": "Words used in this project",
                      "addWords": true
                }                  
            }
        }
    }

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    // "forwardPorts": [],

    // Uncomment the next line if you want start specific services in your Docker Compose config.
    // "runServices": [],

    // Uncomment the next line if you want to keep your containers running after VS Code shuts down.
    // "shutdownAction": "none",

    // Uncomment the next line to run commands after the container is created - for example installing curl.
    // "postCreateCommand": "apt-get update && apt-get install -y curl",

    // Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
    // "remoteUser": "vscode"
}