I've tried out Eclipse 3 with the EPIC plugin as my new editor. After a few days of 'so-so' results, I switched to the test version of EPIC--0.3.9 and now I'm now quite happy with Eclipse as my IDE. I expect the feature set to just keep getting better, too.
Which plugins are installed really makes Eclipse what it is. By default, Eclipse has a whole bunch of Java plugins which are not very useful to the mostly Perl programmer. Finding plugins that are compatible with version 3 is also a little tricky. Here's the list I'm using and the associated update sites. (You need the update site in order to install the plugin in my experience--the old method of extracting into the /plugin directory has not worked for me with 3.0.)
There are still more plugins that look promising but I haven't tried yet--(http://people.redhat.com/pmuldoon/ for example.)
My EPIC templates config is in my scratchpad. Templates are like auto-complete, in the editor you type the first character(s) in the template name and press ctrl+space to insert the template if there's an exact match, if not you're prompted for which to use.
In my external programs, I've created entries for module-starter, module-info, and tpage. On windows, these run best if I give cmd.exe as the external command and the batch file as part of the command arguments.
What plugins or configuration tips do other monks using Eclipse 3.0+ for Perl programming have to offer?
Update: Per request, here is my 'EPIC templates' config in the post...
<?xml version="1.0" encoding="UTF-8"?>
<templates><template name="for" description="C-style for loop" context
+="perl" enabled="true">LABEL: for { my $$${var} = 0 ; $$${var} < m
+ax ; $$${var}++ ) {
${cursor}
}</template><template name="foreach" description="perl-ish for loop" c
+ontext="perl" enabled="true">for my $$${var} ( @${array} ) {
${cursor}
}</template><template name="if" description="if statement" context="pe
+rl" enabled="true">if ( ${cursor} ) {
}
</template><template name="if-elsif-else" description="if-elsif-else s
+tatement" context="perl" enabled="true">if ( ${cursor} ) {
}
elsif ( ) {
}
else {
}</template><template name="if-else" description="if-else statement" c
+ontext="perl" enabled="true">if ( ${cursor} ) {
}
else {
}</template><template name="eval-exception" description="eval exceptio
+n-handling template" context="perl" enabled="true">eval { ${cursor} }
+;
if ($$@) {
warn $$@;
}</template><template name="sub" description="subroutine template" con
+text="perl" enabled="true">sub ${cursor} {
my ( ) = @_;
}</template><template name="method" description="subroutine as method
+template" context="perl" enabled="true">sub ${cursor} {
my $$self = shift;
my ( ) = @_;
}</template><template name="sub" description="subroutine as method tem
+plate" context="perl" enabled="true">sub ${cursor} {
my $$self = shift;
my ( ) = @_;
}</template><template name="while" description="while each key value p
+air" context="perl" enabled="true">while(($$key, $$value) = each(%${c
+ursor})) {
}
</template><template name="while" description="while diamond" context=
+"perl" enabled="true">while (<>) {
${cursor}
}</template><template name="switch" description="switch construction f
+rom perlsyn" context="perl" enabled="true">SWITCH: {
(${cursor}) && do { ; last SWITCH};
// && do { ; last SWITCH};
}</template><template name="map" description="map" context="perl" enab
+led="true">map { ${cursor} } </template><template name="grep" descrip
+tion="grep" context="perl" enabled="true">grep { ${cursor} } </templa
+te><template name="=head1" description="pod head1" context="perl" ena
+bled="true">=head1 ${cursor}
</template><template name="=head2" description="pod head2" context="pe
+rl" enabled="true">=head2 ${cursor}
</template><template name="=head3" description="pod head3" context="pe
+rl" enabled="true">=head3 ${cursor}
</template><template name="=head4" description="pod head4" context="pe
+rl" enabled="true">=head4 ${cursor}
</template><template name="=cut" description="pod cut" context="perl"
+enabled="true">=cut
${cursor}
</template><template name="=over" description="pod indent" context="pe
+rl" enabled="true">=over 4
=item ${cursor}
=back
</template><template name="=item" description="pod indent" context="pe
+rl" enabled="true">=item ${cursor}</template></templates>
--Solo
--
You said you wanted to be around when I made a mistake; well, this could be it, sweetheart.