aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snippets/snippets/perl6.snippets
blob: 21ddf5bd0c905d73118eae5e29ecac8a25c858da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# shebang
snippet #!
	#!/usr/bin/env perl6

# Hash Pointer
snippet .
	 =>
# Function
snippet sub
	sub ${1:function_name}(${2:Str $var}) {
		${3}
	}
snippet mul
	multi ${1:function_name}(${2:Str $var}) {
		${3}
	}
# Conditional
snippet if
	if ${1} {
		${2}
	}
# Conditional if..else
snippet ife
	if ${1} {
		${2}
	}
	else {
		${3}
	}
snippet eif
	elsif ${1) {
		${2}
	}
# Conditional One-line
snippet xif
	${1:expression} if ${2:condition};
# Unless conditional
snippet unless
	unless ${1} {
		${2}
	}
# Unless conditional One-line
snippet xunless
	${1:expression} unless ${2:condition};
# Ternary conditional
snippet tc
	${1:condition} ?? ${2:value-if-true} !! ${3:value-if-false};
# given - when (perl6 switch)
snippet switch
	given ${1:$var} {
	  when ${2:condition} {
		  ${3:# code block ...}
	  }
	  ${4}
	  default {
		  ${5}
	  }
	}
# 'loop' - C's for.
snippet loop
	loop (my ${1:$i} = 0; $$1 < ${2:count}; $$1++) {
		${3}
	}
# for loop
snippet for
	for ${1:@array} -> ${2:$variable} {
		${3}
	}
# While Loop
snippet wh
	while ${1} {
		${2}
	}
# Repeat while and repean until
snippet rp
	repeat {
		${1}
	} ${2:while|until} ${3};
# classes ..
snippet cl
	${1:my} class ${2:ClassName} ${3:is|does Parent|Role}{
		${4}
	}
snippet has
	has ${1:Type} ${2:$!identifier};
snippet mth
	method ${1:method_name}(${2:$attr}) {
		${3}
	}
snippet pmth
	method ${1:!}${2:method_name}(${3:$attr}) {
		${4}
	}
snippet smth
	submethod ${1:submethod_name}(${2:$attr}) {
		${3}
	}
# Tests
snippet test
	use v6;
	use Test;
	${1:use lib 'lib';}

	plan ${2:$num-tests};

# IO
snippet slurp
	my ${1:$var} = "${2:filename}".IO.slurp;
snippet rfile
	for "${1:filename}".IO.lines -> $line {
		${2}
	}
snippet open
	my $fh = open "${1:filename}", ${2::r|:w|:a};
	${3:# actions};
	$fh.close;