Skip to content

Commit 66c2a0b

Browse files
author
Felix Jung
committed
Merge remote-tracking branch 'upstream/master'
2 parents fc50b15 + 0023135 commit 66c2a0b

18 files changed

+950
-51
lines changed

UltiSnips/html.snippets

+1-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ endsnippet
194194

195195
snippet head "XHTML <head>"
196196
<head>
197-
<meta http-equiv="Content-type" content="text/html; charset=utf-8"`!p x(snip)`>
197+
<meta charset="utf-8">
198198
<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title>
199199
$0
200200
</head>

UltiSnips/java.snippets

+13-8
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,13 @@ def getArgs(group):
2525
return [i.split(" ") for i in word.findall(group) ]
2626
2727
def camel(word):
28+
if not word: return ''
2829
return word[0].upper() + word[1:]
2930
31+
def mixedCase(word):
32+
if not word: return ''
33+
return word[0].lower() + word[1:]
34+
3035
endglobal
3136

3237
snippet sleep "try sleep catch" b
@@ -173,13 +178,13 @@ default:
173178
$0
174179
endsnippet
175180

176-
snippet elif "else if" b
181+
snippet elif "else if"
177182
else if ($1)`!p nl(snip)`{
178183
$0
179184
}
180185
endsnippet
181186

182-
snippet /el(se)?/ "else" br
187+
snippet /el(se)?/ "else" r
183188
else`!p nl(snip)`{
184189
$0
185190
}
@@ -338,23 +343,23 @@ endsnippet
338343

339344
snippet /get(ter)?/ "getter" br
340345
public ${1:String} get${2:Name}() {
341-
return `!p snip.rv = t[2].lower()`;
346+
return `!p snip.rv = mixedCase(t[2])`;
342347
}
343348
endsnippet
344349

