Skip to content

feat(completion): fish completions for the CLIs + just wrappers (just tui -<Tab>)#251

Merged
ycpss91255 merged 1 commit into
mainfrom
feat/fish-completions
Jun 21, 2026
Merged

feat(completion): fish completions for the CLIs + just wrappers (just tui -<Tab>)#251
ycpss91255 merged 1 commit into
mainfrom
feat/fish-completions

Conversation

@ycpss91255

Copy link
Copy Markdown
Owner

Summary

Shell Tab-completion (fish) for the CLIs and the just wrappers, so just tui -<Tab>
offers --backend / --lang etc. (the maintainer's request) and the binaries
complete their subcommands/flags/values.

  • just tui / just secrets recipe-arg completion, scoped via
    __fish_seen_subcommand_from so bare just <Tab> (just's own completion) is
    untouched.
  • setup_ubuntu subcommands + per-subcommand flags; module-name values from a
    cheap module/*.module.sh glob (no engine fork on Tab).
  • setup_ubuntu_tui.sh --backend fzf|whiptail|gum, --lang en|zh-TW;
    setup_secrets ssh-key/token/gpg sub-actions + --type ed25519|ecdsa|rsa.
  • Files allow-listed in .gitignore (dir otherwise ignored for auto-generated
    completions); installed by the fish module config-drop.

Test plan

  • test/unit/fish_completions_spec.bats: 19 green in Docker, incl.
    just tui '-' offers --backend --lang --help --version and module-name
    completion. Uses fish -n + complete -C (real completion engine).
  • CI full gate.

Generated with Claude Code.

… just wrappers

Tab now offers subcommands, flags, and fixed-value sets:
- `just tui -` -> --backend (fzf|whiptail|gum) / --lang (en|zh-TW) / --help /
  --version; `just secrets ...` sub-actions (scoped via
  __fish_seen_subcommand_from so bare `just <Tab>` is untouched).
- setup_ubuntu subcommands + per-subcommand flags, module-name values from a
  cheap module/*.module.sh glob (no engine fork on Tab).
- setup_ubuntu_tui.sh --backend / --lang; setup_secrets ssh-key/token/gpg
  sub-actions + --type ed25519|ecdsa|rsa.

Files are allow-listed in .gitignore (the completions dir is otherwise ignored
for fish's auto-generated completions) and installed by the existing fish module
config-drop. test/unit/fish_completions_spec.bats does `fish -n` + `complete -C`
functional smoke (also the lint gate, since the CI fish -n sweep prunes
module/config). All 19 specs green in Docker.

Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
@ycpss91255 ycpss91255 enabled auto-merge (squash) June 21, 2026 15:17
@ycpss91255 ycpss91255 merged commit 3fb27b1 into main Jun 21, 2026
15 checks passed
ycpss91255 added a commit that referenced this pull request Jun 21, 2026
…nstall (#252)

Reverts #251. Shell Tab completion fundamentally requires a completion file in
the shell's completion path on the host; the maintainer does not want that host
footprint for the dev flow, and it does not fit the repo's usage model. Flags
remain discoverable with zero install via `just tui --help` /
`setup_ubuntu --help`. Removes the four .fish files, the bats spec, the
.gitignore allow-list lines, and the CHANGELOG entry.

Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant