mirror of
https://github.com/amix/vimrc
synced 2025-06-16 17:45:00 +08:00
lets try again...
This commit is contained in:
358
sources_non_forked/snipmate-snippets/snippets/perl.snippets
Normal file
358
sources_non_forked/snipmate-snippets/snippets/perl.snippets
Normal file
@ -0,0 +1,358 @@
|
||||
# #!/usr/bin/perl
|
||||
snippet #!
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# Hash Pointer
|
||||
snippet .
|
||||
=>
|
||||
# Function
|
||||
snippet sub
|
||||
sub ${1:function_name} {
|
||||
${2:#body ...}
|
||||
}
|
||||
# Conditional
|
||||
snippet if
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# Conditional if..else
|
||||
snippet ife
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
else {
|
||||
${3:# else...}
|
||||
}
|
||||
# Conditional if..elsif..else
|
||||
snippet ifee
|
||||
if (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
elsif (${3}) {
|
||||
${4:# elsif...}
|
||||
}
|
||||
else {
|
||||
${5:# else...}
|
||||
}
|
||||
# Conditional One-line
|
||||
snippet xif
|
||||
${1:expression} if ${2:condition};${3}
|
||||
# Unless conditional
|
||||
snippet unless
|
||||
unless (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# Unless conditional One-line
|
||||
snippet xunless
|
||||
${1:expression} unless ${2:condition};${3}
|
||||
# Try/Except
|
||||
snippet eval
|
||||
local $@;
|
||||
eval {
|
||||
${1:# do something risky...}
|
||||
};
|
||||
if (my $e = $@) {
|
||||
${2:# handle failure...}
|
||||
}
|
||||
# While Loop
|
||||
snippet wh
|
||||
while (${1}) {
|
||||
${2:# body...}
|
||||
}
|
||||
# While Loop One-line
|
||||
snippet xwh
|
||||
${1:expression} while ${2:condition};${3}
|
||||
# C-style For Loop
|
||||
snippet cfor
|
||||
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||
${4:# body...}
|
||||
}
|
||||
# For loop one-line
|
||||
snippet xfor
|
||||
${1:expression} for @${2:array};${3}
|
||||
# Foreach Loop
|
||||
snippet for
|
||||
foreach my $${1:x} (@${2:array}) {
|
||||
${3:# body...}
|
||||
}
|
||||
# Foreach Loop One-line
|
||||
snippet fore
|
||||
${1:expression} foreach @${2:array};${3}
|
||||
# Package
|
||||
snippet cl
|
||||
package ${1:ClassName};
|
||||
|
||||
use base qw(${2:ParentClass});
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
$class = ref $class if ref $class;
|
||||
my $self = bless {}, $class;
|
||||
$self;
|
||||
}
|
||||
|
||||
1;${3}
|
||||
# Read File
|
||||
snippet slurp
|
||||
my $${1:var} = do { local $/; open my $file, '<', "${2:file}"; <$file> };
|
||||
${3}
|
||||
|
||||
|
||||
# strict warnings
|
||||
snippet strwar
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
|
||||
# standard versioning with perlcritic bypass
|
||||
snippet vers
|
||||
## no critic
|
||||
our $VERSION = '${1:version}';
|
||||
eval $VERSION;
|
||||
## use critic
|
||||
|
||||
|
||||
# new 'switch' like feature
|
||||
snippet switch
|
||||
use feature 'switch';
|
||||
|
||||
|
||||
|
||||
# Anonymous subroutine
|
||||
snippet asub
|
||||
sub {
|
||||
${1:# body }
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Begin block
|
||||
snippet begin
|
||||
BEGIN {
|
||||
${1:# begin body}
|
||||
}
|
||||
|
||||
# call package function with some parameter
|
||||
snippet pkgmv
|
||||
__PACKAGE__->${1:package_method}(${2:var})
|
||||
|
||||
# call package function without a parameter
|
||||
snippet pkgm
|
||||
__PACKAGE__->${1:package_method}()
|
||||
|
||||
# call package "get_" function without a parameter
|
||||
snippet pkget
|
||||
__PACKAGE__->get_${1:package_method}()
|
||||
|
||||
# call package function with a parameter
|
||||
snippet pkgetv
|
||||
__PACKAGE__->get_${1:package_method}(${2:var})
|
||||
|
||||
# complex regex
|
||||
snippet qrx
|
||||
qr/
|
||||
${1:regex}
|
||||
/xms
|
||||
|
||||
#simpler regex
|
||||
snippet qr/
|
||||
qr/${1:regex}/x
|
||||
|
||||
#given
|
||||
snippet given
|
||||
given ($${1:var}) {
|
||||
${2:# cases}
|
||||
${3:# default}
|
||||
}
|
||||
|
||||
# switch-like case
|
||||
snippet when
|
||||
when (${1:case}) {
|
||||
${2:# body}
|
||||
}
|
||||
|
||||
# hash slice
|
||||
snippet hslice
|
||||
@{ ${1:hash} }{ ${2:array} }
|
||||
|
||||
|
||||
|
||||
# map
|
||||
snippet map
|
||||
map { ${2: body } } ${1: @array } ;
|
||||
|
||||
|
||||
|
||||
# Pod stub
|
||||
snippet ppod
|
||||
=head1 NAME
|
||||
|
||||
${1:ClassName} - ${2:ShortDesc}
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use $1;
|
||||
|
||||
${3:# synopsis...}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
${4:# longer description...}
|
||||
|
||||
|
||||
=head1 INTERFACE
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
|
||||
# Heading for a subroutine stub
|
||||
snippet psub
|
||||
=head2 ${1:MethodName}
|
||||
|
||||
${2:Summary....}
|
||||
|
||||
# Heading for inline subroutine pod
|
||||
snippet psubi
|
||||
=head2 ${1:MethodName}
|
||||
|
||||
${2:Summary...}
|
||||
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
# Subroutine signature
|
||||
snippet parg
|
||||
=over 2
|
||||
|
||||
=item
|
||||
Arguments
|
||||
|
||||
|
||||
=over 3
|
||||
|
||||
=item
|
||||
C<${1:DataStructure}>
|
||||
|
||||
${2:Sample}
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=item
|
||||
Return
|
||||
|
||||
=over 3
|
||||
|
||||
|
||||
=item
|
||||
C<${3:...return data}>
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
# Moose package
|
||||
snippet moosecl
|
||||
package ${1:ClassName};
|
||||
|
||||
use Moose;
|
||||
#extends '${2:# ParentClass}';
|
||||
|
||||
${6:# body of class}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
$1 - ${3:ShortDesc}
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
${4:# synopsis...}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
${5:# longer description...}
|
||||
|
||||
|
||||
# Moose has
|
||||
snippet has
|
||||
has ${1:attribute} => (
|
||||
is => '${2:ro|rw}',
|
||||
isa => '${3:Str|Int|HashRef|ArrayRef|etc}',
|
||||
default => ${4:defaultvalue}
|
||||
,${5:# other attributes}
|
||||
);
|
||||
|
||||
|
||||
# override
|
||||
snippet override
|
||||
override ${1:attribute} => sub {
|
||||
${2:# my $self = shift;};
|
||||
${3:# my ($self,$args) = @_;};
|
||||
};
|
||||
|
||||
|
||||
# use test classes
|
||||
snippet tuse
|
||||
use Test::More;
|
||||
use Test::Deep ();
|
||||
use Test::Exception;
|
||||
|
||||
# local test lib
|
||||
snippet tlib
|
||||
use lib qw{ ./t/lib };
|
||||
|
||||
#test methods
|
||||
snippet tmeths
|
||||
$ENV{TEST_METHOD} = '${1:regex}';
|
||||
|
||||
# runtestclass
|
||||
snippet trunner
|
||||
use ${1:test_class};
|
||||
$1->runtests();
|
||||
|
||||
# Test::Class-style test
|
||||
snippet tsub
|
||||
sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {
|
||||
my $self = shift;
|
||||
${4:# body}
|
||||
|
||||
}
|
||||
|
||||
# Test::Routine-style test
|
||||
snippet trsub
|
||||
test ${1:test_name} => { description => '${2:Description of test.}'} => sub {
|
||||
my ($self) = @_;
|
||||
${3:# test code}
|
||||
};
|
||||
|
||||
#prep test method
|
||||
snippet tprep
|
||||
sub prep${1:number}_${2:test_case} :Test(startup) {
|
||||
my $self = shift;
|
||||
${4:# body}
|
||||
}
|
||||
# cause failures to print stack trace
|
||||
snippet debug_trace
|
||||
use Carp; # 'verbose';
|
||||
# cloak "die"
|
||||
# warn "warning"
|
||||
$SIG{'__DIE__'} = sub {
|
||||
require Carp; Carp::confess
|
||||
};
|
||||
|
Reference in New Issue
Block a user