{
	"replace(dir: …, includes: …, token: …, value: …)": {
		"prefix": "replace",
		"body": "replace(dir:\"${1:dirName}\", includes:\"${2:*.*}\", token:\"${3:tokenName}\", value:\"\\${${4:value}}\")$0",
		"description": "Replace(...)"
	},
	"Doc Block": {
		"prefix": "doc",
		"body": [
			"/**",
			" * $0",
			" */"
		],
		"description": "Doc block comment"
	},
	"key: \"value\" (Hash Pair)": {
		"prefix": "key",
		"body": "${1:key}: ${2:\"${3:value}\"}"
	},
	"Thread.start { … }": {
		"prefix": "thread",
		"body": [
			"Thread.start {",
			"\t$0",
			"}"
		],
		"description": "Thread.start { ... }"
	},
	"Thread.startDaemon { … }": {
		"prefix": "thread",
		"body": [
			"Thread.startDaemon {",
			"\t$0",
			"}"
		],
		"description": "Thread.startDaemon { ... }"
	},
	"case … break": {
		"prefix": "case",
		"body": [
			"case ${1:CASE_NAME}:",
			"\t$2",
			"break$0"
		],
		"description": "case ... break"
	},
	"instance … (Singleton)": {
		"prefix": "instance",
		"body": [
			"private static $1 instance",
			"",
			"static $1 getInstance(${2:args}) { ",
			"\tif (!instance) instance = new $1(${2:args})",
			"\treturn instance",
			"}"
		],
		"description": "Singleton instance + Getter"
	},
	"class … extends GroovyTestCase { … }": {
		"prefix": "tc",
		"body": [
			"class $1 extends GroovyTestCase {",
			"",
			"\t$0",
			"}"
		],
		"description": "GroovyTestCase class"
	},
	"copy(file: …, tofile: …) ": {
		"prefix": "copy",
		"body": "copy(file:\"${1:sourceFile}\", tofile:\"${2:targetFile}\")",
		"description": "Copy file"
	},
	"copy(todir: …) { fileset(dir: …) { include … exclude }": {
		"prefix": "copy",
		"body": [
			"copy(todir:\"${1:targetDir}\") {",
			"\tfileset(dir:\"${2:sourceDir}\") {",
			"\t\tinclude(name:\"${3:includeName}\")",
			"\t\texclude(name:\"${4:excludeName}\")",
			"\t}",
			"}"
		],
		"description": "Copy fileset todir w/ include/exclude"
	},
	"copy(todir: …) { fileset:dir …) }": {
		"prefix": "copy",
		"body": [
			"copy(todir:\"${1:targetDir}\") {",
			"\tfileset(dir:\"${2:sourceDir}\")",
			"}"
		],
		"description": "Copy fileset todir"
	},
	"closure = { … } ": {
		"prefix": "cv",
		"body": [
			"def ${1:closureName} = { ${2:args} ->",
			"\t$0",
			"}"
		],
		"description": "Closure block"
	},
	"for(… in …) { … }": {
		"prefix": "forin",
		"body": [
			"for (${1:element} in ${2:collection}) {",
			"\t$0",
			"}"
		],
		"description": "For-loop"
	},
	"mkdir(dir: …)": {
		"prefix": "mkdir",
		"body": "mkdir(dir:\"${1:dirName}\")",
		"description": "mkdir"
	},
	"print": {
		"prefix": "p",
		"body": "print $0",
		"description": "print"
	},
	"println ": {
		"prefix": "pl",
		"body": "println $0",
		"description": "println"
	},
	"runAfter() { … }": {
		"prefix": "runa",
		"body": [
			"runAfter(${1:delay}) {",
			"\t$0",
			"}"
		],
		"description": "runAfter()  { ... }"
	},
	"setUp() { … }": {
		"prefix": "setup",
		"body": [
			"void setUp() {",
			"\t$0",
			"}"
		],
		"description": "setup() { ... }"
	},
	"sleep(secs) { … // on interrupt do }": {
		"prefix": "sleep",
		"body": [
			"sleep(${1:secs}) {",
			"\t${2:// on interrupt do}",
			"}"
		],
		"description": "sleep with interrupt"
	},
	"sleep(secs)": {
		"prefix": "sleep",
		"body": "sleep(${1:secs})",
		"description": "sleep"
	},
	"sort { … }": {
		"prefix": "sort",
		"body": [
			"sort { ",
			"\t$0",
			"}"
		],
		"description": "sort"
	},
	"static main() { … }": {
		"prefix": "main",
		"body": [
			"static main(args) {",
			"\t$0",
			"}"
		],
		"description": "main method"
	},
	"switch … case": {
		"prefix": "switch",
		"body": [
			"switch(${1:value}) {",
			"\tcase ${2:CASE}:",
			"\t\t$3",
			"\tbreak$0",
			"}"
		],
		"description": "Switch-Case block"
	},
	"switch … case … default": {
		"prefix": "switch",
		"body": [
			"switch(${1:value}) {",
			"\tcase ${3:CASE}:",
			"\t\t$4",
			"\tbreak$0",
			"\tdefault:",
			"\t\t$2",
			"\tbreak",
			"}"
		],
		"description": "Switch-Case-Default block"
	},
	"tearDown() { … }": {
		"prefix": "tear",
		"body": [
			"void tearDown() {",
			"\t$0",
			"}"
		],
		"description": "tearDown() { ... }"
	},
	"test()": {
		"prefix": "t",
		"body": [
			"void test$1() {",
			"\t$0",
			"}"
		],
		"description": "test method"
	},
	"var": {
		"prefix": "v",
		"body": "${1:def} ${2:var}${3: = ${0:null}}",
		"description": "var"
	}
}