       \t\t${10:// your code here}
       }$11
     """
+    leftLabelHTML: "<span class='syntax--support function'>#</span>"
+    prefix: 'switch():4'
   'switch():5':
-    'prefix': 'switch():5'
-    'body': """
+    body: """
       switch(\$${1:variable}) {
       \tcase ${2:value1}:
       \t\t${3:// your code here}

      \t\t${12:// your code here}
      }$13
    """
  'un.onGUIEnd()':
    'prefix': 'un.onGUIEnd()'
    'body': """
      function un.onGUIEnd(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onGUIInit()':
    'prefix': 'un.onGUIInit()'
    'body': """
      function un.onGUIInit(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onInit()':
    'prefix': 'un.onInit()'
    'body': """
      function un.onInit(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onRebootFailed()':
    'prefix': 'un.onRebootFailed()'
    'body': """
      function un.onRebootFailed(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onSelChange()':
    'prefix': 'un.onSelChange()'
    'body': """
      function un.onSelChange(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onUninstFailed()':
    'prefix': 'un.onUninstFailed()'
    'body': """
      function un.onUninstFailed(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onUninstSuccess()':
    'prefix': 'un.onUninstSuccess()'
    'body': """
      function un.onUninstSuccess(${1}) {
      \t${2:// your code here}
      }$3
    """
  'un.onUserAbort¡()':
    'prefix': 'un.onUserAbort¡()'
    'body': """
      function un.onUserAbort(${1}) {
      \t${2:// your code here}
      }$3
    """
  'uninstall page Components()':
    'prefix': 'uninstall page Components()'
    'body': """
      uninstall page Components(${1:function}) {
      \t${2:// your code here}
      }$3
    """
  'uninstall page Directory()':
    'prefix': 'uninstall page Directory()'
    'body': """
      uninstall page Directory(${1:function}) {
      \t${2:// your code here}
      }$3
    """
  'uninstall page InstFiles()':
    'prefix': 'uninstall page InstFiles()'
    'body': """
      uninstall page InstFiles(${1:function}) {
      \t${2:// your code here}
      }$3
    """
  'uninstall page License()':
    'prefix': 'uninstall page License()'
    'body': """
      uninstall page License(${1:function}) {
      \t${2:// your code here}
      }$3
    """
  'uninstall page uninstConfirm()':
    'prefix': 'uninstall page uninstConfirm()'
    'body': """
      uninstall page uninstConfirm(${1:function}) {
      \t${2:// your code here}
      }$3
    """
  'UninstallButtonText()':
    'prefix': 'UninstallButtonText()'
    'body': 'UninstallButtonText("${1:text}");$2'
  'UninstallCaption()':
    'prefix': 'UninstallCaption()'
    'body': 'UninstallCaption("${1:caption}");$2'
  'UninstallIcon()':
    'prefix': 'UninstallIcon()'
    'body': 'UninstallIcon(${1});$2'
  'UninstallSubCaption()':
    'prefix': 'UninstallSubCaption()'
    'body': 'UninstallSubCaption(${1});$2'
  'UninstallText()':
    'prefix': 'UninstallText()'
    'body': 'UninstallText("${1:text}"${2:, "${3:subtext}"});$4'
  'UnRegDLL()':
    'prefix': 'UnRegDLL()'
    'body': 'UnRegDLL(${1});$2'
  'VIAddVersionKey()':
    'prefix': 'VIAddVersionKey()'
    'body': 'VIAddVersionKey(${1});$2'
  'VIProductVersion()':
    'prefix': 'VIProductVersion()'
    'body': 'VIProductVersion(${1});$2'
  'while()':
    'prefix': 'while()'
    'body': """
      while(${1:condition}) {
      \t${2:// your code here}
      }$3
    """
  'WindowIcon()':
    'prefix': 'WindowIcon()'
    'body': 'WindowIcon(${1});$2'
  'WindowIcon(off)':
    'prefix': 'WindowIcon(off)'
    'body': 'WindowIcon("off");$2'
  'WindowIcon(on)':
    'prefix': 'WindowIcon(on)'
    'body': 'WindowIcon("on");$2'
  'WriteINIStr()':
    'prefix': 'WriteINIStr()'
    'body': 'WriteINIStr(${1});$2'
  'WriteRegBin()':
    'prefix': 'WriteRegBin()'
    'body': 'WriteRegBin(${1});$2'
  'WriteRegDWORD()':
    'prefix': 'WriteRegDWORD()'
    'body': 'WriteRegDWORD(${1});$2'
  'WriteRegExpandStr()':
    'prefix': 'WriteRegExpandStr()'
    'body': 'WriteRegExpandStr(${1});$2'
  'WriteRegStr()':
    'prefix': 'WriteRegStr()'
    'body': 'WriteRegStr(${1});$2'
  'WriteUninstaller()':
    'prefix': 'WriteUninstaller()'
    'body': 'WriteUninstaller(${1});$2'
  'XPStyle()':
    'prefix': 'XPStyle()'
    'body': 'XPStyle(${1});$2'
  'XPStyle(off)':
    'prefix': 'XPStyle(off)'
    'body': 'XPStyle("off");$2'
  'XPStyle(on)':
    'prefix': 'XPStyle(on)'
    'body': 'XPStyle("on");$2'

'.source.nsl':
  '#define':
    body: '#define ${1:gflag}$2'
    leftLabelHTML: "<span class='syntax--keyword control'>!</span>"
    prefix: 'define'
  '#if…#else':
    body: """
      #if
      \t${1:// your code here}
      #else
      \t${2:// your code here}
      #ifend$3
    """
    leftLabelHTML: "<span class='syntax--keyword control'>!</span>"
    prefix: 'if…else'
  '#if':
    body: """
      #if
      \t${1:// your code here}
      #ifend$2
    """
    leftLabelHTML: "<span class='syntax--keyword control'>!</span>"
    prefix: 'if'
  '#macro':
    body: """
      #macro
      \t${1:// your code here}
      #macroend$2
    """
    leftLabelHTML: "<span class='syntax--keyword control'>!</span>"
    prefix: 'macro'
  '#nsis':
    body: """
      #nsis
      \t${1:# your code here}
      #nsisend$2
    """
    leftLabelHTML: "<span class='syntax--support function'>#</span>"
    prefix: 'nsis'
  'Abort()':
    body: 'Abort(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Abort()'
  'AddBrandingImage()':
    body: 'AddBrandingImage(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AddBrandingImage()'
  'AddIncludeDir()':
    body: 'AddIncludeDir(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AddIncludeDir()'
  'AddPluginDir()':
    body: 'AddPluginDir(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AddPluginDir()'
  'AddSize()':
    body: 'AddSize(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AddSize()'
  'AllowRootDirInstall()':
    body: 'AllowRootDirInstall(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowRootDirInstall()'
  'AllowRootDirInstall(false)':
    body: 'AllowRootDirInstall(false);$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowRootDirInstall(false)'
  'AllowRootDirInstall(true)':
    body: 'AllowRootDirInstall(true);$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowRootDirInstall(true)'
  'AllowSkipFiles()':
    body: 'AllowSkipFiles(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowSkipFiles()'
  'AllowSkipFiles(off)':
    body: 'AllowSkipFiles(off);$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowSkipFiles(off)'
  'AllowSkipFiles(on)':
    body: 'AllowSkipFiles(on);$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AllowSkipFiles(on)'
  'AutoCloseWindow()':
    body: 'AutoCloseWindow(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AutoCloseWindow()'
  'AutoCloseWindow(false)':
    body: 'AutoCloseWindow("false");$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AutoCloseWindow(false)'
  'AutoCloseWindow(true)':
    body: 'AutoCloseWindow("true");$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'AutoCloseWindow(true)'
  'BGFont()':
    body: 'BGFont(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'BGFont()'
  'BGGradient()':
    body: 'BGGradient(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'BGGradient()'
  'BrandingText()':
    body: 'BrandingText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'BrandingText()'
  'BringToFront()':
    body: 'BringToFront(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'BringToFront()'
  'Call()':
    body: 'Call(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Call()'
  'Caption()':
    body: 'Caption("${1:caption}");$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Caption()'
  'case':
    body: """
      case ${1:value}:
      \t${2:// your code here}
    """
    leftLabelHTML: "<span class='syntax--support function'>#</span>"
    prefix: 'case'
  'ChangeUI()':
    body: 'ChangeUI(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ChangeUI()'
  'CheckBitmap()':
    body: 'CheckBitmap(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CheckBitmap()'
  'ClearErrors()':
    body: 'ClearErrors(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ClearErrors()'
  'CompletedText()':
    body: 'CompletedText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CompletedText()'
  'ComponentText()':
    body: 'ComponentText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ComponentText()'
  'CopyFiles()':
    body: 'CopyFiles(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CopyFiles()'
  'CRCCheck()':
    body: 'CRCCheck(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CRCCheck()'
  'CreateDirectory()':
    body: 'CreateDirectory(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CreateDirectory()'
  'CreateFont()':
    body: 'CreateFont(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CreateFont()'
  'CreateShortCut()':
    body: 'CreateShortCut(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'CreateShortCut()'
  'Delete()':
    body: 'Delete(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Delete()'
  'DeleteINISec()':
    body: 'DeleteINISec(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DeleteINISec()'
  'DeleteINIStr()':
    body: 'DeleteINIStr(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DeleteINIStr()'
  'DeleteRegKey()':
    body: 'DeleteRegKey(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DeleteRegKey()'
  'DeleteRegValue()':
    body: 'DeleteRegValue(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DeleteRegValue()'
  'DetailPrint()':
    body: 'DetailPrint(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DetailPrint()'
  'DetailsButtonText()':
    body: 'DetailsButtonText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DetailsButtonText()'
  'DirText()':
    body: 'DirText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DirText()'
  'DirVar()':
    body: 'DirVar(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DirVar()'
  'DirVerify()':
    body: 'DirVerify(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'DirVerify()'
  'EnableWindow()':
    body: 'EnableWindow(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'EnableWindow()'
  'EnumRegKey()':
    body: 'EnumRegKey(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'EnumRegKey()'
  'EnumRegValue()':
    body: 'EnumRegValue(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'EnumRegValue()'
  'Exch()':
    body: 'Exch(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Exch()'
  'Exec()':
    body: 'Exec(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Exec()'
  'ExecShell()':
    body: 'ExecShell(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ExecShell()'
  'ExecWait()':
    body: 'ExecWait(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ExecWait()'
  'ExpandEnvStrings()':
    body: 'ExpandEnvStrings(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'ExpandEnvStrings()'
  'File()':
    body: 'File(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'File()'
  'FileBufSize()':
    body: 'FileBufSize(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileBufSize()'
  'FileClose()':
    body: 'FileClose(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileClose()'
  'FileErrorText()':
    body: 'FileErrorText(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileErrorText()'
  'FileOpen()':
    body: 'FileOpen(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileOpen()'
  'FileRead()':
    body: 'FileRead(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileRead()'
  'FileReadByte()':
    body: 'FileReadByte(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileReadByte()'
  'FileRecursive()':
    body: 'FileRecursive(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileRecursive()'
  'FileSeek()':
    body: 'FileSeek(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileSeek()'
  'FileWrite()':
    body: 'FileWrite(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileWrite()'
  'FileWriteByte()':
    body: 'FileWriteByte(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FileWriteByte()'
  'FindClose()':
    body: 'FindClose(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FindClose()'
  'FindFirst()':
    body: 'FindFirst(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FindFirst()'
  'FindNext()':
    body: 'FindNext(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FindNext()'
  'FindWindow()':
    body: 'FindWindow(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FindWindow()'
  'FlushINI()':
    body: 'FlushINI(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'FlushINI()'
  'for()':
    prefix: 'for()'
    body: """
      for(${1:condition}) {
      \t${2:// your code here}
      }
    """
  'function()':
    body: """
      function ${1:function_name}(${2}) {
      \t${3:// your code here}
      }
    """
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'function()'
  'GetCurInstType()':
    body: 'GetCurInstType(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetCurInstType()'
  'GetCurrentAddress()':
    body: 'GetCurrentAddress(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetCurrentAddress()'
  'GetDlgItem()':
    body: 'GetDlgItem(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetDlgItem()'
  'GetDLLVersion()':
    body: 'GetDLLVersion(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetDLLVersion()'
  'GetDLLVersionLocal()':
    body: 'GetDLLVersionLocal(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetDLLVersionLocal()'
  'GetErrorLevel()':
    body: 'GetErrorLevel(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetErrorLevel()'
  'GetFileTime()':
    body: 'GetFileTime(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetFileTime()'
  'GetFileTimeLocal()':
    body: 'GetFileTimeLocal(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetFileTimeLocal()'
  'GetFunctionAddress()':
    body: 'GetFunctionAddress(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetFunctionAddress()'
  'GetInstDirError()':
    body: 'GetInstDirError(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetInstDirError()'
  'GetLabelAddress()':
    body: 'GetLabelAddress(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetLabelAddress()'
  'GetTempFileName()':
    body: 'GetTempFileName(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'GetTempFileName()'
  'HideWindow()':
    body: 'HideWindow(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'HideWindow()'
  'Icon()':
    body: 'Icon(${1});$2'
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'Icon()'
  'if()…else':
    body: """
      if (${1:condition}) {
      \t${2:// your code here}
      } else {
      \t${3:// your code here}
      }
    """
    leftLabelHTML: "<span class='syntax--keyword'>K</span>"
    prefix: 'if()…else'
  'if()…else if()…else':
    body: """
      if (${1:condition}) {
      \t${2:// your code here}
      } else if (${3:condition}) {
