You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.1 KiB
115 lines
2.1 KiB
# 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 |
|
|
|
snippet if "If statement" b |
|
if ${1:condition}${1/(.+)/ /}{ |
|
${0:${VISUAL}} |
|
} |
|
endsnippet |
|
|
|
snippet switch "Switch statement" b |
|
switch ${1:expression}${1/(.+)/ /}{ |
|
case$0 |
|
} |
|
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
|
|
|