aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snippets/snippets/perl.snippets
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-snippets/snippets/perl.snippets')
-rw-r--r--vim/bundle/vim-snippets/snippets/perl.snippets359
1 files changed, 359 insertions, 0 deletions
diff --git a/vim/bundle/vim-snippets/snippets/perl.snippets b/vim/bundle/vim-snippets/snippets/perl.snippets
new file mode 100644
index 0000000..65120a2
--- /dev/null
+++ b/vim/bundle/vim-snippets/snippets/perl.snippets
@@ -0,0 +1,359 @@
+# #!/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:expression} if ${2:condition};
+# Unless conditional
+snippet unless
+ unless (${1}) {
+ ${0}
+ }
+# Unless conditional One-line
+snippet xunless
+ ${1:expression} unless ${2:condition};
+# 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:expression} while ${2:condition};
+# C-style For Loop
+snippet cfor
+ for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {
+ ${0}
+ }
+# For loop one-line
+snippet xfor
+ ${1:expression} for @${2:array};
+# Foreach Loop
+snippet for
+ foreach my $${1:x} (@${2:array}) {
+ ${0}
+ }
+# Foreach Loop One-line
+snippet fore
+ ${1:expression} foreach @${2:array};
+# Package
+snippet package
+ package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`};
+
+ ${0}
+
+ 1;
+
+ __END__
+# Package syntax perl >= 5.14
+snippet packagev514
+ package ${1:`substitute(vim_snippets#Filename('', 'Page Title'), '^.', '\u&', '')`} ${2:0.99};
+
+ ${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 subtest
+ subtest '${1: test_name}' => sub {
+ ${2}
+ };