{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "App (Electron) [Dev]",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      },
      "cwd": "${workspaceFolder}/electron-app",
      "args": [
        ".",
        "--log-level=debug",
        "--hostname=localhost",
        "--app-project-path=${workspaceRoot}/electron-app",
        "--remote-debugging-port=9222",
        "--no-app-auto-install",
        "--plugins=local-dir:../plugins",
        "--hosted-plugin-inspect=9339",
        "--content-trace",
        "--open-devtools",
        "--no-ping-timeout",
      ],
      "env": {
        "NODE_ENV": "development"
      },
      "sourceMaps": true,
      "outFiles": [
        "${workspaceRoot}/electron-app/src-gen/backend/*.js",
        "${workspaceRoot}/electron-app/src-gen/frontend/*.js",
        "${workspaceRoot}/electron-app/lib/**/*.js",
        "${workspaceRoot}/arduino-ide-extension/lib/**/*.js",
        "${workspaceRoot}/node_modules/@theia/**/*.js"
      ],
      "smartStep": true,
      "internalConsoleOptions": "openOnSessionStart",
      "outputCapture": "std"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "App (Electron)",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      },
      "cwd": "${workspaceFolder}/electron-app",
      "args": [
        ".",
        "--log-level=debug",
        "--hostname=localhost",
        "--app-project-path=${workspaceRoot}/electron-app",
        "--remote-debugging-port=9222",
        "--no-app-auto-install",
        "--plugins=local-dir:../plugins",
        "--hosted-plugin-inspect=9339",
        "--no-ping-timeout",
      ],
      "env": {
        "NODE_ENV": "development"
      },
      "sourceMaps": true,
      "outFiles": [
        "${workspaceRoot}/electron-app/src-gen/backend/*.js",
        "${workspaceRoot}/electron-app/src-gen/frontend/*.js",
        "${workspaceRoot}/electron-app/lib/**/*.js",
        "${workspaceRoot}/arduino-ide-extension/lib/**/*.js",
        "${workspaceRoot}/node_modules/@theia/**/*.js"
      ],
      "smartStep": true,
      "internalConsoleOptions": "openOnSessionStart",
      "outputCapture": "std"
    },
    {
      "type": "chrome",
      "request": "attach",
      "name": "Attach to Electron Frontend",
      "port": 9222,
      "webRoot": "${workspaceFolder}/electron-app"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Run Test [current]",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "--require",
        "reflect-metadata/Reflect",
        "--require",
        "ignore-styles",
        "--no-timeouts",
        "--colors",
        "**/${fileBasenameNoExtension}.js"
      ],
      "env": {
        "TS_NODE_PROJECT": "${workspaceRoot}/tsconfig.json"
      },
      "sourceMaps": true,
      "smartStep": true,
      "internalConsoleOptions": "openOnSessionStart",
      "outputCapture": "std"
    },
    {
      "type": "node",
      "request": "attach",
      "name": "Attach by Process ID",
      "processId": "${command:PickProcess}"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Electron Packager",
      "program": "${workspaceRoot}/electron/packager/index.js",
      "cwd": "${workspaceFolder}/electron/packager"
    }
  ],
  "compounds": [
    {
      "name": "Launch Electron Backend & Frontend",
      "configurations": [
        "App (Electron)",
        "Attach to Electron Frontend"
      ]
    }
  ]
}
