{
    // Adjusted copy of devtools_app/.vscode/launch.json,
    // made for thouse who prefer to work in the folder `packages` to
    // see mock errors in devtools_test.
    "version": "0.2.0",
    "configurations": [
        {
            "name": "opened test or devtools",
            "cwd": "packages/devtools_app",
            "request": "launch",
            "type": "dart",
        },
        {
            "name": "devtools",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
        },
        {
            "name": "devtools + web hot reload",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "args": [
                "-d",
                "chrome",
                "--web-experimental-hot-reload",
            ]
        },
        {
            "name": "devtools + experiments",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "args": [
                "--dart-define",
                "memory_disconnect_experience=true",
                "--dart-define",
                "enable_experiments=true",
            ],
        },
        {
            "name": "devtools + profile",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "flutterMode": "profile",
        },
        {
            "name": "devtools + release",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "flutterMode": "release",
        },
        {
            "name": "devtools + profile + experiments",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "flutterMode": "profile",
            "args": [
                "--dart-define=enable_experiments=true"
            ],
        },
        {
            "name": "devtools + release",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/lib/main.dart",
            "flutterMode": "release",
        },
        {
            "name": "memory/default",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/memory/default.stager_app.g.dart",
        },
        {
            "name": "memory/diff_snapshot",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/memory/diff_snapshot.stager_app.g.dart",
        },
        {
            "name": "performance/default",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/performance/default.stager_app.g.dart",
        },
        {
            "name": "profiler/default",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/cpu_profiler/default.stager_app.g.dart",
        },
        {
            "name": "fixtures/flutter_app",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/fixtures/flutter_app/lib/main.dart",
        },
        {
            "name": "fixtures/memory_app",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/fixtures/memory_app/lib/main.dart",
        },
        {
            "name": "standalone_ui/editor_sidebar",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_sidebar.stager_app.g.dart",
            "preLaunchTask": "Start DTD on Port 8500",
        },
        {
            "name": "standalone_ui/editor_sidebar + experiments",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_sidebar.stager_app.g.dart",
            "preLaunchTask": "Start DTD on Port 8500",
            "args": [
                "--dart-define=enable_experiments=true"
            ],
        },
        {
            "name": "standalone_ui/property_editor_sidebar",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_app/test/test_infra/scenes/standalone_ui/property_editor_sidebar.stager_app.g.dart",
        },
        {
            "name": "devtools_extensions: foo + sim",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_extensions/example/packages_with_extensions/foo/packages/foo_devtools_extension/lib/main.dart",
            "args": [
                "--dart-define=use_simulated_environment=true"
            ],
        },
        {
            "name": "devtools_extensions: dart_foo + sim",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_extensions/example/packages_with_extensions/dart_foo/packages/dart_foo_devtools_extension/lib/main.dart",
            "args": [
                "--dart-define=use_simulated_environment=true"
            ],
        },
        {
            "name": "devtools_extensions: app_that_uses_foo",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_extensions/example/app_that_uses_foo/lib/main.dart",
        },
        {
            "name": "devtools_extensions: app_that_uses_foo - bin",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_extensions/example/app_that_uses_foo/bin/script.dart",
        },
        {
            "name": "attach",
            "type": "dart",
            "request": "attach",
        },
        {
            "name": "foo_devtools_extension example + simulated environment",
            "request": "launch",
            "type": "dart",
            "program": "packages/devtools_extensions/example/foo/packages/foo_devtools_extension/lib/main.dart",
            "args": [
                "--dart-define=use_simulated_environment=true"
            ],
        },
    ],
}