-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
repla desperately needs completion functions! Here are two ways to go about this but I don't like either of them, so any suggestions are welcome.
Define completion functions in Python (or Pythonic way), and use them.
Pros:
- Builtins and wrapped commands use same completion format/infrastructure
- Easy to do: just make a completion framework, then add a few custom handlers
- More can be added by users.
- Can be built into shell language--or just use Python
Cons:
- Duplicating effort: package maintainers already have to deal separately with completion for bash and zsh, for example.
Run the user's preferred shell in a pseudo-tty and call its completion functions.
Pros:
- All around, less work.
- Don't need custom completion functions for any commands (except builtins)
- User chooses their preferred completion mechanism (by virtue of choosing their shell)
Cons:
- User's shell might not support completion
- Have do deal with quirks of each shell.
- Redundant shell. Yikes!
- All around, more work: have to figure out how master/slave ptys work.