unjs / citty

🌆 Elegant CLI Builder
Other
775 stars 26 forks source link

Improve arg help usage message (placeholder) #147

Open janniks opened 4 months ago

janniks commented 4 months ago

Describe the feature

Right now the required arg Usage looks as follow in the screenshot: (taken from repo playground)

Running npx tsx ./playground/cli.ts build --hmr 5 --workDir HERE in the citty repo:

Screenshot 2024-05-28 at 16 22 19

This makes it seems like the [ENTRY] is where the work dir input should go. The screenshot with the positional entry makes it even more confusing. The angle brackets are typically used to show the placeholder of the preceeding -- arg

From googling around it seems the more common way is to have the usage show (example):

Usage:
  my-cli --timeout <ms> [--optional <path>]

Usage:
  my-cli --timeout ms <entry>

Optionality denoted with square bracket, but still showing a placeholder where the actual input goes (assuming the arg is NOT a boolean and requires an input). It seems the type of the input is often given as the placeholder value (although this would require another field in the arg spec of citty).

I like the upcasing for positional required args. But it always looks a bit confusing after a flag. Just wanted to leave that comment here.

Additional information

zuixinwang commented 3 months ago

The positional arg should be placed before other args and should not exceed one If there is more than one, only one positional arg should be retained, and the rest should be implemented using non-positional args