Commit graph

4 commits

Author SHA1 Message Date
a145b2648a
fix: tighten keyword detection to avoid preamble false positives
Problem: the 2-space inline keyword pattern matched preamble lines
like "The  possible keywords" where "The" was detected as a keyword.

Solution: require an uppercase letter after the 2 spaces, matching
real inline definitions (Tunnel  Request, SetEnv  Directly) but not
preamble text where the next word is lowercase.
2026-02-22 23:37:06 -05:00
e9bb8de70f
refactor: derive enum values from man page instead of hardcoding
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).
2026-02-22 23:34:47 -05:00
679a4bf804
fix: capture inline description for keywords like Host and User
Some checks are pending
quality / changes (push) Waiting to run
quality / Lua Format Check (push) Blocked by required conditions
quality / Lua Lint Check (push) Blocked by required conditions
quality / Lua Type Check (push) Blocked by required conditions
quality / Markdown Format Check (push) Blocked by required conditions
test / Test (Neovim nightly) (push) Waiting to run
test / Test (Neovim stable) (push) Waiting to run
Problem: keywords with description text on the same line (e.g.
"Host    Restricts the following...") had their first line of
documentation silently dropped because the parser started collecting
at the line after the keyword.

Solution: extract trailing text from the keyword line and prepend it
to the description block.
2026-02-22 21:29:07 -05:00
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