" Vim syntax file " Language: NSIS script, for version of NSIS 1.91 and later " Maintainer: Alex Jakushev " Last Change: 2004 May 12 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case ignore "COMMENTS syn keyword nsisTodo todo attention note fixme readme syn region nsisComment start=";" end="$" contains=nsisTodo syn region nsisComment start="#" end="$" contains=nsisTodo "LABELS syn match nsisLocalLabel "\a\S\{-}:" syn match nsisGlobalLabel "\.\S\{-1,}:" "PREPROCESSOR syn match nsisPreprocSubst "${.\{-}}" syn match nsisDefine "!define\>" syn match nsisDefine "!undef\>" syn match nsisPreCondit "!ifdef\>" syn match nsisPreCondit "!ifndef\>" syn match nsisPreCondit "!endif\>" syn match nsisPreCondit "!else\>" syn match nsisMacro "!macro\>" syn match nsisMacro "!macroend\>" syn match nsisMacro "!insertmacro\>" "COMPILER UTILITY syn match nsisInclude "!include\>" syn match nsisSystem "!cd\>" syn match nsisSystem "!system\>" syn match nsisSystem "!packhdr\>" "VARIABLES syn match nsisUserVar "$\d" syn match nsisUserVar "$R\d" syn match nsisSysVar "$INSTDIR" syn match nsisSysVar "$OUTDIR" syn match nsisSysVar "$CMDLINE" syn match nsisSysVar "$PROGRAMFILES" syn match nsisSysVar "$DESKTOP" syn match nsisSysVar "$EXEDIR" syn match nsisSysVar "$WINDIR" syn match nsisSysVar "$SYSDIR" syn match nsisSysVar "$TEMP" syn match nsisSysVar "$STARTMENU" syn match nsisSysVar "$SMPROGRAMS" syn match nsisSysVar "$SMSTARTUP" syn match nsisSysVar "$QUICKLAUNCH" syn match nsisSysVar "$HWNDPARENT" syn match nsisSysVar "$\\r" syn match nsisSysVar "$\\n" syn match nsisSysVar "$\$" "STRINGS syn region nsisString start=/"/ skip=/'\|`/ end=/"/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry syn region nsisString start=/'/ skip=/"\|`/ end=/'/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry syn region nsisString start=/`/ skip=/"\|'/ end=/`/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry "CONSTANTS syn keyword nsisBoolean true false on off syn keyword nsisAttribOptions hide show nevershow auto force try ifnewer normal silent silentlog syn keyword nsisAttribOptions smooth colored SET CUR END RO none listonly textonly both current all syn keyword nsisAttribOptions zlib bzip2 lzma syn match nsisAttribOptions '\/NOCUSTOM' syn match nsisAttribOptions '\/CUSTOMSTRING' syn match nsisAttribOptions '\/COMPONENTSONLYONCUSTOM' syn match nsisAttribOptions '\/windows' syn match nsisAttribOptions '\/r' syn match nsisAttribOptions '\/oname' syn match nsisAttribOptions '\/REBOOTOK' syn match nsisAttribOptions '\/SILENT' syn match nsisAttribOptions '\/FILESONLY' syn match nsisAttribOptions '\/SHORT' syn keyword nsisExecShell SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED syn keyword nsisRegistry HKCR HKLM HKCU HKU HKCC HKDD HKPD syn keyword nsisRegistry HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS syn keyword nsisRegistry HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA syn keyword nsisFileAttrib NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY syn keyword nsisFileAttrib FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN syn keyword nsisFileAttrib FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM syn keyword nsisFileAttrib FILE_ATTRIBUTE_TEMPORARY syn keyword nsisMessageBox MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL syn keyword nsisMessageBox MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP syn keyword nsisMessageBox MB_TOPMOST MB_SETFOREGROUND MB_RIGHT syn keyword nsisMessageBox MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 syn keyword nsisMessageBox IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES syn match nsisNumber "\<[^0]\d*\>" syn match nsisNumber "\<0x\x\+\>" syn match nsisNumber "\<0\o*\>" "INSTALLER ATTRIBUTES - General installer configuration syn keyword nsisAttribute OutFile Name Caption SubCaption BrandingText Icon syn keyword nsisAttribute WindowIcon BGGradient SilentInstall SilentUnInstall syn keyword nsisAttribute CRCCheck MiscButtonText InstallButtonText FileErrorText "INSTALLER ATTRIBUTES - Install directory configuration syn keyword nsisAttribute InstallDir InstallDirRegKey "INSTALLER ATTRIBUTES - License page configuration syn keyword nsisAttribute LicenseText LicenseData "INSTALLER ATTRIBUTES - Component page configuration syn keyword nsisAttribute ComponentText InstType EnabledBitmap DisabledBitmap SpaceTexts "INSTALLER ATTRIBUTES - Directory page configuration syn keyword nsisAttribute DirShow DirText AllowRootDirInstall "INSTALLER ATTRIBUTES - Install page configuration syn keyword nsisAttribute InstallColors InstProgressFlags AutoCloseWindow syn keyword nsisAttribute ShowInstDetails DetailsButtonText CompletedText "INSTALLER ATTRIBUTES - Uninstall configuration syn keyword nsisAttribute UninstallText UninstallIcon UninstallCaption syn keyword nsisAttribute UninstallSubCaption ShowUninstDetails UninstallButtonText "COMPILER ATTRIBUTES syn keyword nsisCompiler SetOverwrite SetCompress SetCompressor SetDatablockOptimize SetDateSave "FUNCTIONS - general purpose syn keyword nsisInstruction SetOutPath File Exec ExecWait ExecShell syn keyword nsisInstruction Rename Delete RMDir "FUNCTIONS - registry & ini syn keyword nsisInstruction WriteRegStr WriteRegExpandStr WriteRegDWORD WriteRegBin syn keyword nsisInstruction WriteINIStr ReadRegStr ReadRegDWORD ReadINIStr ReadEnvStr syn keyword nsisInstruction ExpandEnvStrings DeleteRegValue DeleteRegKey EnumRegKey syn keyword nsisInstruction EnumRegValue DeleteINISec DeleteINIStr "FUNCTIONS - general purpose, advanced syn keyword nsisInstruction CreateDirectory CopyFiles SetFileAttributes CreateShortCut syn keyword nsisInstruction GetFullPathName SearchPath GetTempFileName CallInstDLL syn keyword nsisInstruction RegDLL UnRegDLL GetDLLVersion GetDLLVersionLocal syn keyword nsisInstruction GetFileTime GetFileTimeLocal "FUNCTIONS - Branching, flow control, error checking, user interaction, etc instructions syn keyword nsisInstruction Goto Call Return IfErrors ClearErrors SetErrors FindWindow syn keyword nsisInstruction SendMessage IsWindow IfFileExists MessageBox StrCmp syn keyword nsisInstruction IntCmp IntCmpU Abort Quit GetFunctionAddress GetLabelAddress syn keyword nsisInstruction GetCurrentAddress "FUNCTIONS - File and directory i/o instructions syn keyword nsisInstruction FindFirst FindNext FindClose FileOpen FileClose FileRead syn keyword nsisInstruction FileWrite FileReadByte FileWriteByte FileSeek "FUNCTIONS - Misc instructions syn keyword nsisInstruction SetDetailsView SetDetailsPrint SetAutoClose DetailPrint syn keyword nsisInstruction Sleep BringToFront HideWindow SetShellVarContext "FUNCTIONS - String manipulation support syn keyword nsisInstruction StrCpy StrLen "FUNCTIONS - Stack support syn keyword nsisInstruction Push Pop Exch "FUNCTIONS - Integer manipulation support syn keyword nsisInstruction IntOp IntFmt "FUNCTIONS - Rebooting support syn keyword nsisInstruction Reboot IfRebootFlag SetRebootFlag "FUNCTIONS - Uninstaller instructions syn keyword nsisInstruction WriteUninstaller "FUNCTIONS - Install logging instructions syn keyword nsisInstruction LogSet LogText "FUNCTIONS - Section management instructions syn keyword nsisInstruction SectionSetFlags SectionGetFlags SectionSetText syn keyword nsisInstruction SectionGetText "SPECIAL FUNCTIONS - install syn match nsisCallback "\.onInit" syn match nsisCallback "\.onUserAbort" syn match nsisCallback "\.onInstSuccess" syn match nsisCallback "\.onInstFailed" syn match nsisCallback "\.onVerifyInstDir" syn match nsisCallback "\.onNextPage" syn match nsisCallback "\.onPrevPage" syn match nsisCallback "\.onSelChange" "SPECIAL FUNCTIONS - uninstall syn match nsisCallback "un\.onInit" syn match nsisCallback "un\.onUserAbort" syn match nsisCallback "un\.onInstSuccess" syn match nsisCallback "un\.onInstFailed" syn match nsisCallback "un\.onVerifyInstDir" syn match nsisCallback "un\.onNextPage" "STATEMENTS - sections syn keyword nsisStatement Section SectionIn SectionEnd SectionDivider syn keyword nsisStatement AddSize "STATEMENTS - functions syn keyword nsisStatement Function FunctionEnd "STATEMENTS - pages syn keyword nsisStatement Page UninstPage PageEx PageExEnc PageCallbacks "ERROR syn keyword nsisError UninstallExeName " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_nsis_syn_inits") if version < 508 let did_nsys_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink nsisInstruction Function HiLink nsisComment Comment HiLink nsisLocalLabel Label HiLink nsisGlobalLabel Label HiLink nsisStatement Statement HiLink nsisString String HiLink nsisBoolean Boolean HiLink nsisAttribOptions Constant HiLink nsisExecShell Constant HiLink nsisFileAttrib Constant HiLink nsisMessageBox Constant HiLink nsisRegistry Identifier HiLink nsisNumber Number HiLink nsisError Error HiLink nsisUserVar Identifier HiLink nsisSysVar Identifier HiLink nsisAttribute Type HiLink nsisCompiler Type HiLink nsisTodo Todo HiLink nsisCallback Operator " preprocessor commands HiLink nsisPreprocSubst PreProc HiLink nsisDefine Define HiLink nsisMacro Macro HiLink nsisPreCondit PreCondit HiLink nsisInclude Include HiLink nsisSystem PreProc delcommand HiLink endif let b:current_syntax = "nsis"