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.
This commit is contained in:
parent
01d8b4eb5e
commit
ad6c683052
28 changed files with 1158 additions and 0 deletions
49
README.md
Normal file
49
README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# 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',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue