# shout.vim

Neovim plugin for `.shout` shell integration test files.

## Features

- **Syntax highlighting** for commands, expected output, directives, wildcards, exit codes, and comments
- **`:ShoutRun`** — run the current `.shout` file, results in quickfix
- **`:ShoutUpdate`** — run with `--update` to capture actual output into the file
- **`:ShoutRunAll`** — run all test files

## Install

### lazy.nvim

```lua
{
  dir = "~/path/to/shout/vim",
  ft = "shout",
}
```

### Manual / symlink

Symlink or copy the `vim/` directory into your nvim runtime path:

```sh
mkdir -p ~/.local/share/nvim/site/pack/shout/start
ln -s /path/to/shout/vim ~/.local/share/nvim/site/pack/shout/start/shout
```

## Syntax elements

| Pattern | Highlight |
|---|---|
| `$ command` | Statement (prompt as Special) |
| `$# comment` | Comment |
| `@env KEY=VALUE` | PreProc / Identifier / String |
| `@setup`, `@teardown` | PreProc |
| Expected output | String |
| `...` (wildcard) | WarningMsg |
| `[N]`, `[*]` (exit code) | Constant |
| `\$ ...` (escaped dollar) | SpecialChar + String |
| `# inline comment` | Comment |
