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
 | 
						|
 |