implement tab completion for commands