carapace-sh / carapace-bin

multi-shell multi-command argument completer
https://carapace.sh
MIT License
861 stars 47 forks source link

Generate competions for arbitrary shell #2382

Closed ClementNerma closed 4 months ago

ClementNerma commented 4 months ago

Request

Hi!

I'm currently working on my own shell (named ReShell) and I'd like to use Carapace to provide common commands completion.

But it seems like Carapace is only designed to provide completions for specific shells.

Proposed solution

A good approach IMO could be to have something like an arbitrary shell name that would provide completions as JSON, with or without arguments, and without doing any escaping. It would be up to the receiving shell to handle all of these.

Anything else?

No response

rsteube commented 4 months ago

There's carapace COMMAND export "" ARG....

esh ❯ carapace git export git comm
{"version":"v1.0.0","messages":[],"nospace":"","usage":"","values":[{"value":"commit","display":"commit","description":"Record changes to the repository","style":"blue","tag":"main commands"},{"value":"commit-graph","display":"commit-graph","description":"Write and verify Git commit-graph files","style":"dim yellow","tag":"low-level manipulator commands"},{"value":"commit-tree","display":"commit-tree","description":"Create a new commit object","style":"dim yellow","tag":"low-level manipulator commands"}]}

See Export.

ClementNerma commented 4 months ago

Nice! Seems like it.

Thanks :)