# Encoding: UTF-8

[{content: "#!/usr/bin/env groovy -w\n\n",
  name: "#!/usr/bin/env groovy -w",
  scope: "source.groovy",
  tabTrigger: "#!",
  uuid: "2E5BF1D2-CED3-42B0-80DF-30AAED089A76"},
 {content: 
   "${TM_CURRENT_LINE/(.*\\*\\/$)|.*?(\\/\\*(?!.*\\*\\/)).*|.*/(?1:\n:\n(?2: )* )/}",
  keyEquivalent: "",
  name: "Continue Block Comment",
  scope: "source.groovy comment.block",
  uuid: "D91F16B6-C86C-4490-947F-F482AD20807E"},
 {content: "/**\n * $0\n */",
  name: "Doc Block",
  scope: "source.groovy",
  tabTrigger: "doc",
  uuid: "91A419C7-B816-4E14-AEC8-05287F66D4C8"},
 {content: "Thread.start {\n\t$0\n}",
  name: "Thread.start { … }",
  scope: "source.groovy",
  tabTrigger: "thread",
  uuid: "E87B5AB1-980F-490B-8CF7-8577377DB5D9"},
 {content: "Thread.startDaemon {\n\t$0\n}",
  name: "Thread.startDaemon { … }",
  scope: "source.groovy",
  tabTrigger: "thread",
  uuid: "085A37E3-68C3-440D-A75F-BC13A9782135"},
 {content: 
   "${TM_SELECTED_TEXT/\\A(\\s*).*/$1/m}try {\n${TM_SELECTED_TEXT/^.+$/\\t$0/g}${TM_SELECTED_TEXT/\\A(\\s*).*/$1/m}}\n${TM_SELECTED_TEXT/\\A(\\s*).*/$1/m}catch ( Exception e) { \n${TM_SELECTED_TEXT/\\A(\\s*).*/$1/m}\te.printStackTrace();\n${TM_SELECTED_TEXT/\\A(\\s*).*/$1/m}}\n",
  keyEquivalent: "^W",
  name: "Wrap Selection in Try/Catch",
  scope: "source.groovy",
  uuid: "E9F61E6B-6821-4CFC-9FEF-946141E9F846"},
 {content: "all {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "all { … }",
  scope: "source.groovy",
  tabTrigger: "all",
  uuid: "F98D5DB7-41D9-4C62-96EE-31E5B16B126A"},
 {content: "any {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "any { … }",
  scope: "source.groovy",
  tabTrigger: "any",
  uuid: "3F8699F6-AEA4-498D-99A5-6F8949A808D0"},
 {content: "as BigDecimal",
  name: "as BigDecimal",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "55ED6B1E-B43B-495A-B43C-B3D7B2C6DCE0"},
 {content: "as BigInteger",
  name: "as BigInteger",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "2755C268-036A-486B-B030-7EE1AAB3042B"},
 {content: "as Double",
  name: "as Double",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "8EA93476-BE8A-4FD9-8E98-26D0FAF0C186"},
 {content: "as Float",
  name: "as Float",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "5CE4D7C8-66AF-468B-9DDC-F41C37CED094"},
 {content: "as Set",
  name: "as Set",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "43B7BCC7-99FA-4F6A-B375-B8555CB4F490"},
 {content: "as String",
  name: "as String",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "91AC7C4E-4BC2-4AC2-BB44-F1C89FA8D317"},
 {content: "as Writable",
  name: "as Writable",
  scope: "source.groovy",
  tabTrigger: "as",
  uuid: "AD01E690-5071-4DF9-8165-4D01396073AB"},
 {content: ".asImmutable()",
  name: "asImmutable()",
  scope: "source.groovy",
  tabTrigger: ".as",
  uuid: "2C9612BA-9B03-41E0-A59C-882BA9DA7876"},
 {content: ".asSynchronized()",
  name: "asSynchronized()",
  scope: "source.groovy",
  tabTrigger: ".as",
  uuid: "3223EE5A-FFE7-490C-9171-583D0FC99083"},
 {content: 
   "assert ${1:test}${2/(.+)/(?1: \\: \")/}${2:Failure message}${2/(.+)/(?1:\")/}$0",
  name: "assert",
  scope: "source.groovy",
  tabTrigger: "!",
  uuid: "CBA68505-EC93-47A2-860C-3892AD0AF470"},
 {content: 
   "assertEquals(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:expected}, ${3:actual})$0",
  name: "assertEquals",
  scope: "source.groovy",
  tabTrigger: "ase",
  uuid: "FEA9FEBE-44D8-4452-AD66-FBE1A2E38D72"},
 {content: 
   "assertFalse(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:test})$0",
  name: "assertFalse",
  scope: "source.groovy",
  tabTrigger: "asf",
  uuid: "6FAAE95D-DC2B-420C-BB1A-44E4C0B3DFE0"},
 {content: 
   "assertNotEquals(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:unexpected}, ${3:actual})$0",
  name: "assertNotEquals",
  scope: "source.groovy",
  tabTrigger: "asne",
  uuid: "AABDE87E-B458-41CD-8668-4FD4EA3B5706"},
 {content: 
   "assertNotNull(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:instance})$0",
  name: "assertNotNull",
  scope: "source.groovy",
  tabTrigger: "asnn",
  uuid: "3D0A86B2-648D-4A35-9B55-A2A2A9EEE38D"},
 {content: 
   "assertNull(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:instance})$0",
  name: "assertNull",
  scope: "source.groovy",
  tabTrigger: "asn",
  uuid: "1FE2B60C-06E8-4541-9E83-5623F0FE1151"},
 {content: 
   "assertSame(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:expected}, ${3:actual})$0",
  name: "assertSame",
  scope: "source.groovy",
  tabTrigger: "ass",
  uuid: "38625828-1187-476B-BB66-7A8EA5601415"},
 {content: 
   "assertTrue(${1/(.+)/(?1:\")/}${1:message}${1/(.+)/(?1:\", )/}${2:test})$0",
  name: "assertTrue",
  scope: "source.groovy",
  tabTrigger: "ast",
  uuid: "3DA3EEE6-0966-4911-9A4C-AF939BE2F427"},
 {content: "case ${1:CASE_NAME}:\n\t$2\nbreak$0",
  name: "case … break",
  scope: "source.groovy",
  tabTrigger: "case",
  uuid: "5935B679-0E50-41DB-B55B-2FF8A65AD8CD"},
 {content: 
   "$1${1/(.+)/(?1: )/}class ${2:${TM_FILENAME/(.*?)(\\..+)/$1/}} ${3:extends ${4:Parent} }${5:implements ${6:Interface} }{\n\n\t$0\n\n}",
  name: "class { … }",
  scope: "source.groovy",
  tabTrigger: "cl",
  uuid: "E7414082-0A63-4933-BB9E-9FB9C491749C"},
 {content: 
   "class ${2:${TM_FILENAME/(.*?)(\\..+)/$1/}} extends GroovyTestCase {\n\n\t$0\n}",
  name: "class … extends GroovyTestCase { … }",
  scope: "source.groovy",
  tabTrigger: "tc",
  uuid: "3B408AF5-B3E7-4B8E-9056-79CEA2E61F25"},
 {content: "def ${1:closureName} = { ${2:args} ->\n\t$0\n}",
  keyEquivalent: "^~\n",
  name: "closure = { … } ",
  scope: "source.groovy",
  tabTrigger: "cv",
  uuid: "CADACABD-B3C9-4A66-B451-041FCD874DA4"},
 {content: "collect {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "collect { … }",
  scope: "source.groovy",
  tabTrigger: "col",
  uuid: "2367D195-F182-4390-A801-27701107FBBE"},
 {content: 
   "${1:private}${1/(.+)/(?1: )/}${2:${TM_FILENAME/(.*?)(\\..+)/$1/}}(${3:args}) {\n\t$0\n}",
  name: "constructor() { … }",
  scope: "source.groovy",
  tabTrigger: "con",
  uuid: "35E301FB-00C4-4CE6-9164-E84057FE1E9F"},
 {content: "copy(file:\"${1:sourceFile}\", tofile:\"${2:targetFile}\")",
  name: "copy(file: …, tofile: …) ",
  scope: "source.groovy",
  tabTrigger: "copy",
  uuid: "4D6B8D48-40DA-45EC-8D4E-BCC63C0A454B"},
 {content: 
   "copy(todir:\"${1:targetDir}\") {\n\tfileset(dir:\"${2:sourceDir}\") {\n\t\tinclude(name:\"${3:includeName}\")\n\t\texclude(name:\"${4:excludeName}\")\n\t}\n}",
  name: "copy(todir: …) { fileset(dir: …) { include … exclude }",
  scope: "source.groovy",
  tabTrigger: "copy",
  uuid: "0A9B1368-E4C0-4B94-BE1D-6B9EA1F27415"},
 {content: 
   "copy(todir:\"${1:targetDir}\") {\n\tfileset(dir:\"${2:sourceDir}\")\n}",
  name: "copy(todir: …) { fileset:dir …) }",
  scope: "source.groovy",
  tabTrigger: "copy",
  uuid: "CDC90200-4476-4287-9957-88F9FB12EB77"},
 {content: 
   "downto(${1:0}) {${2/(.+)/(?1: )/}${2:i}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "downto() { … }",
  scope: "source.groovy",
  tabTrigger: "dt",
  uuid: "334326DB-ADCD-42B0-8E38-B89FC0BC0EE2"},
 {content: "each {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "each { … }",
  scope: "source.groovy",
  tabTrigger: "ea",
  uuid: "599F3859-E634-4CA0-AAA5-21E9AC450ED3"},
 {content: "eachByte {${1/(.+)/(?1: )/}${1:byte}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachByte { … }",
  scope: "source.groovy",
  tabTrigger: "eab",
  uuid: "0ECF0823-9E5A-4866-80A3-EFCCCA1F9615"},
 {content: "eachDir {${1/(.+)/(?1: )/}${1:dir}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachDir { … } ",
  scope: "source.groovy",
  tabTrigger: "ead",
  uuid: "7015B36F-423C-4F5C-88EC-348DBF54CACE"},
 {content: 
   "eachDirMatch(${1:filter}) {${2/(.+)/(?1: )/}${2:dir}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachDirMatch { … }",
  scope: "source.groovy",
  tabTrigger: "eadm",
  uuid: "EAE02657-C90A-49C5-90B4-7AC043C1BD5A"},
 {content: 
   "eachDirRecurse {${1/(.+)/(?1: )/}${1:dir}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachDirRecurse { … }",
  scope: "source.groovy",
  tabTrigger: "eadr",
  uuid: "502CA3F8-ABED-4A0B-A8A9-6DA10AC32EB5"},
 {content: "eachFile {${1/(.+)/(?1: )/}${1:file}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachFile { … }",
  scope: "source.groovy",
  tabTrigger: "eaf",
  uuid: "B84B9BBC-B4B9-4169-8643-2BF45D7E0B98"},
 {content: 
   "eachFileMatch(${1:filter}) {${2/(.+)/(?1: )/}${2:file}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachFileMatch { … } ",
  scope: "source.groovy",
  tabTrigger: "eafm",
  uuid: "05CB185E-F016-4EA6-9B1C-EB7830E4F859"},
 {content: 
   "eachFileRecurse {${1/(.+)/(?1: )/}${1:file}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachFileRecurse { … }",
  scope: "source.groovy",
  tabTrigger: "eafr",
  uuid: "1E985DD0-E1B7-472A-A31C-1B9AB917DF5C"},
 {content: "eachKey {${1/(.+)/(?1: )/}${1:key}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachKey { … }",
  scope: "source.groovy",
  tabTrigger: "eak",
  uuid: "CDDD5286-5B6B-4B79-8AA7-6F27ACF2441A"},
 {content: "eachLine {${1/(.+)/(?1: )/}${1:line}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachLine { … }",
  scope: "source.groovy",
  tabTrigger: "eal",
  uuid: "0C9A7EED-2FC5-4E2B-B160-8D50E8350F36"},
 {content: 
   "eachMatch(/${1:regex}/) {${2/(.+)/(?1: )/}${2:match}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachMatch(regex) { … } ",
  scope: "source.groovy",
  tabTrigger: "eam",
  uuid: "F25E60A2-0ED2-4625-BA43-D3748697A014"},
 {content: "eachObject {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachObject { … }",
  scope: "source.groovy",
  tabTrigger: "eao",
  uuid: "37D97C76-E4A3-4938-863C-371AA781C00B"},
 {content: 
   "eachValue {${1/(.+)/(?1: )/}${1:value}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "eachValue { … }",
  scope: "source.groovy",
  tabTrigger: "eav",
  uuid: "F8BC3DDB-1C63-4419-9A88-239B592C7FCB"},
 {content: "eachWithIndex { ${1:obj}, ${2:i} ->\n\t$0 \n}",
  name: "eachWithIndex { … }",
  scope: "source.groovy",
  tabTrigger: "eawi",
  uuid: "887BDDD6-682A-487E-BAC2-C4FEF81893DE"},
 {content: "else {\n\t$0\n}",
  name: "else",
  scope: "source.groovy",
  tabTrigger: "el",
  uuid: "138853E5-7033-4059-B8E6-8273C0637C07"},
 {content: "else if (${1:condition}) {\n\t$0\n}",
  name: "elseif",
  scope: "source.groovy",
  tabTrigger: "elif",
  uuid: "52467FAB-C1E6-4E9A-86F1-22E6A538662E"},
 {content: "every {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "every { … }",
  scope: "source.groovy",
  tabTrigger: "every",
  uuid: "062DC244-1B3F-43CF-82BB-777882905B85"},
 {content: "final ${1:void} ${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "final method() { … }",
  scope: "source.groovy",
  tabTrigger: "fm",
  uuid: "C1A2F4A4-8043-49F2-9A2C-5E2F3C056B58"},
 {content: "final ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${4:null}}$0",
  name: "final var",
  scope: "source.groovy",
  tabTrigger: "fv",
  uuid: "C86D59F4-010C-4684-89B0-AEC8691173E9"},
 {content: "find {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "find { … }",
  scope: "source.groovy",
  tabTrigger: "find",
  uuid: "C2C9DA71-A726-414E-9571-AF4D552DA818"},
 {content: "findAll {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "findAll { … }",
  scope: "source.groovy",
  tabTrigger: "finda",
  uuid: "76AA2DFA-36D6-4B66-AF15-5E8B6F93EBFA"},
 {content: "for(${1:element} in ${2:collection}) {\n\t$0\n}",
  name: "for(… in …) { … }",
  scope: "source.groovy",
  tabTrigger: "forin",
  uuid: "9C0B41E0-63FF-4AEB-B45B-68E329FBDB44"},
 {content: 
   "grep(${1:filter}) {${2/(.+)/(?1: )/}${2:obj}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "grep(filter) { … }",
  scope: "source.groovy",
  tabTrigger: "grep",
  uuid: "C0F820FA-1987-461A-88D7-3F5DFB2A9C84"},
 {content: "if (${1:condition}) {\n\t$0\n}",
  name: "if",
  scope: "source.groovy",
  tabTrigger: "if",
  uuid: "C93CEA06-E045-4D1A-A581-DC9E63F048C0"},
 {content: "if(${1:condition}) {\n\t$2\n} else {\n\t$3\n}",
  name: "if … else",
  scope: "source.groovy",
  tabTrigger: "ifel",
  uuid: "03D61D6C-ACC0-4BB3-AAB8-4B7D7A81523D"},
 {content: "import ",
  name: "import",
  scope: "source.groovy",
  tabTrigger: "im",
  uuid: "2C47CB19-EEBC-44CD-A2EC-F000465DA1E9"},
 {content: 
   "private static ${1:${TM_FILENAME/(.*?)(\\..+)/$1/}} instance\n\nstatic $1 getInstance(${2:args}) { \n\tif (!instance) instance = new $1(${2:args})\n\treturn instance\n}",
  name: "instance … (Singleton)",
  scope: "source.groovy",
  tabTrigger: "instance",
  uuid: "0967D932-6CD3-4347-A6F6-8561FA9081AA"},
 {content: "${1:key}: ${2:\"${3:value}\"}",
  name: "key: \"value\" (Hash Pair)",
  scope: "source.groovy",
  tabTrigger: ":",
  uuid: "48DE19A7-3847-47E3-B971-1C7BE27C42A5"},
 {content: "${1:def} ${2:methodName}(${3:args}) {\n\t$0\n}",
  keyEquivalent: "^\n",
  name: "method() { … }",
  scope: "source.groovy",
  tabTrigger: "m",
  uuid: "940FF588-EE0E-43F1-B90D-1D901FFE948C"},
 {content: "mkdir(dir:\"${1:dirName}\")",
  name: "mkdir(dir: …)",
  scope: "source.groovy",
  tabTrigger: "mkdir",
  uuid: "1781AC80-E66A-4687-9312-8AC5809645E6"},
 {content: 
   "new File(${1:\"${2:path/to/file}\"}).eachLine {${3/(.+)/(?1: )/}${3:line}${3/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "new File(…).eachLine { … }",
  scope: "source.groovy",
  tabTrigger: "File",
  uuid: "8897744C-C480-42F3-95F0-ECA66DE5F81E"},
 {content: "\n{\n\t$0\n}",
  keyEquivalent: "^{",
  name: "next line {",
  scope: "source.groovy",
  uuid: "FF3403B5-3C06-440C-9865-5E0301E9F665"},
 {content: "package ",
  name: "package",
  scope: "source.groovy",
  tabTrigger: "pa",
  uuid: "1E2AD474-3AFA-47D7-B2D8-C38FBE205A80"},
 {content: "print $0",
  name: "print",
  scope: "source.groovy",
  tabTrigger: "p",
  uuid: "2158C237-5FA0-4C14-BA75-ACE6A9AF4DA6"},
 {content: "println $0",
  name: "println ",
  scope: "source.groovy",
  tabTrigger: "pl",
  uuid: "7CD67A16-887C-4F6B-BCF7-A8F59C0E3801"},
 {content: "final ${1:def} ${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "private final method() { … }",
  scope: "source.groovy",
  tabTrigger: "pfm",
  uuid: "E43D020F-D3FF-4457-92ED-57858626D52E"},
 {content: 
   "private final ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${4:null}}$0",
  name: "private final var",
  scope: "source.groovy",
  tabTrigger: "pfv",
  uuid: "32432A78-BDFF-4227-BC8C-B83DCF5BBC5D"},
 {content: 
   "private ${1:void}${1/(.+)/(?1: )/}${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "private method() { … }",
  scope: "source.groovy",
  tabTrigger: "pm",
  uuid: "334E5D2A-DD89-4FB4-B46B-73C0FD2B5447"},
 {content: 
   "private static final ${1:void}${1/(.+)/(?1: )/}${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "private static final method() { … }",
  scope: "source.groovy",
  tabTrigger: "psfm",
  uuid: "18F8CD14-6214-4B23-88B3-D638FCBF4FCE"},
 {content: 
   "private static final ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${4:null}}$0",
  name: "private static final var",
  scope: "source.groovy",
  tabTrigger: "psfv",
  uuid: "D68BC13B-00A0-4873-9D45-9B3ECF0A6341"},
 {content: 
   "private static ${1:void}${1/(.+)/(?1: )/}${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "private static method() { … }",
  scope: "source.groovy",
  tabTrigger: "psm",
  uuid: "A32F6740-9803-4B05-A35B-E9D04B331593"},
 {content: 
   "private static ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${4:null}}$0",
  name: "private static var",
  scope: "source.groovy",
  tabTrigger: "psv",
  uuid: "9E79BFEB-71D8-4626-9AB7-CC2250BC54AA"},
 {content: "private ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${0:null}}",
  name: "private var",
  scope: "source.groovy",
  tabTrigger: "pv",
  uuid: "CA634288-7DC5-4221-9DC2-20F06C89E3EA"},
 {content: 
   "replace(dir:\"${1:dirName}\", includes:\"${2:*.*}\", token:\"${3:tokenName}\", value:\"\\${${4:value}}\")$0",
  name: "replace(dir: …, includes: …, token: …, value: …)",
  scope: "source.groovy",
  tabTrigger: "replace",
  uuid: "7698CB64-8DAD-4BAF-A170-2A1A67C8A4CD"},
 {content: 
   "replaceAll(/${1:regex}/) {${2/(.+)/(?1: )/}${2:match}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "replaceAll(regex) { … }",
  scope: "source.groovy",
  tabTrigger: "replace",
  uuid: "0964BA68-3780-43CB-9372-1DADD2FCADF2"},
 {content: 
   "reverseEach {${1/(.+)/(?1: )/}${1:obj}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "reverseEach { … } ",
  scope: "source.groovy",
  tabTrigger: "rea",
  uuid: "52F522F9-E810-410F-8FA9-738992A23263"},
 {content: "runAfter(${1:delay}) {\n\t$0\n}",
  name: "runAfter() { … }",
  scope: "source.groovy",
  tabTrigger: "runa",
  uuid: "B9D2BBEE-88EC-4225-B547-64A27AE80D9F"},
 {content: "{\n\t$0\n}",
  keyEquivalent: "^[",
  name: "same line {",
  scope: "source.groovy",
  uuid: "BD762765-1844-4FCD-8DBA-3932034A6960"},
 {content: "void setUp() {\n\t$0\n}",
  name: "setUp() { … }",
  scope: "source.groovy",
  tabTrigger: "setup",
  uuid: "811449A1-F936-40F9-96A4-627511DDA806"},
 {content: 
   "shouldFail${1/(.+)/(?1:\\()/}${1:Exception}${1/(.+)/(?1:\\))/} {\n\t$0\n}",
  name: "shouldFail { … }",
  scope: "source.groovy",
  tabTrigger: "sf",
  uuid: "0F011DE5-992E-46E2-8DB2-2A7491463321"},
 {content: "sleep(${1:secs})",
  name: "sleep(secs)",
  scope: "source.groovy",
  tabTrigger: "sleep",
  uuid: "B5ABE863-BAEC-4C94-9B94-B8FED21F1E04"},
 {content: "sleep(${1:secs}) {\n\t${2:// on interrupt do}\n}",
  name: "sleep(secs) { … // on interrupt do }",
  scope: "source.groovy",
  tabTrigger: "sleep",
  uuid: "F4E726E7-FA09-483E-B896-442CF2C747E0"},
 {content: "sort { \n\t$0\n}",
  name: "sort { … }",
  scope: "source.groovy",
  tabTrigger: "sort",
  uuid: "68225360-25FB-44D5-B9CF-E9AD7EC71763"},
 {content: 
   "splitEachLine(${1:separator}) {${2/(.+)/(?1: )/}${2:obj}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "splitEachLine(separator) { … }",
  scope: "source.groovy",
  tabTrigger: "sel",
  uuid: "934815EE-37A0-4431-B9E5-59F6D7B8319B"},
 {content: 
   "static final ${1:void}${1/(.+)/(?1: )/}${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "static final method() { … }",
  scope: "source.groovy",
  tabTrigger: "sfm",
  uuid: "E0DCF878-9B20-403F-BC3C-E85D8085ABF3"},
 {content: 
   "static final ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${4:null}}$0",
  name: "static final var",
  scope: "source.groovy",
  tabTrigger: "sfv",
  uuid: "846E1FF7-576F-4B33-AF6E-D382A4568D29"},
 {content: "static main(args) {\n\t$0\n}",
  name: "static main() { … }",
  scope: "source.groovy",
  tabTrigger: "main",
  uuid: "91AFF9B1-E508-46E4-9962-FA92635C5D53"},
 {content: 
   "static ${1:void}${1/(.+)/(?1: )/}${2:methodName}(${3:args}) {\n\t$0\n}",
  name: "static method() { … }",
  scope: "source.groovy",
  tabTrigger: "sm",
  uuid: "64B1A830-646A-439E-BB31-77E26299EAEC"},
 {content: "static ${1:String}${1/(.+)/(?1: )/}${2:var}${3: = ${0:null}}",
  name: "static var",
  scope: "source.groovy",
  tabTrigger: "sv",
  uuid: "59D7ECC5-A7E5-4984-94D4-31ADD463E078"},
 {content: 
   "step(${1:to}, ${2:amount}) {${3/(.+)/(?1: )/}${3:i}${3/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "step(to,amount) { … }",
  scope: "source.groovy",
  tabTrigger: "step",
  uuid: "CD6EFDAB-0C62-4488-9D54-491974A9DB9E"},
 {content: "switch(${1:value}) {\n\tcase ${2:CASE}:\n\t\t$3\n\tbreak$0\n}",
  name: "switch … case",
  scope: "source.groovy",
  tabTrigger: "switch",
  uuid: "A5C80D9B-2D0F-4E11-A261-01B48519A228"},
 {content: 
   "switch(${1:value}) {\n\tcase ${3:CASE}:\n\t\t$4\n\tbreak$0\n\tdefault:\n\t\t$2\n\tbreak\n}",
  name: "switch … case … default",
  scope: "source.groovy",
  tabTrigger: "switch",
  uuid: "2DB139D0-75BA-49FA-9249-690DB3CAE99F"},
 {content: "void tearDown() {\n\t$0\n}",
  name: "tearDown() { … }",
  scope: "source.groovy",
  tabTrigger: "tear",
  uuid: "11E662E2-7507-4FAB-A618-22BDBA462981"},
 {content: "void test$1() {\n\t$0\n}",
  name: "test()",
  scope: "source.groovy",
  tabTrigger: "t",
  uuid: "7CF4CAA7-6EC5-41E6-A4B1-B1BE77D03931"},
 {content: "times {${1/(.+)/(?1: )/}${1:i}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "times { … }",
  scope: "source.groovy",
  tabTrigger: "times",
  uuid: "F6C4E0DE-4BC4-4A0B-8633-A73A168F4897"},
 {content: "toArray()",
  name: "to Array",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "BC96A573-94FA-42D2-BA3C-8454F48D622D"},
 {content: "toBigDecimal()",
  name: "to BigDecimal",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "98929DE2-18BA-4528-9476-C45F3EE938C3"},
 {content: "toBigInteger()",
  name: "to BigInteger",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "C3ED5F43-EDEE-4991-AE89-68B4F29D2E76"},
 {content: "toBoolean()",
  name: "to Boolean",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "ADFCEABD-3EA9-420B-9E33-C2184621BCF4"},
 {content: "toCharacter()",
  name: "to Character",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "6A0AB561-7A23-42CF-9A56-A8D550723B0A"},
 {content: "toDouble()",
  name: "to Double",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "F83A236B-1ED3-4D66-88D2-D5F4464B242D"},
 {content: "toFloat()",
  name: "to Float",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "EE74D04D-9CF4-495D-8510-4246DBFA9203"},
 {content: "toInteger()",
  name: "to Integer",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "5909EDC9-BE9B-43B2-B469-C4915E84BDF6"},
 {content: "toList()",
  name: "to List",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "EF529118-C849-40AF-8B8A-FF96326AD26B"},
 {content: "toString()",
  name: "to String",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "301C4E82-8F1B-4423-B9F7-E6D19538B492"},
 {content: "toURI()",
  name: "to URI",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "8F6FBCF8-EB48-4573-8BDF-E1EACF3E60AE"},
 {content: "toURL()",
  name: "to URL",
  scope: "source.groovy",
  tabTrigger: "to",
  uuid: "DAFFA50E-CA9C-49D2-ACF8-D127E271B9BD"},
 {content: "try {\n\t$0\n}\ncatch(${1:Exception} e) {\n\t$2\n}\n\n",
  name: "try … catch",
  scope: "source.groovy",
  tabTrigger: "try",
  uuid: "7F0BF50E-97B9-4BC4-BF80-8C2932B31DB0"},
 {content: 
   "try {\n\t$0\n}\ncatch(${1:Exception} e) {\n\t$2\n}\nfinally {\n\t$3\n}\n\n",
  name: "try … catch … finally",
  scope: "source.groovy",
  tabTrigger: "try",
  uuid: "CACF2879-3FE5-4ACC-9AAD-40216F490F0D"},
 {content: "upto(${1:0}) {${2/(.+)/(?1: )/}${2:i}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "upto() { … }",
  scope: "source.groovy",
  tabTrigger: "ut",
  uuid: "DAA867F7-0BAB-417C-9FAD-51A81C2A0F3D"},
 {content: "${1:def} ${2:var}${3: = ${0:null}}",
  name: "var",
  scope: "source.groovy",
  tabTrigger: "v",
  uuid: "22DDDD36-254D-4E0B-B1E6-1547661B01C5"},
 {content: "while(${1:condition}) {\n\t$0\n}",
  name: "while() { … }",
  scope: "source.groovy",
  tabTrigger: "while",
  uuid: "C12D2ED7-E27A-4D0E-BC80-EEDCF387D6C6"},
 {content: 
   "withInputStream {${1/(.+)/(?1: )/}${1:in}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withInputStream { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "A79D8CA2-389B-4BEA-A273-43B6CC489C9F"},
 {content: 
   "withOutputStream {${1/(.+)/(?1: )/}${1:out}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withOutputStream { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "F67AA34F-E2E9-4F4F-9C76-73B9DE134708"},
 {content: 
   "withPrintWriter {${1/(.+)/(?1: )/}${1:writer}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withPrintWriter { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "80DD9ED4-7BC8-47A7-9187-B47C82C51C6F"},
 {content: 
   "withReader {${1/(.+)/(?1: )/}${1:reader}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withReader { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "EC389D48-67B3-437C-B70D-9314EFC830A2"},
 {content: 
   "withStream {${1/(.+)/(?1: )/}${1:stream}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withStream { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "8C88EC86-9E66-4F5A-B8C9-C4BF1215D0D6"},
 {content: 
   "withStreams {${1/(.+)/(?1: )/}${1:socket}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withStreams { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "2F09117B-A382-489F-9E7C-5EAB720EA6B1"},
 {content: 
   "withWriter {${1/(.+)/(?1: )/}${1:writer}${1/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withWriter { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "BF5639C4-2A58-46C0-8929-4A5010E6473B"},
 {content: 
   "withWriter(${1:charset}) {${2/(.+)/(?1: )/}${2:writer}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withWriter(charset) { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "A83832BE-A728-4785-8DC0-228A990AE8F9"},
 {content: 
   "withWriterAppend(${1:charset}) {${2/(.+)/(?1: )/}${2:writer}${2/(.+)/(?1: ->)/}\n\t$0\n}",
  name: "withWriterAppend(charset) { … }",
  scope: "source.groovy",
  tabTrigger: "with",
  uuid: "EE21684A-4B7F-4AA2-BC9C-AE331CEC8F09"}]
