Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shell completion that supports multiple shells #2

Open
roberth opened this issue Aug 24, 2022 · 2 comments
Open

Shell completion that supports multiple shells #2

roberth opened this issue Aug 24, 2022 · 2 comments

Comments

@roberth
Copy link

roberth commented Aug 24, 2022

First off, cool project!

I noticed this in your README:

Or even generate consistent CLIs for more than one programming language... (WIP, only bash atm).

I'd highly recommend to check out the discussion around pcapriotti/optparse-applicative#414, about the potential for a standard.
This is the third project I'm aware of that has an ambition to implement this kind of feature, which really should be a standard protocol.

The oil shell shellac attempt fizzled out, but I believe the optparse-applicative protocol I'm suggesting there holds promise because - it being line-based - it is easy to parse by any shell, and it allows arbitrary extensions to completion item metadata.

@lucasew
Copy link
Collaborator

lucasew commented Nov 26, 2022

Nice timing for this, because I have no idea how that completion system would work and where we can put this code. We want to do this generic enough, so extending for some exoteric shell that very few people uses could be trivial giving the required structure leverage.

I think this project needs more specification, more discussion about how it will be structured, but some ideas are already steering how it will work, like passing the parameter values as environment variables to the payload script.

@blaggacao
Copy link

Just a data point in the orbit of this domain: https://github.com/rsteube/carapace

It has good completion semantics for the go language and also seems to expand. But it also lacks of a formalized protocol or interface ambition, although it seems to work up its way to eventually get there?

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

No branches or pull requests

3 participants