I’m thinking about what interactive completion features to add to OSH . Should I emulate bash (complete/compgen/compopt builtins), or do something else?
Possible answers to the survey:
I know very little about how zsh or fish do things. I’ve looked at some zsh completion scripts, and they seem like a different brand of gobbledygook than bash, but gobbledygook nonetheless. (What I mean that is basically that string manipulation and array manipulation in shell is really awkward, and completion scripts do a lot of it)
I realized that one of the most important completion scripts I use is git’s – I need it to complete subcommands, branch names, and sometimes flags.
It is 3000 lines and constantly being updated! https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
So I figure it might be easier for OSH just to emulate bash as a start. It will probably be less work to do that then to rewrite 3000 lines of bash completion in some other hypothetical nonexistent system.
However I’m open to any diverging views. Does fish have good git completion, and if so how do they do it? Maybe they don’t need to be super up-to-date because most people only use a small subset of git commands?
 Although I’ve explained that Oil is more of a programming language / systems language project than an interactive shell, I still want to use it myself instead of bash. I think it is mostly there, except for completion, and probably basic history substitution.