{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run Checks",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "pre-commit",
                "run",
                "-a"
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Format",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "fmt",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Lint",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "lint",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Mypy",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "mypy",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Pyright",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "pyright",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Test",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "test",
            ],
            "problemMatcher": {
                "owner": "python",
                "fileLocation": [
                    "relative",
                    "${workspaceFolder}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "message": 4
                }
            },
            "presentation": {
                "panel": "shared"
            }
        },
        {
            "label": "Create Venv",
            "type": "shell",
            "command": "uv venv PYTHON=${input:py_version}",
            "presentation": {
                "reveal": "always",
                "panel": "new"
            },
            "problemMatcher": []
        },
        {
            "label": "Install all dependencies",
            "type": "shell",
            "command": "uv",
            "args": [
                "run",
                "poe",
                "setup",
                "--python=${input:py_version}"
            ],
            "presentation": {
                "reveal": "always",
                "panel": "new"
            },
            "problemMatcher": []
        }
    ],
    "inputs": [
        {
            "type": "pickString",
            "options": [
                "3.10",
                "3.11",
                "3.12",
                "3.13"
            ],
            "id": "py_version",
            "description": "Python version",
            "default": "3.10"
        }
    ]
}