{
  ".source.apex": {
    "class": {
      "prefix": "cla",
      "body": "public with sharing class ${1:ClassName}{\n\n\tpublic ${1:ClassName}(){\n\t\n\t\t${2://constructor code}\n\t}\n}"
    },
    "controller": {
      "prefix": "con",
      "body": "public with sharing class ${1:ClassName}_Controller{\n\tprivate final ${2:SObject} ${3:obj};\n\n\tpublic ${1:ClassName}_Controller(ApexPages.StandardController stdCon){\n\t\tthis.${3:obj} = (${2:SObject})stdCon.getRecord();\n\t\t$4\n\t}\n}"
    },
    "trigger": {
      "prefix": "tri",
      "body": "trigger ${1:TriggerName} on ${2:SObject} (${3:events}){\n\tfor(${2:SObject} ${4:obj} : Trigger.new){\n\t\t${5://bulkified code}\n\t}\n}"
    },
    "test": {
      "prefix": "test",
      "body": "@isTest\npublic class Test_${1:ClassToTest}{\n\n\tstatic testMethod void test_${2:methodToTest}{\n\t\t$3\n\t} \n}"
    },
    "for": {
      "prefix": "for",
      "body": "for(Integer i = 0; i < ${1:sObjectList}.size(); i++){\n\t${1:sObjectList}[i]\n}"
    },
    "foreach": {
      "prefix": "fore",
      "body": "for(${1:SObject} ${2:obj} : ${3:sObjList}){\n\t$4\n}"
    },
    "add apex message": {
      "prefix": "addm",
      "body": "ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.${1:ERROR}, '${2:message}'));"
    },
    "assert equal": {
      "prefix": "asse",
      "body": "System.assertEquals(${1:expected}, ${2:actual});"
    },
    "assert not equal": {
      "prefix": "assne",
      "body": "System.assertNotEquals(${1:expected}, ${2:actual});"
    },
    "new list": {
      "prefix": "newl",
      "body": "List<${1:SObject}> ${2:sObjectList} = new List<${1:SObject}>();"
    },
    "new set": {
      "prefix": "news",
      "body": "Set<${1:SObject}> ${2:sObjectSet} = new Set<${1:SObject}>();"
    },
    "new map": {
      "prefix": "newm",
      "body": "Map<${1:Id}, ${2:SObject}> ${3:sObjectMap} = new Map<${1:Id}, ${2:SObject}>();"
    }
  }
}