345350
snippet /set(ter)?/ "setter" br
346-
public void set${1:Name}(${2:String} $1) {
347-
return this.`!p snip.rv = t[1].lower()` = `!p snip.rv = t[1].lower()`;
351+
public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) {
352+
this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`;
348353
}
349354
endsnippet
350355

351356
snippet /se?tge?t|ge?tse?t|gs/ "setter and getter" br
352-
public void set${1:Name}(${2:String} `!p snip.rv = t[1].lower()`) {
353-
this.`!p snip.rv = t[1].lower()` = `!p snip.rv = t[1].lower()`;
357+
public void set${1:Name}(${2:String} `!p snip.rv = mixedCase(t[1])`) {
358+
this.`!p snip.rv = mixedCase(t[1])` = `!p snip.rv = mixedCase(t[1])`;
354359
}
355360

356361
public $2 get$1() {
357-
return `!p snip.rv = t[1].lower()`;
362+
return `!p snip.rv = mixedCase(t[1])`;
358363
}
359364
endsnippet
360365

UltiSnips/proto.snippets

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
priority -50
2+
3+
global !p
4+
from vimsnippets import complete
5+
6+
FIELD_TYPES = [
7+
'double',
8+
'float',
9+
'int32',
10+
'int64',
11+
'uint32',
12+
'uint64',
13+
'sint32',
14+
'sint64',
15+
'fixed32',
16+
'fixed64',
17+
'sfixed32',
18+
'sfixed64',
19+
'bool',
20+
'string',
21+
'bytes']
22+
endglobal
23+
24+
snippet mess "Proto message" b
25+
// ${2:TODO(`whoami`): Describe this message.}
26+
message ${1:Name} {
27+
$0
28+
29+
// Next available id: 1
30+
}
31+
endsnippet
32+
33+
snippet reqf "Required field" b
34+
// ${4:TODO(`whoami`): Describe this field.}
35+
optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1}; // Required
36+
endsnippet
37+
38+
snippet optf "Optional field" b
39+
// ${4:TODO(`whoami`): Describe this field.}
40+
optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};
41+
endsnippet
42+
43+
snippet repf "Repeated field" b
44+
// ${4:TODO(`whoami`): Describe this field.}
45+
repeated ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};
46+
endsnippet
47+
48+
snippet enum "Enumeration" b
49+
// ${2:TODO(`whoami`): Describe this enum.}
50+
enum ${1:Name} {
51+
}
52+
endsnippet

UltiSnips/python.snippets

+63-17
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,30 @@ global !p
3434
NORMAL = 0x1
3535
DOXYGEN = 0x2
3636
SPHINX = 0x3
37+
GOOGLE = 0x4
3738
3839
SINGLE_QUOTES = 0x1
3940
DOUBLE_QUOTES = 0x2
4041
42+
43+
class Arg(object):
44+
def __init__(self, arg):
45+
self.arg = arg
46+
self.name = arg.split('=')[0].strip()
47+
48+
def __str__(self):
49+
return self.name
50+
51+
def __unicode__(self):
52+
return self.name
53+
54+
def is_kwarg(self):
55+
return '=' in self.arg
56+
57+
4158
def get_args(arglist):
42-
args = [arg.split('=')[0].strip() for arg in arglist.split(',') if arg]
43-
args = [arg for arg in args if arg and arg != "self"]
59+
args = [Arg(arg) for arg in arglist.split(',') if arg]
60+
args = [arg for arg in args if arg.name != 'self']
4461
4562
return args
4663
@@ -51,7 +68,7 @@ def get_quoting_style(snip):
5168
return SINGLE_QUOTES
5269
return DOUBLE_QUOTES
5370
54-
def tripple_quotes(snip):
71+
def triple_quotes(snip):
5572
if get_quoting_style(snip) == SINGLE_QUOTES:
5673
return "'''"
5774
return '"""'
@@ -61,6 +78,7 @@ def get_style(snip):
6178
6279
if style == "doxygen": return DOXYGEN
6380
elif style == "sphinx": return SPHINX
81+
elif style == "google": return GOOGLE
6482
else: return NORMAL
6583
6684
@@ -71,26 +89,54 @@ def format_arg(arg, style):
7189
return ":param %s: @todo" % arg
7290
elif style == NORMAL:
7391
return ":%s: @todo" % arg
92+
elif style == GOOGLE:
93+
return "%s (@todo): @todo" % arg
7494
7595
7696
def format_return(style):
7797
if style == DOXYGEN:
7898
return "@return: @todo"
7999
elif style in (NORMAL, SPHINX):
80100
return ":returns: @todo"
101+
elif style == GOOGLE:
102+
return "Returns: @todo"
81103
82104
83105
def write_docstring_args(args, snip):
84106
if not args:
85-
snip.rv += ' {0}'.format(tripple_quotes(snip))
107+
snip.rv += ' {0}'.format(triple_quotes(snip))
86108
return
87109
88110
snip.rv += '\n' + snip.mkline('', indent='')
89111
90112
style = get_style(snip)
91113
92-
for arg in args:
93-
snip += format_arg(arg, style)
114+
if style == GOOGLE:
115+
write_google_docstring_args(args, snip)
116+
else:
117+
for arg in args:
118+
snip += format_arg(arg, style)
119+
120+
121+
def write_google_docstring_args(args, snip):
122+
kwargs = [arg for arg in args if arg.is_kwarg()]
123+
args = [arg for arg in args if not arg.is_kwarg()]
124+
125+
if args:
126+
snip += "Args:"
127+
snip.shift()
128+
for arg in args:
129+
snip += format_arg(arg, GOOGLE)
130+
snip.unshift()
131+
snip.rv += '\n' + snip.mkline('', indent='')
132+
133+
if kwargs:
134+
snip += "Kwargs:"
135+
snip.shift()
136+
for kwarg in kwargs:
137+
snip += format_arg(kwarg, GOOGLE)
138+
snip.unshift()
139+
snip.rv += '\n' + snip.mkline('', indent='')
94140
95141
96142
def write_init_body(args, parents, snip):
@@ -120,10 +166,10 @@ endglobal
120166
snippet class "class with docstrings" b
121167
class ${1:MyClass}(${2:object}):
122168

123-
`!p snip.rv = tripple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = tripple_quotes(snip)`
169+
`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)`
124170

125171
def __init__(self$4):
126-
`!p snip.rv = tripple_quotes(snip)`${5:@todo: to be defined1.}`!p
172+
`!p snip.rv = triple_quotes(snip)`${5:@todo: to be defined1.}`!p
127173
snip.rv = ""
128174
snip >> 2
129175
@@ -132,7 +178,7 @@ args = get_args(t[4])
132178
write_docstring_args(args, snip)
133179
if args:
134180
snip.rv += '\n' + snip.mkline('', indent='')
135-
snip += '{0}'.format(tripple_quotes(snip))
181+
snip += '{0}'.format(triple_quotes(snip))
136182
137183
write_init_body(args, t[2], snip)
138184
`
@@ -143,15 +189,15 @@ endsnippet
143189
snippet slotclass "class with slots and docstrings" b
144190
class ${1:MyClass}(${2:object}):
145191

