mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-29 11:43:17 +00:00
354 lines
6.1 KiB
JavaScript
354 lines
6.1 KiB
JavaScript
ace.define("ace/snippets/perl",["require","exports","module"], function(require, exports, module) {
|
|
"use strict";
|
|
|
|
exports.snippetText = "# #!/usr/bin/perl\n\
|
|
snippet #!\n\
|
|
#!/usr/bin/env perl\n\
|
|
\n\
|
|
# Hash Pointer\n\
|
|
snippet .\n\
|
|
=>\n\
|
|
# Function\n\
|
|
snippet sub\n\
|
|
sub ${1:function_name} {\n\
|
|
${2:#body ...}\n\
|
|
}\n\
|
|
# Conditional\n\
|
|
snippet if\n\
|
|
if (${1}) {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
# Conditional if..else\n\
|
|
snippet ife\n\
|
|
if (${1}) {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
else {\n\
|
|
${3:# else...}\n\
|
|
}\n\
|
|
# Conditional if..elsif..else\n\
|
|
snippet ifee\n\
|
|
if (${1}) {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
elsif (${3}) {\n\
|
|
${4:# elsif...}\n\
|
|
}\n\
|
|
else {\n\
|
|
${5:# else...}\n\
|
|
}\n\
|
|
# Conditional One-line\n\
|
|
snippet xif\n\
|
|
${1:expression} if ${2:condition};${3}\n\
|
|
# Unless conditional\n\
|
|
snippet unless\n\
|
|
unless (${1}) {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
# Unless conditional One-line\n\
|
|
snippet xunless\n\
|
|
${1:expression} unless ${2:condition};${3}\n\
|
|
# Try/Except\n\
|
|
snippet eval\n\
|
|
local $@;\n\
|
|
eval {\n\
|
|
${1:# do something risky...}\n\
|
|
};\n\
|
|
if (my $e = $@) {\n\
|
|
${2:# handle failure...}\n\
|
|
}\n\
|
|
# While Loop\n\
|
|
snippet wh\n\
|
|
while (${1}) {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
# While Loop One-line\n\
|
|
snippet xwh\n\
|
|
${1:expression} while ${2:condition};${3}\n\
|
|
# C-style For Loop\n\
|
|
snippet cfor\n\
|
|
for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\
|
|
${4:# body...}\n\
|
|
}\n\
|
|
# For loop one-line\n\
|
|
snippet xfor\n\
|
|
${1:expression} for @${2:array};${3}\n\
|
|
# Foreach Loop\n\
|
|
snippet for\n\
|
|
foreach my $${1:x} (@${2:array}) {\n\
|
|
${3:# body...}\n\
|
|
}\n\
|
|
# Foreach Loop One-line\n\
|
|
snippet fore\n\
|
|
${1:expression} foreach @${2:array};${3}\n\
|
|
# Package\n\
|
|
snippet package\n\
|
|
package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\
|
|
\n\
|
|
${2}\n\
|
|
\n\
|
|
1;\n\
|
|
\n\
|
|
__END__\n\
|
|
# Package syntax perl >= 5.14\n\
|
|
snippet packagev514\n\
|
|
package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\
|
|
\n\
|
|
${3}\n\
|
|
\n\
|
|
1;\n\
|
|
\n\
|
|
__END__\n\
|
|
#moose\n\
|
|
snippet moose\n\
|
|
use Moose;\n\
|
|
use namespace::autoclean;\n\
|
|
${1:#}BEGIN {extends '${2:ParentClass}'};\n\
|
|
\n\
|
|
${3}\n\
|
|
# parent\n\
|
|
snippet parent\n\
|
|
use parent qw(${1:Parent Class});\n\
|
|
# Read File\n\
|
|
snippet slurp\n\
|
|
my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n\
|
|
${3}\n\
|
|
# strict warnings\n\
|
|
snippet strwar\n\
|
|
use strict;\n\
|
|
use warnings;\n\
|
|
# older versioning with perlcritic bypass\n\
|
|
snippet vers\n\
|
|
## no critic\n\
|
|
our $VERSION = '${1:version}';\n\
|
|
eval $VERSION;\n\
|
|
## use critic\n\
|
|
# new 'switch' like feature\n\
|
|
snippet switch\n\
|
|
use feature 'switch';\n\
|
|
\n\
|
|
# Anonymous subroutine\n\
|
|
snippet asub\n\
|
|
sub {\n\
|
|
${1:# body }\n\
|
|
}\n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
# Begin block\n\
|
|
snippet begin\n\
|
|
BEGIN {\n\
|
|
${1:# begin body}\n\
|
|
}\n\
|
|
\n\
|
|
# call package function with some parameter\n\
|
|
snippet pkgmv\n\
|
|
__PACKAGE__->${1:package_method}(${2:var})\n\
|
|
\n\
|
|
# call package function without a parameter\n\
|
|
snippet pkgm\n\
|
|
__PACKAGE__->${1:package_method}()\n\
|
|
\n\
|
|
# call package \"get_\" function without a parameter\n\
|
|
snippet pkget\n\
|
|
__PACKAGE__->get_${1:package_method}()\n\
|
|
\n\
|
|
# call package function with a parameter\n\
|
|
snippet pkgetv\n\
|
|
__PACKAGE__->get_${1:package_method}(${2:var})\n\
|
|
\n\
|
|
# complex regex\n\
|
|
snippet qrx\n\
|
|
qr/\n\
|
|
${1:regex}\n\
|
|
/xms\n\
|
|
\n\
|
|
#simpler regex\n\
|
|
snippet qr/\n\
|
|
qr/${1:regex}/x\n\
|
|
\n\
|
|
#given\n\
|
|
snippet given\n\
|
|
given ($${1:var}) {\n\
|
|
${2:# cases}\n\
|
|
${3:# default}\n\
|
|
}\n\
|
|
\n\
|
|
# switch-like case\n\
|
|
snippet when\n\
|
|
when (${1:case}) {\n\
|
|
${2:# body}\n\
|
|
}\n\
|
|
\n\
|
|
# hash slice\n\
|
|
snippet hslice\n\
|
|
@{ ${1:hash} }{ ${2:array} }\n\
|
|
\n\
|
|
\n\
|
|
# map\n\
|
|
snippet map\n\
|
|
map { ${2: body } } ${1: @array } ;\n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
# Pod stub\n\
|
|
snippet ppod\n\
|
|
=head1 NAME\n\
|
|
\n\
|
|
${1:ClassName} - ${2:ShortDesc}\n\
|
|
\n\
|
|
=head1 SYNOPSIS\n\
|
|
\n\
|
|
use $1;\n\
|
|
\n\
|
|
${3:# synopsis...}\n\
|
|
\n\
|
|
=head1 DESCRIPTION\n\
|
|
\n\
|
|
${4:# longer description...}\n\
|
|
\n\
|
|
\n\
|
|
=head1 INTERFACE\n\
|
|
\n\
|
|
\n\
|
|
=head1 DEPENDENCIES\n\
|
|
\n\
|
|
\n\
|
|
=head1 SEE ALSO\n\
|
|
\n\
|
|
\n\
|
|
# Heading for a subroutine stub\n\
|
|
snippet psub\n\
|
|
=head2 ${1:MethodName}\n\
|
|
\n\
|
|
${2:Summary....}\n\
|
|
\n\
|
|
# Heading for inline subroutine pod\n\
|
|
snippet psubi\n\
|
|
=head2 ${1:MethodName}\n\
|
|
\n\
|
|
${2:Summary...}\n\
|
|
\n\
|
|
\n\
|
|
=cut\n\
|
|
# inline documented subroutine\n\
|
|
snippet subpod\n\
|
|
=head2 $1\n\
|
|
\n\
|
|
Summary of $1\n\
|
|
\n\
|
|
=cut\n\
|
|
\n\
|
|
sub ${1:subroutine_name} {\n\
|
|
${2:# body...}\n\
|
|
}\n\
|
|
# Subroutine signature\n\
|
|
snippet parg\n\
|
|
=over 2\n\
|
|
\n\
|
|
=item\n\
|
|
Arguments\n\
|
|
\n\
|
|
\n\
|
|
=over 3\n\
|
|
\n\
|
|
=item\n\
|
|
C<${1:DataStructure}>\n\
|
|
\n\
|
|
${2:Sample}\n\
|
|
\n\
|
|
\n\
|
|
=back\n\
|
|
\n\
|
|
\n\
|
|
=item\n\
|
|
Return\n\
|
|
\n\
|
|
=over 3\n\
|
|
\n\
|
|
\n\
|
|
=item\n\
|
|
C<${3:...return data}>\n\
|
|
\n\
|
|
\n\
|
|
=back\n\
|
|
\n\
|
|
\n\
|
|
=back\n\
|
|
\n\
|
|
\n\
|
|
\n\
|
|
# Moose has\n\
|
|
snippet has\n\
|
|
has ${1:attribute} => (\n\
|
|
is => '${2:ro|rw}',\n\
|
|
isa => '${3:Str|Int|HashRef|ArrayRef|etc}',\n\
|
|
default => sub {\n\
|
|
${4:defaultvalue}\n\
|
|
},\n\
|
|
${5:# other attributes}\n\
|
|
);\n\
|
|
\n\
|
|
\n\
|
|
# override\n\
|
|
snippet override\n\
|
|
override ${1:attribute} => sub {\n\
|
|
${2:# my $self = shift;};\n\
|
|
${3:# my ($self, $args) = @_;};\n\
|
|
};\n\
|
|
\n\
|
|
\n\
|
|
# use test classes\n\
|
|
snippet tuse\n\
|
|
use Test::More;\n\
|
|
use Test::Deep; # (); # uncomment to stop prototype errors\n\
|
|
use Test::Exception;\n\
|
|
\n\
|
|
# local test lib\n\
|
|
snippet tlib\n\
|
|
use lib qw{ ./t/lib };\n\
|
|
\n\
|
|
#test methods\n\
|
|
snippet tmeths\n\
|
|
$ENV{TEST_METHOD} = '${1:regex}';\n\
|
|
\n\
|
|
# runtestclass\n\
|
|
snippet trunner\n\
|
|
use ${1:test_class};\n\
|
|
$1->runtests();\n\
|
|
\n\
|
|
# Test::Class-style test\n\
|
|
snippet tsub\n\
|
|
sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n\
|
|
my $self = shift;\n\
|
|
${4:# body}\n\
|
|
\n\
|
|
}\n\
|
|
\n\
|
|
# Test::Routine-style test\n\
|
|
snippet trsub\n\
|
|
test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n\
|
|
my ($self) = @_;\n\
|
|
${3:# test code}\n\
|
|
};\n\
|
|
\n\
|
|
#prep test method\n\
|
|
snippet tprep\n\
|
|
sub prep${1:number}_${2:test_case} :Test(startup) {\n\
|
|
my $self = shift;\n\
|
|
${4:# body}\n\
|
|
}\n\
|
|
\n\
|
|
# cause failures to print stack trace\n\
|
|
snippet debug_trace\n\
|
|
use Carp; # 'verbose';\n\
|
|
# cloak \"die\"\n\
|
|
# warn \"warning\"\n\
|
|
$SIG{'__DIE__'} = sub {\n\
|
|
require Carp; Carp::confess\n\
|
|
};\n\
|
|
\n\
|
|
";
|
|
exports.scope = "perl";
|
|
|
|
});
|