2013-11-16 19:45:48 +00:00
|
|
|
# shorthand variable declaration
|
|
|
|
snippet v
|
|
|
|
${1} := ${2}
|
|
|
|
# variable initialization
|
|
|
|
snippet vr
|
|
|
|
var ${1:t} ${0:string}
|
|
|
|
# variable declaration
|
|
|
|
snippet var
|
|
|
|
var ${1} ${2} = ${3}
|
|
|
|
# variables declaration
|
|
|
|
snippet vars
|
|
|
|
var (
|
|
|
|
${1} ${2} = ${3}
|
|
|
|
)
|
2012-08-17 03:41:25 +00:00
|
|
|
# append
|
|
|
|
snippet ap
|
2013-11-16 19:45:48 +00:00
|
|
|
append(${1:slice}, ${0:value})
|
2012-08-17 03:41:25 +00:00
|
|
|
# bool
|
|
|
|
snippet bl
|
|
|
|
bool
|
2013-07-17 23:06:05 +00:00
|
|
|
# byte
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet bt
|
|
|
|
byte
|
|
|
|
# break
|
|
|
|
snippet br
|
|
|
|
break
|
|
|
|
# channel
|
|
|
|
snippet ch
|
2013-11-16 19:45:48 +00:00
|
|
|
chan ${0:int}
|
2012-08-17 03:41:25 +00:00
|
|
|
# case
|
|
|
|
snippet cs
|
|
|
|
case ${1:value}:
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# const
|
|
|
|
snippet c
|
2013-11-16 19:45:48 +00:00
|
|
|
const ${1:NAME} = ${0:0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# constants with iota
|
|
|
|
snippet co
|
|
|
|
const (
|
|
|
|
${1:NAME1} = iota
|
2013-11-16 19:45:48 +00:00
|
|
|
${0:NAME2}
|
2012-08-17 03:41:25 +00:00
|
|
|
)
|
|
|
|
# continue
|
|
|
|
snippet cn
|
|
|
|
continue
|
2013-07-17 23:06:05 +00:00
|
|
|
# defer
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet df
|
2013-11-16 19:45:48 +00:00
|
|
|
defer ${0:func}()
|
2012-08-17 03:41:25 +00:00
|
|
|
# defer recover
|
|
|
|
snippet dfr
|
|
|
|
defer func() {
|
|
|
|
if err := recover(); err != nil {
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
|
|
|
}()
|
|
|
|
# gpl
|
|
|
|
snippet gpl
|
|
|
|
/*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
2013-04-13 17:45:21 +00:00
|
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
2012-08-17 03:41:25 +00:00
|
|
|
*
|
|
|
|
* Copyright (C) ${1:Author}, `strftime("%Y")`
|
|
|
|
*/
|
2013-07-17 23:06:05 +00:00
|
|
|
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# int
|
|
|
|
snippet i
|
|
|
|
int
|
2013-07-17 23:06:05 +00:00
|
|
|
# import
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet im
|
|
|
|
import (
|
2013-07-17 23:06:05 +00:00
|
|
|
"${1:package}"
|
2013-11-16 19:45:48 +00:00
|
|
|
)
|
2013-07-17 23:06:05 +00:00
|
|
|
# interface
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet in
|
|
|
|
interface{}
|
2013-07-17 23:06:05 +00:00
|
|
|
# full interface snippet
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet inf
|
|
|
|
interface ${1:name} {
|
|
|
|
${2:/* methods */}
|
2013-11-16 19:45:48 +00:00
|
|
|
}
|
2012-08-17 03:41:25 +00:00
|
|
|
# if condition
|
|
|
|
snippet if
|
|
|
|
if ${1:/* condition */} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${2}
|
2013-11-16 19:45:48 +00:00
|
|
|
}
|
2012-08-17 03:41:25 +00:00
|
|
|
# else snippet
|
|
|
|
snippet el
|
|
|
|
else {
|
|
|
|
${1}
|
2013-11-16 19:45:48 +00:00
|
|
|
}
|
2012-08-17 03:41:25 +00:00
|
|
|
# error snippet
|
|
|
|
snippet ir
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# false
|
|
|
|
snippet f
|
|
|
|
false
|
|
|
|
# fallthrough
|
|
|
|
snippet ft
|
|
|
|
fallthrough
|
|
|
|
# float
|
|
|
|
snippet fl
|
|
|
|
float32
|
|
|
|
# float32
|
|
|
|
snippet f3
|
|
|
|
float32
|
|
|
|
# float64
|
|
|
|
snippet f6
|
|
|
|
float64
|
|
|
|
# if else
|
|
|
|
snippet ie
|
|
|
|
if ${1:/* condition */} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${2}
|
2012-08-17 03:41:25 +00:00
|
|
|
} else {
|
|
|
|
${3}
|
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# for loop
|
|
|
|
snippet fo
|
2013-04-13 17:45:21 +00:00
|
|
|
for ${2:i} := 0; $2 < ${1:count}; $2${3:++} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${4}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# for range loop
|
|
|
|
snippet fr
|
|
|
|
for ${1:k}, ${2:v} := range ${3} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${4}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2013-07-17 23:06:05 +00:00
|
|
|
# function simple
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet fun
|
2013-04-13 17:45:21 +00:00
|
|
|
func ${1:funcName}(${2}) ${3:error} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${4}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2013-07-17 23:06:05 +00:00
|
|
|
# function on receiver
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet fum
|
2013-04-13 17:45:21 +00:00
|
|
|
func (self ${1:type}) ${2:funcName}(${3}) ${4:error} {
|
2013-07-17 23:06:05 +00:00
|
|
|
${5}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2013-04-13 17:45:21 +00:00
|
|
|
# log printf
|
|
|
|
snippet lf
|
2013-11-16 19:45:48 +00:00
|
|
|
log.Printf("%${1:s}", ${2:var})
|
2013-04-13 17:45:21 +00:00
|
|
|
# log printf
|
|
|
|
snippet lp
|
2013-11-16 19:45:48 +00:00
|
|
|
log.Println("${1}")
|
2012-08-17 03:41:25 +00:00
|
|
|
# make
|
|
|
|
snippet mk
|
2013-11-16 19:45:48 +00:00
|
|
|
make(${1:[]string}, ${0:0})
|
2013-07-17 23:06:05 +00:00
|
|
|
# map
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet mp
|
2013-11-16 19:45:48 +00:00
|
|
|
map[${1:string}]${0:int}
|
2012-08-17 03:41:25 +00:00
|
|
|
# main()
|
|
|
|
snippet main
|
|
|
|
func main() {
|
2013-07-17 23:06:05 +00:00
|
|
|
${1}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
# new
|
|
|
|
snippet nw
|
2013-11-16 19:45:48 +00:00
|
|
|
new(${0:type})
|
2013-07-17 23:06:05 +00:00
|
|
|
# panic
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet pn
|
2013-11-16 19:45:48 +00:00
|
|
|
panic("${0:msg}")
|
2012-08-17 03:41:25 +00:00
|
|
|
# print
|
|
|
|
snippet pr
|
2013-11-16 19:45:48 +00:00
|
|
|
fmt.Printf("%${1:s}\n", ${2:var})
|
2013-07-17 23:06:05 +00:00
|
|
|
# range
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet rn
|
2013-11-16 19:45:48 +00:00
|
|
|
range ${0}
|
2013-07-17 23:06:05 +00:00
|
|
|
# return
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet rt
|
2013-11-16 19:45:48 +00:00
|
|
|
return ${0}
|
2013-07-17 23:06:05 +00:00
|
|
|
# result
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet rs
|
|
|
|
result
|
|
|
|
# select
|
|
|
|
snippet sl
|
|
|
|
select {
|
|
|
|
case ${1:v1} := <-${2:chan1}
|
2013-07-17 23:06:05 +00:00
|
|
|
${3}
|
2012-08-17 03:41:25 +00:00
|
|
|
case ${4:v2} := <-${5:chan2}
|
2013-07-17 23:06:05 +00:00
|
|
|
${6}
|
2012-08-17 03:41:25 +00:00
|
|
|
default:
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
|
|
|
# string
|
|
|
|
snippet sr
|
|
|
|
string
|
|
|
|
# struct
|
|
|
|
snippet st
|
|
|
|
struct ${1:name} {
|
|
|
|
${2:/* data */}
|
2013-04-13 17:45:21 +00:00
|
|
|
}
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2013-07-17 23:06:05 +00:00
|
|
|
# switch
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet sw
|
|
|
|
switch ${1:var} {
|
|
|
|
case ${2:value1}:
|
2013-07-17 23:06:05 +00:00
|
|
|
${3}
|
2012-08-17 03:41:25 +00:00
|
|
|
case ${4:value2}:
|
2013-07-17 23:06:05 +00:00
|
|
|
${5}
|
2012-08-17 03:41:25 +00:00
|
|
|
default:
|
2013-11-16 19:45:48 +00:00
|
|
|
${0}
|
2012-08-17 03:41:25 +00:00
|
|
|
}
|
|
|
|
snippet sp
|
2013-11-16 19:45:48 +00:00
|
|
|
fmt.Sprintf("%${1:s}", ${2:var})
|
2013-07-17 23:06:05 +00:00
|
|
|
# true
|
2012-08-17 03:41:25 +00:00
|
|
|
snippet t
|
|
|
|
true
|
2013-08-03 12:50:12 +00:00
|
|
|
# goroutine named function
|
|
|
|
snippet g
|
2013-11-16 19:45:48 +00:00
|
|
|
go ${1:funcName}(${0})
|
2013-08-03 12:50:12 +00:00
|
|
|
# goroutine anonymous function
|
|
|
|
snippet ga
|
|
|
|
go func(${1} ${2:type}) {
|
|
|
|
${3:/* code */}
|
2013-11-16 19:45:48 +00:00
|
|
|
}(${0})
|
2014-07-02 11:18:18 +00:00
|
|
|
snippet test test function
|
|
|
|
func Test${1:name}(t *testing.T) {
|
|
|
|
${2}
|
|
|
|
}
|
|
|
|
${0}
|
|
|
|
snippet bench benchmark function
|
|
|
|
func Benchmark${1:name}(b *testing.B) {
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
${2}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
${0}
|