1" Vim syntax file 2" Language: NSIS script, for version of NSIS 1.91 and later 3" Maintainer: Alex Jakushev <[email protected]> 4" Last Change: 2004 May 12 5 6" quit when a syntax file was already loaded 7if exists("b:current_syntax") 8 finish 9endif 10 11syn case ignore 12 13 14"COMMENTS 15syn keyword nsisTodo todo attention note fixme readme 16syn region nsisComment start=";" end="$" contains=nsisTodo 17syn region nsisComment start="#" end="$" contains=nsisTodo 18 19"LABELS 20syn match nsisLocalLabel "\a\S\{-}:" 21syn match nsisGlobalLabel "\.\S\{-1,}:" 22 23"PREPROCESSOR 24syn match nsisPreprocSubst "${.\{-}}" 25syn match nsisDefine "!define\>" 26syn match nsisDefine "!undef\>" 27syn match nsisPreCondit "!ifdef\>" 28syn match nsisPreCondit "!ifndef\>" 29syn match nsisPreCondit "!endif\>" 30syn match nsisPreCondit "!else\>" 31syn match nsisMacro "!macro\>" 32syn match nsisMacro "!macroend\>" 33syn match nsisMacro "!insertmacro\>" 34 35"COMPILER UTILITY 36syn match nsisInclude "!include\>" 37syn match nsisSystem "!cd\>" 38syn match nsisSystem "!system\>" 39syn match nsisSystem "!packhdr\>" 40 41"VARIABLES 42syn match nsisUserVar "$\d" 43syn match nsisUserVar "$R\d" 44syn match nsisSysVar "$INSTDIR" 45syn match nsisSysVar "$OUTDIR" 46syn match nsisSysVar "$CMDLINE" 47syn match nsisSysVar "$PROGRAMFILES" 48syn match nsisSysVar "$DESKTOP" 49syn match nsisSysVar "$EXEDIR" 50syn match nsisSysVar "$WINDIR" 51syn match nsisSysVar "$SYSDIR" 52syn match nsisSysVar "$TEMP" 53syn match nsisSysVar "$STARTMENU" 54syn match nsisSysVar "$SMPROGRAMS" 55syn match nsisSysVar "$SMSTARTUP" 56syn match nsisSysVar "$QUICKLAUNCH" 57syn match nsisSysVar "$HWNDPARENT" 58syn match nsisSysVar "$\\r" 59syn match nsisSysVar "$\\n" 60syn match nsisSysVar "$\$" 61 62"STRINGS 63syn region nsisString start=/"/ skip=/'\|`/ end=/"/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry 64syn region nsisString start=/'/ skip=/"\|`/ end=/'/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry 65syn region nsisString start=/`/ skip=/"\|'/ end=/`/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry 66 67"CONSTANTS 68syn keyword nsisBoolean true false on off 69 70syn keyword nsisAttribOptions hide show nevershow auto force try ifnewer normal silent silentlog 71syn keyword nsisAttribOptions smooth colored SET CUR END RO none listonly textonly both current all 72syn keyword nsisAttribOptions zlib bzip2 lzma 73 74syn match nsisAttribOptions '\/NOCUSTOM' 75syn match nsisAttribOptions '\/CUSTOMSTRING' 76syn match nsisAttribOptions '\/COMPONENTSONLYONCUSTOM' 77syn match nsisAttribOptions '\/windows' 78syn match nsisAttribOptions '\/r' 79syn match nsisAttribOptions '\/oname' 80syn match nsisAttribOptions '\/REBOOTOK' 81syn match nsisAttribOptions '\/SILENT' 82syn match nsisAttribOptions '\/FILESONLY' 83syn match nsisAttribOptions '\/SHORT' 84 85syn keyword nsisExecShell SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED 86 87syn keyword nsisRegistry HKCR HKLM HKCU HKU HKCC HKDD HKPD 88syn keyword nsisRegistry HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS 89syn keyword nsisRegistry HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA 90 91syn keyword nsisFileAttrib NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY 92syn keyword nsisFileAttrib FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN 93syn keyword nsisFileAttrib FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM 94syn keyword nsisFileAttrib FILE_ATTRIBUTE_TEMPORARY 95 96syn keyword nsisMessageBox MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL 97syn keyword nsisMessageBox MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP 98syn keyword nsisMessageBox MB_TOPMOST MB_SETFOREGROUND MB_RIGHT 99syn keyword nsisMessageBox MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 100syn keyword nsisMessageBox IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES 101 102syn match nsisNumber "\<[^0]\d*\>" 103syn match nsisNumber "\<0x\x\+\>" 104syn match nsisNumber "\<0\o*\>" 105 106 107"INSTALLER ATTRIBUTES - General installer configuration 108syn keyword nsisAttribute OutFile Name Caption SubCaption BrandingText Icon 109syn keyword nsisAttribute WindowIcon BGGradient SilentInstall SilentUnInstall 110syn keyword nsisAttribute CRCCheck MiscButtonText InstallButtonText FileErrorText 111 112"INSTALLER ATTRIBUTES - Install directory configuration 113syn keyword nsisAttribute InstallDir InstallDirRegKey 114 115"INSTALLER ATTRIBUTES - License page configuration 116syn keyword nsisAttribute LicenseText LicenseData 117 118"INSTALLER ATTRIBUTES - Component page configuration 119syn keyword nsisAttribute ComponentText InstType EnabledBitmap DisabledBitmap SpaceTexts 120 121"INSTALLER ATTRIBUTES - Directory page configuration 122syn keyword nsisAttribute DirShow DirText AllowRootDirInstall 123 124"INSTALLER ATTRIBUTES - Install page configuration 125syn keyword nsisAttribute InstallColors InstProgressFlags AutoCloseWindow 126syn keyword nsisAttribute ShowInstDetails DetailsButtonText CompletedText 127 128"INSTALLER ATTRIBUTES - Uninstall configuration 129syn keyword nsisAttribute UninstallText UninstallIcon UninstallCaption 130syn keyword nsisAttribute UninstallSubCaption ShowUninstDetails UninstallButtonText 131 132"COMPILER ATTRIBUTES 133syn keyword nsisCompiler SetOverwrite SetCompress SetCompressor SetDatablockOptimize SetDateSave 134 135 136"FUNCTIONS - general purpose 137syn keyword nsisInstruction SetOutPath File Exec ExecWait ExecShell 138syn keyword nsisInstruction Rename Delete RMDir 139 140"FUNCTIONS - registry & ini 141syn keyword nsisInstruction WriteRegStr WriteRegExpandStr WriteRegDWORD WriteRegBin 142syn keyword nsisInstruction WriteINIStr ReadRegStr ReadRegDWORD ReadINIStr ReadEnvStr 143syn keyword nsisInstruction ExpandEnvStrings DeleteRegValue DeleteRegKey EnumRegKey 144syn keyword nsisInstruction EnumRegValue DeleteINISec DeleteINIStr 145 146"FUNCTIONS - general purpose, advanced 147syn keyword nsisInstruction CreateDirectory CopyFiles SetFileAttributes CreateShortCut 148syn keyword nsisInstruction GetFullPathName SearchPath GetTempFileName CallInstDLL 149syn keyword nsisInstruction RegDLL UnRegDLL GetDLLVersion GetDLLVersionLocal 150syn keyword nsisInstruction GetFileTime GetFileTimeLocal 151 152"FUNCTIONS - Branching, flow control, error checking, user interaction, etc instructions 153syn keyword nsisInstruction Goto Call Return IfErrors ClearErrors SetErrors FindWindow 154syn keyword nsisInstruction SendMessage IsWindow IfFileExists MessageBox StrCmp 155syn keyword nsisInstruction IntCmp IntCmpU Abort Quit GetFunctionAddress GetLabelAddress 156syn keyword nsisInstruction GetCurrentAddress 157 158"FUNCTIONS - File and directory i/o instructions 159syn keyword nsisInstruction FindFirst FindNext FindClose FileOpen FileClose FileRead 160syn keyword nsisInstruction FileWrite FileReadByte FileWriteByte FileSeek 161 162"FUNCTIONS - Misc instructions 163syn keyword nsisInstruction SetDetailsView SetDetailsPrint SetAutoClose DetailPrint 164syn keyword nsisInstruction Sleep BringToFront HideWindow SetShellVarContext 165 166"FUNCTIONS - String manipulation support 167syn keyword nsisInstruction StrCpy StrLen 168 169"FUNCTIONS - Stack support 170syn keyword nsisInstruction Push Pop Exch 171 172"FUNCTIONS - Integer manipulation support 173syn keyword nsisInstruction IntOp IntFmt 174 175"FUNCTIONS - Rebooting support 176syn keyword nsisInstruction Reboot IfRebootFlag SetRebootFlag 177 178"FUNCTIONS - Uninstaller instructions 179syn keyword nsisInstruction WriteUninstaller 180 181"FUNCTIONS - Install logging instructions 182syn keyword nsisInstruction LogSet LogText 183 184"FUNCTIONS - Section management instructions 185syn keyword nsisInstruction SectionSetFlags SectionGetFlags SectionSetText 186syn keyword nsisInstruction SectionGetText 187 188 189"SPECIAL FUNCTIONS - install 190syn match nsisCallback "\.onInit" 191syn match nsisCallback "\.onUserAbort" 192syn match nsisCallback "\.onInstSuccess" 193syn match nsisCallback "\.onInstFailed" 194syn match nsisCallback "\.onVerifyInstDir" 195syn match nsisCallback "\.onNextPage" 196syn match nsisCallback "\.onPrevPage" 197syn match nsisCallback "\.onSelChange" 198 199"SPECIAL FUNCTIONS - uninstall 200syn match nsisCallback "un\.onInit" 201syn match nsisCallback "un\.onUserAbort" 202syn match nsisCallback "un\.onInstSuccess" 203syn match nsisCallback "un\.onInstFailed" 204syn match nsisCallback "un\.onVerifyInstDir" 205syn match nsisCallback "un\.onNextPage" 206 207 208"STATEMENTS - sections 209syn keyword nsisStatement Section SectionIn SectionEnd SectionDivider 210syn keyword nsisStatement AddSize 211 212"STATEMENTS - functions 213syn keyword nsisStatement Function FunctionEnd 214 215"STATEMENTS - pages 216syn keyword nsisStatement Page UninstPage PageEx PageExEnc PageCallbacks 217 218 219"ERROR 220syn keyword nsisError UninstallExeName 221 222 223" Define the default highlighting. 224" Only when an item doesn't have highlighting yet 225 226hi def link nsisInstruction Function 227hi def link nsisComment Comment 228hi def link nsisLocalLabel Label 229hi def link nsisGlobalLabel Label 230hi def link nsisStatement Statement 231hi def link nsisString String 232hi def link nsisBoolean Boolean 233hi def link nsisAttribOptions Constant 234hi def link nsisExecShell Constant 235hi def link nsisFileAttrib Constant 236hi def link nsisMessageBox Constant 237hi def link nsisRegistry Identifier 238hi def link nsisNumber Number 239hi def link nsisError Error 240hi def link nsisUserVar Identifier 241hi def link nsisSysVar Identifier 242hi def link nsisAttribute Type 243hi def link nsisCompiler Type 244hi def link nsisTodo Todo 245hi def link nsisCallback Operator 246" preprocessor commands 247hi def link nsisPreprocSubst PreProc 248hi def link nsisDefine Define 249hi def link nsisMacro Macro 250hi def link nsisPreCondit PreCondit 251hi def link nsisInclude Include 252hi def link nsisSystem PreProc 253 254 255let b:current_syntax = "nsis" 256 257