mirror of
https://github.com/amix/vimrc
synced 2025-07-05 15:35:01 +08:00
gitignore sources_non_forked_cache
This commit is contained in:
367
sources_non_forked/vim-snippets/snippets/perl.snippets
Normal file
367
sources_non_forked/vim-snippets/snippets/perl.snippets
Normal file
@ -0,0 +1,367 @@
|
||||
# #!/usr/bin/perl
|
||||
snippet #!
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# Hash Pointer
|
||||
snippet .
|
||||
=>
|
||||
# Function
|
||||
snippet sub
|
||||
sub ${1:function_name} {
|
||||
${0}
|
||||
}
|
||||
# Conditional
|
||||
snippet if
|
||||
if (${1}) {
|
||||
${0}
|
||||
}
|
||||
# Conditional if..else
|
||||
snippet ife
|
||||
if (${1}) {
|
||||
${2}
|
||||
}
|
||||
else {
|
||||
${0}
|
||||
}
|
||||
# Conditional if..elsif..else
|
||||
snippet ifee
|
||||
if (${1}) {
|
||||
${2}
|
||||
}
|
||||
elsif (${3}) {
|
||||
${4:# elsif...}
|
||||
}
|
||||
else {
|
||||
${0}
|
||||
}
|
||||
snippet eif
|
||||
elsif (${1}) {
|
||||
${0}
|
||||
}
|
||||
# Conditional One-line
|
||||
snippet xif
|
||||
$1 if $0;
|
||||
# Unless conditional
|
||||
snippet unless
|
||||
unless (${1}) {
|
||||
${0}
|
||||
}
|
||||
# Unless conditional One-line
|
||||
snippet xunless
|
||||
$1 unless $0;
|
||||
# Try/Except
|
||||
snippet eval
|
||||
local $@;
|
||||
eval {
|
||||
${1:# do something risky...}
|
||||
};
|
||||
if (my $e = $@) {
|
||||
${0:# handle failure...}
|
||||
}
|
||||
# While Loop
|
||||
snippet wh
|
||||
while (${1}) {
|
||||
${0}
|
||||
}
|
||||
# While Loop One-line
|
||||
snippet xwh
|
||||
$1 while $0;
|
||||
# C-style For Loop
|
||||
snippet cfor
|
||||
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
|
||||
${0}
|
||||
}
|
||||
# For loop one-line
|
||||
snippet xfor
|
||||
$1 for @$0;
|
||||
# Foreach Loop
|
||||
snippet for
|
||||
foreach my $${1:x} (@${2:array}) {
|
||||
${0}
|
||||
}
|
||||
# Foreach Loop One-line
|
||||
snippet fore
|
||||
$1 foreach @$0;
|
||||
# Package
|
||||
snippet package
|
||||
package ${1:`expand('%:p:s?.*lib/??:r:gs?/?::?')`};
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
${0}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
# Package syntax perl >= 5.14
|
||||
snippet packagev514
|
||||
package ${1:`expand('%:p:s?.*lib/??:r:gs?/?::?')`} ${2:0.99};
|
||||
use v5.14;
|
||||
use warnings;
|
||||
|
||||
${0}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
#moose
|
||||
snippet moose
|
||||
use Moose;
|
||||
use namespace::autoclean;
|
||||
${1:#}BEGIN {extends '${2:ParentClass}'};
|
||||
|
||||
${0}
|
||||
# parent
|
||||
snippet parent
|
||||
use parent qw(${0:Parent Class});
|
||||
# Read File
|
||||
snippet slurp
|
||||
my $${1:var} = do { local $/; open my $file, '<', "${2:file}"; <$file> };
|
||||
${0}
|
||||
# strict warnings
|
||||
snippet strwar
|
||||
use strict;
|
||||
use warnings;
|
||||
# older versioning with perlcritic bypass
|
||||
snippet vers
|
||||
## no critic
|
||||
our $VERSION = '${0:version}';
|
||||
eval $VERSION;
|
||||
## use critic
|
||||
# new 'switch' like feature
|
||||
snippet switch
|
||||
use feature 'switch';
|
||||
|
||||
# Anonymous subroutine
|
||||
snippet asub
|
||||
sub {
|
||||
${0}
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Begin block
|
||||
snippet begin
|
||||
BEGIN {
|
||||
${0}
|
||||
}
|
||||
|
||||
# call package function with some parameter
|
||||
snippet pkgmv
|
||||
__PACKAGE__->${1:package_method}(${0:var})
|
||||
|
||||
# call package function without a parameter
|
||||
snippet pkgm
|
||||
__PACKAGE__->${0:package_method}()
|
||||
|
||||
# call package "get_" function without a parameter
|
||||
snippet pkget
|
||||
__PACKAGE__->get_${0:package_method}()
|
||||
|
||||
# call package function with a parameter
|
||||
snippet pkgetv
|
||||
__PACKAGE__->get_${1:package_method}(${0:var})
|
||||
|
||||
# complex regex
|
||||
snippet qrx
|
||||
qr/
|
||||
${0:regex}
|
||||
/xms
|
||||
|
||||
#simpler regex
|
||||
snippet qr/
|
||||
qr/${0:regex}/x
|
||||
|
||||
#given
|
||||
snippet given
|
||||
given ($${1:var}) {
|
||||
${2:# cases}
|
||||
${0:# default}
|
||||
}
|
||||
|
||||
# switch-like case
|
||||
snippet when
|
||||
when (${1:case}) {
|
||||
${0}
|
||||
}
|
||||
|
||||
# hash slice
|
||||
snippet hslice
|
||||
@{ ${1:hash} }{ ${0:array} }
|
||||
|
||||
|
||||
# map
|
||||
snippet map
|
||||
map { ${0: body } } ${1: @array } ;
|
||||
|
||||
|
||||
|
||||
# Pod stub
|
||||
snippet ppod
|
||||
=head1 NAME
|
||||
|
||||
${1:ClassName} - ${2:ShortDesc}
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use $1;
|
||||
|
||||
${3:# synopsis...}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
${0:# longer description...}
|
||||
|
||||
|
||||
=head1 INTERFACE
|
||||
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
|
||||
# Heading for a subroutine stub
|
||||
snippet psub
|
||||
=head2 ${1:MethodName}
|
||||
|
||||
${0:Summary....}
|
||||
|
||||
# Heading for inline subroutine pod
|
||||
snippet psubi
|
||||
=head2 ${1:MethodName}
|
||||
|
||||
${0:Summary...}
|
||||
|
||||
|
||||
=cut
|
||||
# inline documented subroutine
|
||||
snippet subpod
|
||||
=head2 $1
|
||||
|
||||
Summary of $1
|
||||
|
||||
=cut
|
||||
|
||||
sub ${1:subroutine_name} {
|
||||
${0}
|
||||
}
|
||||
# Subroutine signature
|
||||
snippet parg
|
||||
=over 2
|
||||
|
||||
=item
|
||||
Arguments
|
||||
|
||||
|
||||
=over 3
|
||||
|
||||
=item
|
||||
C<${1:DataStructure}>
|
||||
|
||||
${2:Sample}
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=item
|
||||
Return
|
||||
|
||||
=over 3
|
||||
|
||||
|
||||
=item
|
||||
C<${0:...return data}>
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
|
||||
# Moose has
|
||||
snippet has
|
||||
has ${1:attribute} => (
|
||||
is => '${2:ro|rw}',
|
||||
isa => '${3:Str|Int|HashRef|ArrayRef|etc}',
|
||||
default => sub {
|
||||
${4:defaultvalue}
|
||||
},
|
||||
${0:# other attributes}
|
||||
);
|
||||
|
||||
|
||||
# override
|
||||
snippet override
|
||||
override ${1:attribute} => sub {
|
||||
${2:# my $self = shift;};
|
||||
${0:# my ($self, $args) = @_;};
|
||||
};
|
||||
|
||||
|
||||
# use test classes
|
||||
snippet tuse
|
||||
use Test::More;
|
||||
use Test::Deep; # (); # uncomment to stop prototype errors
|
||||
use Test::Exception;
|
||||
|
||||
# local test lib
|
||||
snippet tlib
|
||||
use lib qw{ ./t/lib };
|
||||
|
||||
#test methods
|
||||
snippet tmeths
|
||||
$ENV{TEST_METHOD} = '${0:regex}';
|
||||
|
||||
# runtestclass
|
||||
snippet trunner
|
||||
use ${0: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;
|
||||
${0}
|
||||
|
||||
}
|
||||
|
||||
# Test::Routine-style test
|
||||
snippet trsub
|
||||
test ${1:test_name} => { description => '${2:Description of test.}'} => sub {
|
||||
my ($self) = @_;
|
||||
${0}
|
||||
};
|
||||
|
||||
#prep test method
|
||||
snippet tprep
|
||||
sub prep${1:number}_${2:test_case} :Test(startup) {
|
||||
my $self = shift;
|
||||
${0}
|
||||
}
|
||||
|
||||
# cause failures to print stack trace
|
||||
snippet debug_trace
|
||||
use Carp; # 'verbose';
|
||||
# cloak "die"
|
||||
# warn "warning"
|
||||
$SIG{'__DIE__'} = sub {
|
||||
require Carp; Carp::confess
|
||||
};
|
||||
|
||||
snippet dump
|
||||
use Data::Dump qw(dump);
|
||||
warn dump ${1:variable}
|
||||
|
||||
snippet ddp
|
||||
use DDP;
|
||||
p ${1:variable}
|
||||
|
||||
snippet subtest
|
||||
subtest '${1: test_name}' => sub {
|
||||
${2}
|
||||
};
|
Reference in New Issue
Block a user