No description
Problem: static_enums was a manually maintained table of ~40 keywords
that could go stale when OpenSSH adds or changes config options.
Solution: parse enum values directly from the ssh_config man page using
two strategies: definitive list sentences ("The argument must be X, Y,
or Z") and fallback extraction from "set to X" patterns. Also fixes
keyword detection to handle digits (ForwardX11) and inline definitions
(Tunnel, SetEnv). Covers 36/41 old keywords plus discovers 4 new ones
(IPQoS, SyslogFacility, ObscureKeystrokeTiming, ControlPersist).
|
||
|---|---|---|
| .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',
},
},
},
},
}