The new version of VIM (6.0) supports syntax folding. Nick Hibma has written a syntax highlighter for Perl that enables folding on packages and subroutines (but not on any inner blocks); it's at http://www.etla.net/~n_hibma/vim/. It can also do syntax highlighting of pod text at the same time as the Perl.
As far as xrefs, there are a couple of tags generators for Perl; the "exuberant ctags" that comes with VIM will attempt to do Perl subroutine tagging, but there are a couple of tags generators that will also do more. Michael Schaap <mscha@dogbert.demon.nl> has written one that comes with Vim, as I remember, and I have one here that uses the debugger.
For prettyprinting existing code, you're on your own. Vim does do a good job (with 6.0ag) of indenting Perl code as you type it. You could probably make a Vim macro that would re-type the Perl code and thereby use the indenting features.
Vim also supports running Perl internally (if it's compiled that way); this can add some functionality.
Oh yes, for highlighting for HTML, Vim will also output a colorful HTML version of your code like this:
use strict;
package AnySerialPort;
use vars '@ISA';
BEGIN {
my %portMap;
my $oldNew;
my $onWindows = 0;
if ($^O eq 'MSWin32') # running on Win32
{
$onWindows = 1;
eval "use Win32::SerialPort";
update: added bit about HTML highlighting. |