vstask 0.3.0

Run VS Code task from the terminal
Documentation
# vstask

A command-line tool to run VS Code tasks from the terminal.

## Overview

`vstask` allows you to execute VS Code tasks defined in `.vscode/tasks.json` directly from the command line, without needing to open VS Code. It supports all the features of VS Code tasks including:

- Shell and process tasks
- Platform-specific configurations (Windows, Linux, macOS)
- Working directory changes (`cwd`)
- Environment variables
- Background tasks
- Variable substitution (e.g., `${workspaceFolder}`, `${env:VAR}`)

## Installation

### Using Cargo

If you have Rust installed, you can install `vstask` directly from crates.io:

```bash
cargo install vstask
```

This will install the binary to `~/.cargo/bin/` which should be in your PATH.

### From Source

```bash
cargo build --release
```

The binary will be available at `target/release/vstask`.

You can then copy it to a location in your PATH:

```bash
cp target/release/vstask ~/.local/bin/
# or
sudo cp target/release/vstask /usr/local/bin/
```

## Usage

### Run a Task

```bash
vstask "Task Name"
```

### List All Available Tasks

```bash
vstask --list
# or
vstask -l
```

### Run Without Arguments

Running `vstask` without any arguments will display a list of available tasks:

```bash
vstask
```

## Shell Completion

### Zsh

Add the following to your `~/.zshrc` for dynamic task name completion:

```zsh
# --- vstask Dynamic Completion ---
compinit
_vstask_tasks_completion() {
    # Read JSON task list into array
    local -a tasks
    tasks=("${(@f)$(vstask --json 2>/dev/null | jq -r '.[]')}")

    # Add task names to Zsh's completion list.
    _describe 'vstask tasks' tasks
}
compdef _vstask_tasks_completion vstask
```

After adding this, reload your shell configuration:

```zsh
source ~/.zshrc
```

Now you can use tab completion when typing task names:

```zsh
vstask <TAB> 
```

HINT: Use `"` if the tasks contain spaces for the auto complete to display without the escape character.

## Requirements

- A `.vscode/tasks.json` file in your project directory
- Rust 1.70+ (for building from source)

## License

- MIT License
- Apache License, Version 2.0