146-
`!p snip.rv = tripple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = tripple_quotes(snip)`
192+
`!p snip.rv = triple_quotes(snip)`${3:Docstring for $1. }`!p snip.rv = triple_quotes(snip)`
147193
`!p
148194
snip >> 1
149195
args = get_args(t[4])
150196
write_slots_args(args, snip)
151197
`
152198

153199
def __init__(self$4):
154-
`!p snip.rv = tripple_quotes(snip)`${5:@todo: to be defined.}`!p
200+
`!p snip.rv = triple_quotes(snip)`${5:@todo: to be defined.}`!p
155201
snip.rv = ""
156202
snip >> 2
157203
@@ -160,7 +206,7 @@ args = get_args(t[4])
160206
write_docstring_args(args, snip)
161207
if args:
162208
snip.rv += '\n' + snip.mkline('', indent='')
163-
snip += tripple_quotes(snip)
209+
snip += triple_quotes(snip)
164210
165211
write_init_body(args, t[2], snip)
166212
`
@@ -353,7 +399,7 @@ snippet def "function with docstrings" b
353399
def ${1:function}(`!p
354400
if snip.indent:
355401
snip.rv = 'self' + (", " if len(t[2]) else "")`${2:arg1}):
356-
`!p snip.rv = tripple_quotes(snip)`${4:@todo: Docstring for $1.}`!p
402+
`!p snip.rv = triple_quotes(snip)`${4:@todo: Docstring for $1.}`!p
357403
snip.rv = ""
358404
snip >> 1
359405
@@ -364,7 +410,7 @@ if args:
364410
style = get_style(snip)
365411
snip += format_return(style)
366412
snip.rv += '\n' + snip.mkline('', indent='')
367-
snip += tripple_quotes(snip) `
413+
snip += triple_quotes(snip) `
368414
${0:pass}
369415
endsnippet
370416

@@ -390,7 +436,7 @@ endsnippet
390436

391437
snippet rwprop "Read write property" b
392438
def ${1:name}():
393-
`!p snip.rv = tripple_quotes(snip) if t[2] else ''
439+
`!p snip.rv = triple_quotes(snip) if t[2] else ''
394440
`${2:@todo: Docstring for $1.}`!p
395441
if t[2]:
396442
snip >> 1
@@ -399,7 +445,7 @@ if t[2]:
399445
snip.rv += '\n' + snip.mkline('', indent='')
400446
snip += format_return(style)
401447
snip.rv += '\n' + snip.mkline('', indent='')
402-
snip += tripple_quotes(snip)
448+
snip += triple_quotes(snip)
403449
else:
404450
snip.rv = ""`
405451
def fget(self):
@@ -518,7 +564,7 @@ endsnippet
518564
snippet testcase "pyunit testcase" b
519565
class Test${1:Class}(${2:unittest.TestCase}):
520566

521-
`!p snip.rv = tripple_quotes(snip)`${3:Test case docstring.}`!p snip.rv = tripple_quotes(snip)`
567+
`!p snip.rv = triple_quotes(snip)`${3:Test case docstring.}`!p snip.rv = triple_quotes(snip)`
522568

523569
def setUp(self):
524570
${4:pass}

0 commit comments

Comments
 (0)