151 lines
2.6 KiB
Plaintext
151 lines
2.6 KiB
Plaintext
# Snippets for Go
|
|
|
|
priority -50
|
|
|
|
# when to abbriviate and when not?
|
|
# b doesn't work here, because it ignores whitespace
|
|
# optional local name?
|
|
snippet /^import/ "Import declaration" r
|
|
import (
|
|
"${1:package}"
|
|
)
|
|
endsnippet
|
|
|
|
snippet /^package/ "Package declaration" r
|
|
// Package $1 provides ...
|
|
package ${1:main}
|
|
endsnippet
|
|
|
|
# Mostly converted from: https://github.com/AlanQuatermain/go-tmbundle
|
|
snippet /^cons/ "Constants declaration" r
|
|
const (
|
|
${1:constant}${2/(.+)/ /}${2:type} = ${0:value}
|
|
)
|
|
endsnippet
|
|
|
|
snippet /^con/ "Constant declaration" r
|
|
const ${1:name}${2/(.+)/ /}${2:type} = ${0:value}
|
|
endsnippet
|
|
|
|
snippet iota "Iota constant generator" b
|
|
const (
|
|
${1:constant}${2/(.+)/ /}${2:type} = iota
|
|
)
|
|
endsnippet
|
|
|
|
snippet struct "Struct declaration" b
|
|
type ${1:Struct} struct {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet interface "Interface declaration" b
|
|
type ${1:Interface} interface {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
# statements
|
|
snippet for "For loop" b
|
|
for ${1:condition}${1/(.+)/ /}{
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet fori "Integer for loop" b
|
|
for ${1:i} := 0; $1 < ${2:N}; $1++ {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet forr "For range loop" b
|
|
for ${2:name} := range ${1:collection} {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet if "If statement" b
|
|
if ${1:condition}${1/(.+)/ /}{
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet switch "Switch statement" b
|
|
switch ${1:expression}${1/(.+)/ /}{
|
|
case${0}
|
|
}
|
|
endsnippet
|
|
|
|
snippet select "Select statement" b
|
|
select {
|
|
case${0}
|
|
}
|
|
endsnippet
|
|
|
|
snippet case "Case clause" b
|
|
case ${1:condition}:
|
|
${0:${VISUAL}}
|
|
endsnippet
|
|
|
|
snippet default "Default clause" b
|
|
default:
|
|
${0:${VISUAL}}
|
|
endsnippet
|
|
|
|
# functions
|
|
snippet /^main/ "Main function" r
|
|
func main() {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet /^meth/ "Method" r
|
|
func (${1:receiver} ${2:type}) ${3:name}(${4:params})${5/(.+)/ /}${5:type} {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet func "Function" b
|
|
func ${1:name}(${2:params})${3/(.+)/ /}${3:type} {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
snippet funch "HTTP handler" b
|
|
func ${1:handler}(${2:w} http.ResponseWriter, ${3:r} *http.Request) {
|
|
${0:${VISUAL}}
|
|
}
|
|
endsnippet
|
|
|
|
# types and variables
|
|
snippet map "Map type" b
|
|
map[${1:keytype}]${2:valtype}
|
|
endsnippet
|
|
|
|
snippet : "Variable declaration :=" b
|
|
${1:name} := ${0:value}
|
|
endsnippet
|
|
|
|
snippet var "Variable declaration" b
|
|
var ${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value}}
|
|
endsnippet
|
|
|
|
snippet vars "Variables declaration" b
|
|
var (
|
|
${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value} }
|
|
)
|
|
endsnippet
|
|
|
|
snippet json "JSON field"
|
|
\`json:"${1:displayName}"\`
|
|
endsnippet
|
|
|
|
# vim:ft=snippets:
|
|
|
|
# error handling
|
|
snippet err "Basic error handling" b
|
|
if err != nil {
|
|
log.${1:Fatal}(err)
|
|
}
|
|
endsnippet
|