blink-cmp-ssh/README.md
Barrett Ruth ad6c683052
feat: initial blink-cmp-ssh implementation
Problem: the existing blink-cmp-sshconfig plugin uses a synchronous,
build-time Python scraping approach that requires uv and make to
generate a static Lua file.

Solution: implement a runtime, async blink.cmp source that parses
ssh_config keywords from man ssh_config and enum values from ssh -Q
queries, matching the architecture of blink-cmp-tmux and
blink-cmp-ghostty.
2026-02-22 21:04:15 -05:00

49 lines
936 B
Markdown

# blink-cmp-ssh
SSH configuration completion source for
[blink.cmp](https://github.com/saghen/blink.cmp).
## Features
- Completes `ssh_config` keywords with man page documentation
- Provides enum values for keywords with known option sets (ciphers,
MACs, key exchange algorithms, etc.)
- Keyword and enum data fetched asynchronously at runtime via
`man ssh_config` and `ssh -Q`
## Requirements
- Neovim 0.10.0+
- [blink.cmp](https://github.com/saghen/blink.cmp)
- `ssh` and `man` executables
## Installation
Install via
[luarocks](https://luarocks.org/modules/barrettruth/blink-cmp-ssh):
```
luarocks install blink-cmp-ssh
```
Or with lazy.nvim:
```lua
{
'saghen/blink.cmp',
dependencies = {
'barrettruth/blink-cmp-ssh',
},
opts = {
sources = {
default = { 'ssh' },
providers = {
ssh = {
name = 'SSH',
module = 'blink-cmp-ssh',
},
},
},
},
}
```