mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
## Summary This PR adds a comprehensive TypeScript CLI flag parser that reads the `--help` menu for every Bun command and generates structured JSON data for shell completion generators. ### Features - **🔍 Complete command discovery**: Automatically discovers all 22 Bun commands - **📋 Comprehensive flag parsing**: Extracts 388+ flags with descriptions, types, defaults, and choices - **🌳 Nested subcommand support**: Handles complex cases like `bun pm cache rm`, `bun pm pkg set` - **🔗 Command aliases**: Supports `bun i` = `bun install`, `bun a` = `bun add`, etc. - **🎯 Dynamic completions**: Integrates with `bun getcompletes` for scripts, packages, files, binaries - **📂 File type awareness**: Knows when to complete `.js/.ts` files vs test files vs packages - **⚡ Special case handling**: Handles bare `bun` vs `bun run` and other edge cases ### Generated Output The script generates `completions/bun-cli.json` with: - 21 commands with full metadata - 47 global flags - 16 pm subcommands (including nested ones) - 54+ examples - Dynamic completion hints - Integration info for existing shell completions ### Usage ```bash bun run scripts/generate-cli-completions.ts ``` Output saved to `completions/bun-cli.json` for use by future shell completion generators. ### Perfect Shell Completions Ready This JSON structure provides everything needed to generate perfect shell completions for fish, bash, and zsh with full feature parity to the existing hand-crafted completions. It captures all the complex cases that make Bun's CLI completions work seamlessly. The generated data structure includes: - Context-aware flag suggestions - Proper file type filtering - Package name completions - Script and binary discovery - Subcommand nesting - Alias handling - Dynamic completion integration 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>