Use ido-mode and imenu-mode.