feat(completion): fast zsh completion for large host caches

Cobra's generated zsh script spawns a subshell per candidate and sends
every host through _describe, so <Tab> hangs for seconds with thousands
of cached hosts. netssh now ships its own script: subcommands and flags
go through _describe, plain hostnames through compadd. 5000 hosts
complete in ~0.08 s instead of ~4 s.

Add completion.max_results to cap the number of offered hostnames and
sort host candidates for a stable order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sebastian UnterschützandClaude Opus 5.5 committed 2026-10-28 11:22:18 +01:00
1 parent 7f53b90266
commit 8fb7633783
5 files changed
+172 -18

No files matched your search

+1 -1
View File
@@ -83,7 +83,7 @@ func commandCompletionPath(shell, alias string) string {
case "bash":
return filepath.Join(os.Getenv("HOME"), ".local", "share", "bash-completion", "completions", alias)
case "zsh":
return filepath.Join(os.Getenv("HOME"), ".zfunc", "_"+alias)
return filepath.Join(ZshFuncDir(), "_"+alias)
default:
return filepath.Join(FishConfigDir(), "completions", alias+".fish")
}