No description
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. |
||
|---|---|---|
| .github | ||
| lua | ||
| spec | ||
| .busted | ||
| .editorconfig | ||
| .gitignore | ||
| .luarc.json | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| blink-cmp-ssh-scm-1.rockspec | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| selene.toml | ||
| stylua.toml | ||
| vim.toml | ||
blink-cmp-ssh
SSH configuration completion source for blink.cmp.
Features
- Completes
ssh_configkeywords 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_configandssh -Q
Requirements
- Neovim 0.10.0+
- blink.cmp
sshandmanexecutables
Installation
Install via luarocks:
luarocks install blink-cmp-ssh
Or with lazy.nvim:
{
'saghen/blink.cmp',
dependencies = {
'barrettruth/blink-cmp-ssh',
},
opts = {
sources = {
default = { 'ssh' },
providers = {
ssh = {
name = 'SSH',
module = 'blink-cmp-ssh',
},
},
},
},
}