claw-code/.guardrails/ide/vim-plugin/INSTALL.md

148 lines
3.2 KiB
Markdown

# Guardrail Vim Plugin - Installation Guide
Real-time guardrail validation for Vim.
## Requirements
- Vim 8.0+ or Neovim
- `curl` or `wget` for HTTP requests
- Running Guardrail MCP Server
## Installation
### Using [vim-plug](https://github.com/junegunn/vim-plug)
Add to `.vimrc`:
```vim
Plug 'TheArchitectit/agent-guardrails-template', { 'rtp': 'ide/vim-plugin' }
```
Then run:
```vim
:PlugInstall
```
### Using [Vundle](https://github.com/VundleVim/Vundle.vim)
Add to `.vimrc`:
```vim
Plugin 'TheArchitectit/agent-guardrails-template', {'rtp': 'ide/vim-plugin/'}
```
Then run:
```vim
:PluginInstall
```
### Using [pathogen.vim](https://github.com/tpope/vim-pathogen)
```bash
cd ~/.vim/bundle
git clone --depth 1 https://github.com/TheArchitectit/agent-guardrails-template.git
cd agent-guardrails-template/ide/vim-plugin
```
### Manual Installation
```bash
mkdir -p ~/.vim/pack/plugins/start
cd ~/.vim/pack/plugins/start
git clone --depth 1 https://github.com/TheArchitectit/agent-guardrails-template.git guardrail
cp -r guardrail/ide/vim-plugin/* guardrail/
rm -rf guardrail/ide guardrail/mcp-server guardrail/docs
```
## Configuration
Add to `.vimrc`:
```vim
" Required settings
let g:guardrail_server_url = 'http://localhost:8095'
let g:guardrail_project_slug = 'your-project'
" Optional settings
let g:guardrail_api_key = 'your-api-key'
let g:guardrail_validate_on_save = 1
let g:guardrail_severity_threshold = 'warning' " error, warning, info
```
> **Security Warning:** Never commit API keys to version control.
> Use environment variables: `let g:guardrail_api_key = $GUARDRAIL_API_KEY`
## Commands
| Command | Description |
|---------|-------------|
| `:GuardrailValidate` | Validate current file |
| `:GuardrailValidateSelection` | Validate visual selection |
| `:GuardrailTestConnection` | Test MCP server connection |
| `:GuardrailConfigure` | Open configuration |
## Key Mappings
Default mappings (can be disabled with `g:guardrail_no_mappings = 1`):
- `<leader>gv` - Validate file
- `<leader>gs` - Validate selection (visual mode)
- `<leader>gc` - Test connection
Customize:
```vim
nmap <leader>g <Plug>GuardrailValidate
vmap <leader>g <Plug>GuardrailValidateSelection
```
## Status Line
Add to your status line:
```vim
set statusline+=%{guardrail#statusline#GetStatus()}
```
Or with airline/lightline:
```vim
let g:airline_section_x = airline#section#create(['guardrail'])
```
## Quick Start
1. Install the plugin
2. Set required config in `.vimrc`:
```vim
let g:guardrail_server_url = 'http://localhost:8095'
let g:guardrail_project_slug = 'my-project'
```
3. Reload Vim or run `:source ~/.vimrc`
4. Test connection: `:GuardrailTestConnection`
5. Validate file: `:GuardrailValidate`
## Troubleshooting
### "Command not found"
- Plugin not loaded - check installation path
- Run `:scriptnames` to verify plugin loaded
### "Connection failed"
- Check MCP server is running
- Verify `g:guardrail_server_url`
- Check `:messages` for errors
### No diagnostics showing
- Check `g:guardrail_project_slug` is set
- Verify file is within project scope
- Check `g:guardrail_severity_threshold`
## Compatibility
- Vim 8.0+ with `+job` support (for async)
- Vim 7.4+ (sync only)
- Neovim 0.3+