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:
Barrett Ruth 2026-02-22 21:00:34 -05:00
parent 01d8b4eb5e
commit ad6c683052
Signed by: barrett
GPG key ID: A6C96C9349D2FC81
28 changed files with 1158 additions and 0 deletions

35
flake.nix Normal file
View file

@ -0,0 +1,35 @@
{
description = "blink-cmp-ssh SSH configuration completion source for blink.cmp";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
};
outputs =
{
nixpkgs,
systems,
...
}:
let
forEachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
in
{
devShells = forEachSystem (pkgs: {
default = pkgs.mkShell {
packages = [
(pkgs.luajit.withPackages (
ps: with ps; [
busted
nlua
]
))
pkgs.prettier
pkgs.stylua
pkgs.selene
];
};
});
};
}