{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Extension",
            "type": "extensionHost",
            "request": "launch",
            "runtimeExecutable": "${execPath}",
            "args": [
                "--extensionDevelopmentPath=${workspaceRoot}"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "preLaunchTask": "build"
        },
        {
            "name": "Quick Launch Extension",
            "type": "extensionHost",
            "request": "launch",
            "runtimeExecutable": "${execPath}",
            "args": [
                "--extensionDevelopmentPath=${workspaceRoot}"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "preLaunchTask": "quick-build"
        },
        {
            "name": "Quick Debug Debugger",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/src/debugger/reactNativeDebugEntryPoint.ts",
            "runtimeArgs": [
                "--harmony"
            ],
            "stopOnEntry": false,
            "args": [
                "--server=4712"
            ], // Use "debugServer": "4712", on launch.json of the instance to debug
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "preLaunchTask": "quick-build"
        },
        {
            "name": "Debug Debugger",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}/src/debugger/reactNativeDebugEntryPoint.ts",
            "runtimeArgs": [
                "--harmony"
            ],
            "stopOnEntry": false,
            "args": [
                "--server=4712"
            ], // Use "debugServer": "4712", on launch.json of the instance to debug
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "preLaunchTask": "build"
        },
        {
            "name": "Sample - Android App",
            "program": "${workspaceRoot}/SampleApplication/.vscode/launchReactNative.js",
            "type": "node",
            "request": "launch",
            "args": [
                "android"
            ],
            "runtimeArgs": [
                "--nolazy"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/SampleApplication/.vscode/.react/**/*.js"
            ]
        },
        {
            "name": "Sample - iOS App",
            "program": "${workspaceRoot}/SampleApplication/.vscode/launchReactNative.js",
            "type": "node",
            "request": "launch",
            "args": [
                "ios"
            ],
            "runtimeArgs": [
                "--nolazy"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/SampleApplication/.vscode/.react/**/*.js"
            ]
        },
        {
            "name": "Sample - Android Extension",
            "program": "${workspaceRoot}/SampleApplication/.vscode/launchReactNative.js",
            "type": "node",
            "request": "launch",
            "args": [
                "android"
            ],
            "runtimeArgs": [
                "--nolazy"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ]
        },
        {
            "name": "Sample - iOS Extension",
            "program": "${workspaceRoot}/SampleApplication/.vscode/launchReactNative.js",
            "type": "node",
            "request": "launch",
            "args": [
                "ios"
            ],
            "runtimeArgs": [
                "--nolazy"
            ],
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ]
        },
        {
            "name": "Launch Tests",
            "type": "extensionHost",
            "request": "launch",
            "runtimeExecutable": "${execPath}",
            "args": [
                "--extensionDevelopmentPath=${workspaceRoot}",
                "--extensionTestsPath=${workspaceRoot}/test"
            ],
            "stopOnEntry": false,
            "sourceMaps": true,
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "preLaunchTask": "build"
        },
        {
            "name": "Run mocha",
            "type": "node",
            "protocol": "inspector",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
            "stopOnEntry": false,
            // Command line arguments passed to the program.
            "args": [
                "--ui",
                "tdd",
                // "--grep", "patternToFilterTestsBy",
                "test/debugger/**/*.test.js",
                "test/common/**/*.test.js"
            ],
            "cwd": "${workspaceRoot}",
            "runtimeExecutable": null,
            "env": {
                "NODE_ENV": "development"
            },
            "outFiles": [
                "${workspaceRoot}/src/**/*.js"
            ],
            "sourceMaps": true,
            "preLaunchTask": "quick-build"
        }
    ],
    "compounds": [
        {
            "name": "Quick Extension + Debugger",
            "configurations": [
                "Quick Launch Extension",
                "Quick Debug Debugger"
            ]
        }
    ]
}