// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "VSCode - Watch",
      "dependsOn": ["VSCode - TSC", "VSCode - ESBuild", "VSCode - CLI Watch"],
      "presentation": {
        "reveal": "never"
      },
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "runOptions": {
        "runOn": "folderOpen"
      }
    },
    {
      "label": "VSCode - ESBuild",
      "type": "shell",
      "command": "bun",
      "args": ["run", "watch:esbuild"],
      "group": "build",
      "problemMatcher": "$esbuild-watch",
      "isBackground": true,
      "presentation": {
        "group": "watch",
        "reveal": "never"
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      }
    },
    {
      "label": "VSCode - TSC",
      "type": "shell",
      "command": "bun",
      "args": ["run", "watch:tsc"],
      "group": "build",
      "problemMatcher": "$tsc-watch",
      "isBackground": true,
      "presentation": {
        "group": "watch",
        "reveal": "never"
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      }
    },
    {
      "label": "VSCode - CLI Watch",
      "type": "shell",
      "command": "bun",
      "args": ["run", "watch:cli"],
      "group": "build",
      "isBackground": true,
      "presentation": {
        "group": "watch",
        "reveal": "never"
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      },
      "problemMatcher": []
    },
    {
      "label": "VSCode - Install",
      "type": "shell",
      "command": "bun",
      "args": ["install", "--frozen-lockfile"],
      "group": "build",
      "presentation": {
        "reveal": "silent"
      },
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": []
    },
    {
      "label": "VSCode - Compile",
      "type": "shell",
      "command": "bun",
      "args": ["run", "compile"],
      "group": "build",
      "presentation": {
        "reveal": "silent"
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      },
      "dependsOn": ["VSCode - Install"],
      "problemMatcher": ["$tsc", "$eslint-stylish"]
    },
    {
      "label": "VSCode - Tests",
      "type": "shell",
      "command": "bun",
      "args": ["run", "watch-tests"],
      "problemMatcher": "$tsc-watch",
      "isBackground": true,
      "presentation": {
        "reveal": "never",
        "group": "watchers"
      },
      "group": "build",
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      }
    },
    {
      "label": "VSCode - Tests (Composite)",
      "dependsOn": ["VSCode - Watch", "VSCode - Tests"],
      "problemMatcher": []
    },
    {
      "label": "VSCode - DevSnapshot - Build",
      "type": "shell",
      "command": "bun run snapshot:build",
      "group": "build",
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": true,
        "clear": false
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode"
      },
      "problemMatcher": []
    },
    {
      "label": "VSCode - DevSnapshot - Install",
      "type": "shell",
      "command": "bun run snapshot:install",
      "group": "build",
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared",
        "showReuseMessage": true,
        "clear": false
      },
      "options": {
        "cwd": "${workspaceFolder}/packages/kilo-vscode",
        "env": {
          "VSCODE_EXEC_PATH": "${execPath}"
        }
      },
      "problemMatcher": []
    }
  ]
}
