Hmmm, eclipse does it for me. I know there are emacs plugins, you might ask Robert for vi/vim.