Besides directory and file completion that works (although needs some improvements), the other completion that I use is git completion.
I think we can simply implement it in Rust for now in some clean way. Only later worry about how to make it so that users can contribute their own completions.