--- /dev/null
+package statements
+
+func _() {
+ type mySlice []int
+
+ var (
+ abc []int //@item(stmtABC, "abc", "[]int", "var")
+ abcdef mySlice //@item(stmtABCDEF, "abcdef", "mySlice", "var")
+ )
+
+ /* abcdef = append(abcdef, ) */ //@item(stmtABCDEFAssignAppend, "abcdef = append(abcdef, )", "", "func")
+
+ // don't offer "abc = append(abc, )" because "abc" isn't necessarily
+ // better than "abcdef".
+ abc //@complete(" //", stmtABC, stmtABCDEF)
+
+ abcdef //@complete(" //", stmtABCDEF, stmtABCDEFAssignAppend)
+
+ /* append(abc, ) */ //@item(stmtABCAppend, "append(abc, )", "", "func")
+
+ abc = app //@snippet(" //", stmtABCAppend, "append(abc, ${1:})", "append(abc, ${1:})")
+}
+
+func _() {
+ var s struct{ xyz []int }
+
+ /* xyz = append(s.xyz, ) */ //@item(stmtXYZAppend, "xyz = append(s.xyz, )", "", "func")
+
+ s.x //@snippet(" //", stmtXYZAppend, "xyz = append(s.xyz, ${1:})", "xyz = append(s.xyz, ${1:})")
+
+ /* s.xyz = append(s.xyz, ) */ //@item(stmtDeepXYZAppend, "s.xyz = append(s.xyz, )", "", "func")
+
+ sx //@snippet(" //", stmtDeepXYZAppend, "s.xyz = append(s.xyz, ${1:})", "s.xyz = append(s.xyz, ${1:})")
+}
+
+func _() {
+ var foo [][]int
+
+ /* append(foo[0], ) */ //@item(stmtFooAppend, "append(foo[0], )", "", "func")
+
+ foo[0] = app //@complete(" //"),snippet(" //", stmtFooAppend, "append(foo[0], ${1:})", "append(foo[0], ${1:})")
+}