{
  // 知行之桥 ArcScript Snippet 1.0
  "arc:set": {
    "prefix": "arc:set",
    "body": ["<arc:set attr=\"${1:attr}\" value=\"$2\"/>"]
  },
  "arc:include": {
    "prefix": "arc:include",
    "body": ["<arc:include file=\"$1\"/>"]
  },
  "arc:push": {
    "prefix": "arc:push",
    "body": ["<arc:push item=\"$1\"/>"]
  },
  "arc:call": {
    "prefix": "arc:call",
    "body": ["<arc:call op=\"$1\" in=\"$2\" out=\"$3\">","  $4","</arc:call>"]
  },
  "arc:call2": {
    "prefix": "arc:call2",
    "body": ["<arc:call op=\"$1\" in=\"$2\"/>"]
  },
  "arc:if":  {
    "prefix": "arc:if",
    "body": ["<arc:if exp=\"$1\">","  $2","</arc:if>"]
  },
  "arc:map": {
    "prefix": "arc:map",
    "body": ["<arc:map from=\"$1\" to=\"$2\" map=\"*=*\"/>"]
  },
  "arc:setm": {
    "prefix": "arc:setm",
    "body": ["<arc:setm item=\"$1\">","  $2","</arc:setm>"]
  },
  "arc:try": {
    "prefix": "arc:try",
    "body": ["<arc:try>","  $1","<arc:finally>","  $2","</arc:finally>","</arc:try>"]
  },
  "arc:else": {
    "prefix": "arc:else",
    "body": ["<arc:else>","  $1","</arc:else>"]
  },
  "arc:catch": {
    "prefix": "arc:catch",
    "body": ["<arc:catch code=\"*\">","  $1","</arc:catch>"]
  },
  "arc:unset": {
    "prefix": "arc:unset",
    "body": ["<arc:unset item=\"$1\"/>"]
  },
  "arc:unset2": {
    "prefix": "arc:unset2",
    "body": ["<arc:unset attr=\"$1\"/>"]
  },
  "arc:exist": {
    "prefix": "arc:exist",
    "body": ["<arc:exist attr=\"$1\">","  $2","</arc:exist>"]
  },
  "arc:check": {
    "prefix": "arc:check",
    "body": ["<arc:check attr=\"$1\">","  $2","</arc:check>"]
  },
  "arc:break": {
    "prefix": "arc:break",
    "body": ["<arc:break/>"]
  },
  "arc:enum": {
    "prefix": "arc:enum",
    "body": ["<arc:enum list=\"$1\" sep=\"$2\">","  $3","</arc:enum>"]
  },
  "arc:enum2": {
    "prefix": "arc:enum2",
    "body": ["<arc:enum attr=\"$1\">","  $2","</arc:enum>"]
  },
  "arc:enum(range)": {
    "prefix": "arc:enum(range)",
    "body": ["<arc:enum range=\"${1:1..10}\">","  $2","</arc:enum>"]
  },
  "arc:enum(item attrs)": {
    "prefix": "arc:enum(item attrs)",
    "body": ["<arc:enum item=\"$1\">","  $2","</arc:enum>"]
  },
  "arc:render": {
    "prefix": "arc:render",
    "body": ["<arc:render template=\"$1\" in=\"$2\"/>"]
  },
  "arc:select": {
    "prefix": "arc:select",
    "body": ["<arc:select value=\"$1\">","  <arc:case value=\"$2\">","    $3","</arc:case>","  <arc:default>","    $4","  </arc:default>","</arc:select>"]
  },
  "arc:equals": {
    "prefix": "arc:equals",
    "body": ["<arc:if attr=\"$1\" value=\"$2\" operator=\"equals\">","  $3","<arc:else>","  $4", "</arc:else>","  $5", "</arc:if>"]
  },
  "arc:notequals": {
    "prefix": "arc:notequals",
    "body": ["<arc:if attr=\"$1\" value=\"$2\" operator=\"notequals\">","  $3","<arc:else>","  $4", "</arc:else>","  $5", "</arc:if>"]
  },
  "arc:first": {
    "prefix": "arc:first",
    "body": ["<arc:first>", "  $1", "</arc:first>"]
  },
  "arc:null": {
    "prefix": "arc:null",
    "body": ["<arc:null attr=\"$1\">", "  $2", "</arc:null>"]
  },
  "arc:notnull": {
    "prefix": "arc:notnull",
    "body": ["<arc:notnull attr=\"$1\">", "  $2", "</arc:notnull>"]
  },
  "arc:throw": {
    "prefix": "arc:throw",
    "body": ["<arc:throw code=\"${1:myerror}\" desc=\"${2:thedescription}\" />"]
  }
}