1" Vim syntax file 2" Language: NSIS script, for version of NSIS 3.08 and later 3" Maintainer: Ken Takata 4" URL: https://github.com/k-takata/vim-nsis 5" Previous Maintainer: Alex Jakushev <[email protected]> 6" Last Change: 2020-10-18 7 8" quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13let s:cpo_save = &cpo 14set cpo&vim 15 16syn case ignore 17 18 19"Pseudo definitions 20syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^" 21syn cluster nsisPseudoStatement contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel 22syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem 23syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement 24 25"COMMENTS (4.1) 26syn keyword nsisTodo todo attention note fixme readme 27syn region nsisComment start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline 28syn region nsisComment start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell 29syn region nsisFirstComment start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite 30 \ nextgroup=@nsisPseudoStatement 31 32syn match nsisLineContinuation "\\$" 33 34"STRINGS (4.1) 35syn region nsisString start=/"/ end=/"/ contains=@nsisStringItems,@Spell 36syn region nsisString start=/'/ end=/'/ contains=@nsisStringItems,@Spell 37syn region nsisString start=/`/ end=/`/ contains=@nsisStringItems,@Spell 38 39syn cluster nsisStringItems contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation 40 41"NUMBERS (4.1) 42syn match nsisNumber "\<[1-9]\d*\>" 43syn match nsisNumber "\<0x\x\+\>" 44syn match nsisNumber "\<0\o*\>" 45 46"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1) 47syn region nsisPreprocSubst start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar 48syn region nsisPreprocLangStr start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar 49syn region nsisPreprocEnvVar start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar 50 51"VARIABLES (4.2.2) 52syn match nsisUserVar "$\d" 53syn match nsisUserVar "$R\d" 54syn match nsisSysVar "$INSTDIR" 55syn match nsisSysVar "$OUTDIR" 56syn match nsisSysVar "$CMDLINE" 57syn match nsisSysVar "$LANGUAGE" 58"CONSTANTS (4.2.3) 59syn match nsisSysVar "$PROGRAMFILES" 60syn match nsisSysVar "$PROGRAMFILES32" 61syn match nsisSysVar "$PROGRAMFILES64" 62syn match nsisSysVar "$COMMONFILES" 63syn match nsisSysVar "$COMMONFILES32" 64syn match nsisSysVar "$COMMONFILES64" 65syn match nsisSysVar "$DESKTOP" 66syn match nsisSysVar "$EXEDIR" 67syn match nsisSysVar "$EXEFILE" 68syn match nsisSysVar "$EXEPATH" 69syn match nsisSysVar "${NSISDIR}" 70syn match nsisSysVar "$WINDIR" 71syn match nsisSysVar "$SYSDIR" 72syn match nsisSysVar "$TEMP" 73syn match nsisSysVar "$STARTMENU" 74syn match nsisSysVar "$SMPROGRAMS" 75syn match nsisSysVar "$SMSTARTUP" 76syn match nsisSysVar "$QUICKLAUNCH" 77syn match nsisSysVar "$DOCUMENTS" 78syn match nsisSysVar "$SENDTO" 79syn match nsisSysVar "$RECENT" 80syn match nsisSysVar "$FAVORITES" 81syn match nsisSysVar "$MUSIC" 82syn match nsisSysVar "$PICTURES" 83syn match nsisSysVar "$VIDEOS" 84syn match nsisSysVar "$NETHOOD" 85syn match nsisSysVar "$FONTS" 86syn match nsisSysVar "$TEMPLATES" 87syn match nsisSysVar "$APPDATA" 88syn match nsisSysVar "$LOCALAPPDATA" 89syn match nsisSysVar "$PRINTHOOD" 90syn match nsisSysVar "$INTERNET_CACHE" 91syn match nsisSysVar "$COOKIES" 92syn match nsisSysVar "$HISTORY" 93syn match nsisSysVar "$PROFILE" 94syn match nsisSysVar "$ADMINTOOLS" 95syn match nsisSysVar "$RESOURCES" 96syn match nsisSysVar "$RESOURCES_LOCALIZED" 97syn match nsisSysVar "$CDBURN_AREA" 98syn match nsisSysVar "$HWNDPARENT" 99syn match nsisSysVar "$PLUGINSDIR" 100syn match nsisSysVar "$\%(USERTEMPLATES\|USERSTARTMENU\|USERSMPROGRAMS\|USERDESKTOP\)" 101syn match nsisSysVar "$\%(COMMONTEMPLATES\|COMMONSTARTMENU\|COMMONSMPROGRAMS\|COMMONDESKTOP\|COMMONPROGRAMDATA\)" 102syn match nsisSysVar "$\\r" 103syn match nsisSysVar "$\\n" 104syn match nsisSysVar "$\\t" 105syn match nsisSysVar "$\$" 106syn match nsisSysVar "$\\["'`]" 107 108"LABELS (4.3) 109syn match nsisLocalLabel contained "[^-+!$0-9;"'#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" 110syn match nsisGlobalLabel contained "\.[^-+!$0-9;"'# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" 111 112"CONSTANTS 113syn keyword nsisBoolean contained true false 114syn keyword nsisOnOff contained on off 115 116syn keyword nsisRegistry contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX 117syn keyword nsisRegistry contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64 118syn keyword nsisRegistry contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS 119syn keyword nsisRegistry contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64 120syn keyword nsisRegistry contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64 121syn keyword nsisRegistry contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64 122syn keyword nsisRegistry contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA 123syn keyword nsisRegistry contained SHELL_CONTEXT 124 125 126" common options 127syn cluster nsisAnyOpt contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber 128syn region nsisBooleanOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean 129syn region nsisOnOffOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff 130syn region nsisLangOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd 131syn match nsisLangKwd contained "/LANG\>" 132syn region nsisFontOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd 133syn match nsisFontKwd contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>" 134 135"STATEMENTS - pages (4.5) 136syn keyword nsisStatement contained Page UninstPage nextgroup=nsisPageOpt skipwhite 137syn region nsisPageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd 138syn keyword nsisPageKwd contained custom license components directory instfiles uninstConfirm 139syn match nsisPageKwd contained "/ENABLECANCEL\>" 140 141syn keyword nsisStatement contained PageEx nextgroup=nsisPageExOpt skipwhite 142syn region nsisPageExOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd 143syn match nsisPageExKwd contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>" 144 145syn keyword nsisStatement contained PageExEnd PageCallbacks 146 147"STATEMENTS - sections (4.6.1) 148syn keyword nsisStatement contained AddSize SectionEnd SectionGroupEnd 149 150syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite 151syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd 152syn match nsisSectionKwd contained "/o\>" 153 154syn keyword nsisStatement contained SectionInstType SectionIn nextgroup=nsisSectionInOpt skipwhite 155syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd 156syn keyword nsisSectionInKwd contained RO 157 158syn keyword nsisStatement contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite 159syn region nsisSectionGroupOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd 160syn match nsisSectionGroupKwd contained "/e\>" 161 162"STATEMENTS - functions (4.7.1) 163syn keyword nsisStatement contained Function FunctionEnd 164 165 166"STATEMENTS - LogicLib.nsh 167syn match nsisStatement "${If}" 168syn match nsisStatement "${IfNot}" 169syn match nsisStatement "${Unless}" 170syn match nsisStatement "${ElseIf}" 171syn match nsisStatement "${ElseIfNot}" 172syn match nsisStatement "${ElseUnless}" 173syn match nsisStatement "${Else}" 174syn match nsisStatement "${EndIf}" 175syn match nsisStatement "${EndUnless}" 176syn match nsisStatement "${AndIf}" 177syn match nsisStatement "${AndIfNot}" 178syn match nsisStatement "${AndUnless}" 179syn match nsisStatement "${OrIf}" 180syn match nsisStatement "${OrIfNot}" 181syn match nsisStatement "${OrUnless}" 182syn match nsisStatement "${IfThen}" 183syn match nsisStatement "${IfNotThen}" 184syn match nsisStatement "${||\?}" nextgroup=@nsisPseudoStatement skipwhite 185syn match nsisStatement "${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite 186syn match nsisStatement "${Select}" 187syn match nsisStatement "${Case}" 188syn match nsisStatement "${Case[2-5]}" 189syn match nsisStatement "${CaseElse}" 190syn match nsisStatement "${Default}" 191syn match nsisStatement "${EndSelect}" 192syn match nsisStatement "${Switch}" 193syn match nsisStatement "${EndSwitch}" 194syn match nsisStatement "${Break}" 195syn match nsisStatement "${Do}" 196syn match nsisStatement "${DoWhile}" 197syn match nsisStatement "${DoUntil}" 198syn match nsisStatement "${ExitDo}" 199syn match nsisStatement "${Continue}" 200syn match nsisStatement "${Loop}" 201syn match nsisStatement "${LoopWhile}" 202syn match nsisStatement "${LoopUntil}" 203syn match nsisStatement "${For}" 204syn match nsisStatement "${ForEach}" 205syn match nsisStatement "${ExitFor}" 206syn match nsisStatement "${Next}" 207"STATEMENTS - Memento.nsh 208syn match nsisStatement "${MementoSection}" 209syn match nsisStatement "${MementoSectionEnd}" 210 211 212"USER VARIABLES (4.2.1) 213syn keyword nsisInstruction contained Var nextgroup=nsisVarOpt skipwhite 214syn region nsisVarOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd 215syn match nsisVarKwd contained "/GLOBAL\>" 216 217"INSTALLER ATTRIBUTES (4.8.1) 218syn keyword nsisAttribute contained Caption ChangeUI CheckBitmap CompletedText ComponentText 219syn keyword nsisAttribute contained DetailsButtonText DirText DirVar 220syn keyword nsisAttribute contained FileErrorText Icon InstallButtonText 221syn keyword nsisAttribute contained InstallDir InstProgressFlags 222syn keyword nsisAttribute contained LicenseData LicenseText 223syn keyword nsisAttribute contained MiscButtonText Name OutFile 224syn keyword nsisAttribute contained SpaceTexts SubCaption UninstallButtonText UninstallCaption 225syn keyword nsisAttribute contained UninstallIcon UninstallSubCaption UninstallText 226 227syn keyword nsisAttribute contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite 228syn region nsisAddBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd 229syn keyword nsisAddBrandingImageKwd contained left right top bottom width height 230 231syn keyword nsisAttribute contained nextgroup=nsisBooleanOpt skipwhite 232 \ AllowRootDirInstall AutoCloseWindow 233 234syn keyword nsisAttribute contained BGFont nextgroup=nsisFontOpt skipwhite 235 236syn keyword nsisAttribute contained BGGradient nextgroup=nsisBGGradientOpt skipwhite 237syn region nsisBGGradientOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd 238syn keyword nsisBGGradientKwd contained off 239 240syn keyword nsisAttribute contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite 241syn region nsisBrandingTextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd 242syn match nsisBrandingTextKwd contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>" 243 244syn keyword nsisAttribute contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite 245syn region nsisCRCCheckOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd 246syn keyword nsisCRCCheckKwd contained on off force 247 248syn keyword nsisAttribute contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite 249syn region nsisDirVerifyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd 250syn keyword nsisDirVerifyKwd contained auto leave 251 252syn keyword nsisAttribute contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite 253syn region nsisInstallColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd 254syn match nsisInstallColorsKwd contained "/windows\>" 255 256syn keyword nsisAttribute contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite 257 258syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt skipwhite 259syn region nsisInstTypeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd 260syn match nsisInstTypeKwd contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>" 261 262syn keyword nsisAttribute contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite 263syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd 264syn match nsisLicenseBkColorKwd contained "/\%(gray\|windows\)\>" 265 266syn keyword nsisAttribute contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite 267syn region nsisLicenseForceSelectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd 268syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off 269 270syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite 271syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd 272syn keyword nsisManifestDPIAwareKwd contained notset true false 273 274syn keyword nsisAttribute contained ManifestLongPathAware nextgroup=nsisManifestLongPathAwareOpt skipwhite 275syn region nsisManifestLongPathAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestLongPathAwareKwd 276syn match nsisManifestLongPathAwareKwd contained "\<\%(notset\|true\|false\)\>" 277 278syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite 279syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd 280syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>" 281 282syn keyword nsisAttribute contained PEAddResource nextgroup=nsisPEAddResourceOpt skipwhite 283syn region nsisPEAddResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPEAddResourceKwd 284syn match nsisPEAddResourceKwd contained "/\%(OVERWRITE\|REPLACE\)\>" 285 286syn keyword nsisAttribute contained PERemoveResource nextgroup=nsisPERemoveResourceOpt skipwhite 287syn region nsisPERemoveResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPERemoveResourceKwd 288syn match nsisPERemoveResourceKwd contained "/NOERRORS\>" 289 290syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite 291syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd 292syn keyword nsisRequestExecutionLevelKwd contained none user highest admin 293 294syn keyword nsisAttribute contained SetFont nextgroup=nsisLangOpt skipwhite 295 296syn keyword nsisAttribute contained nextgroup=nsisShowInstDetailsOpt skipwhite 297 \ ShowInstDetails ShowUninstDetails 298syn region nsisShowInstDetailsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd 299syn keyword nsisShowInstDetailsKwd contained hide show nevershow 300 301syn keyword nsisAttribute contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite 302syn region nsisSilentInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd 303syn keyword nsisSilentInstallKwd contained normal silent silentlog 304 305syn keyword nsisAttribute contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite 306syn region nsisSilentUnInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd 307syn keyword nsisSilentUnInstallKwd contained normal silent 308 309syn keyword nsisAttribute contained nextgroup=nsisOnOffOpt skipwhite 310 \ WindowIcon XPStyle 311 312"COMPILER FLAGS (4.8.2) 313syn keyword nsisCompiler contained nextgroup=nsisOnOffOpt skipwhite 314 \ AllowSkipFiles SetDatablockOptimize SetDateSave 315 316syn keyword nsisCompiler contained FileBufSize SetCompressorDictSize 317 318syn keyword nsisCompiler contained SetCompress nextgroup=nsisSetCompressOpt skipwhite 319syn region nsisSetCompressOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd 320syn keyword nsisSetCompressKwd contained auto force off 321 322syn keyword nsisCompiler contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite 323syn region nsisSetCompressorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd 324syn keyword nsisSetCompressorKwd contained zlib bzip2 lzma 325syn match nsisSetCompressorKwd contained "/\%(SOLID\|FINAL\)" 326 327syn keyword nsisCompiler contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite 328syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd 329syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff lastused 330 331syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt skipwhite 332 333"VERSION INFORMATION (4.8.3) 334syn keyword nsisVersionInfo contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite 335 336syn keyword nsisVersionInfo contained VIProductVersion VIFileVersion 337 338 339"FUNCTIONS - basic (4.9.1) 340syn keyword nsisInstruction contained Delete Rename nextgroup=nsisDeleteOpt skipwhite 341syn region nsisDeleteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd 342syn match nsisDeleteKwd contained "/REBOOTOK\>" 343 344syn keyword nsisInstruction contained Exec ExecWait SetOutPath 345 346syn keyword nsisInstruction contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite 347syn region nsisExecShellOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd 348syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE 349syn match nsisExecShellKwd contained "/INVOKEIDLIST\>" 350 351syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite 352syn region nsisFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd 353syn match nsisFileKwd contained "/\%(nonfatal\|[arx]\|oname\)\>" 354 355syn keyword nsisInstruction contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite 356syn region nsisReserveFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd 357syn match nsisReserveFileKwd contained "/\%(nonfatal\|[rx]\|plugin\)\>" 358 359syn keyword nsisInstruction contained RMDir nextgroup=nsisRMDirOpt skipwhite 360syn region nsisRMDirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd 361syn match nsisRMDirKwd contained "/\%(REBOOTOK\|r\)\>" 362 363 364"FUNCTIONS - registry & ini (4.9.2) 365syn keyword nsisInstruction contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr 366syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr 367 368syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite 369syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry 370syn match nsisDeleteRegKeyKwd contained "/\%(ifempty\|ifnosubkeys\|ifnovalues\)\>" 371 372syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite 373 \ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr 374syn region nsisRegistryOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry 375 376syn keyword nsisInstruction contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite 377syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd 378syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>" 379 380syn keyword nsisInstruction contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite 381syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd 382syn keyword nsisSetRegViewKwd contained default lastused 383 384"FUNCTIONS - general purpose (4.9.3) 385syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetWinVer 386syn keyword nsisInstruction contained GetFileTime GetFileTimeLocal GetKnownFolderPath 387syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL 388 389syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite 390syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd 391syn match nsisCopyFilesKwd contained "/\%(SILENT\|FILESONLY\)\>" 392 393syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite 394syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd 395syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>" 396 397syn keyword nsisInstruction contained GetDLLVersion GetDLLVersionLocal nextgroup=nsisGetDLLVersionOpt skipwhite 398syn region nsisGetDLLVersionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetDLLVersionKwd 399syn match nsisGetDLLVersionKwd contained "/ProductVersion\>" 400 401syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite 402syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd 403syn match nsisGetFullPathNameKwd contained "/SHORT\>" 404 405syn keyword nsisInstruction contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite 406syn region nsisSetFileAttributesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib 407syn keyword nsisFileAttrib contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY 408syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN 409syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM 410syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY 411 412"FUNCTIONS - Flow Control (4.9.4) 413syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress 414syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto 415syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent 416syn keyword nsisInstruction contained IfShellVarContextAll IfRtlLanguage 417syn keyword nsisInstruction contained IntCmp IntCmpU Int64Cmp Int64CmpU IntPtrCmp IntPtrCmpU 418syn keyword nsisInstruction contained Return Quit SetErrors StrCmp StrCmpS 419 420syn keyword nsisInstruction contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite 421syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox 422syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL 423syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON 424syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING 425syn keyword nsisMessageBox contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 426syn keyword nsisMessageBox contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES 427syn match nsisMessageBox contained "/SD\>" 428 429"FUNCTIONS - File and directory i/o instructions (4.9.5) 430syn keyword nsisInstruction contained FileClose FileOpen FileRead FileReadUTF16LE 431syn keyword nsisInstruction contained FileReadByte FileReadWord FileSeek FileWrite 432syn keyword nsisInstruction contained FileWriteByte FileWriteWord 433syn keyword nsisInstruction contained FindClose FindFirst FindNext 434 435syn keyword nsisInstruction contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite 436syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd 437syn match nsisFileWriteUTF16LEKwd contained "/BOM\>" 438 439"FUNCTIONS - Uninstaller instructions (4.9.6) 440syn keyword nsisInstruction contained WriteUninstaller 441 442"FUNCTIONS - Misc instructions (4.9.7) 443syn keyword nsisInstruction contained GetErrorLevel GetInstDirError InitPluginsDir Nop 444syn keyword nsisInstruction contained SetErrorLevel Sleep 445 446syn keyword nsisInstruction contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite 447syn region nsisSetShellVarContextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd 448syn keyword nsisSetShellVarContextKwd contained current all 449 450"FUNCTIONS - String manipulation support (4.9.8) 451syn keyword nsisInstruction contained StrCpy StrLen 452 453"FUNCTIONS - Stack support (4.9.9) 454syn keyword nsisInstruction contained Exch Push Pop 455 456"FUNCTIONS - Integer manipulation support (4.9.10) 457syn keyword nsisInstruction contained IntFmt Int64Fmt IntOp IntPtrOp 458 459"FUNCTIONS - Rebooting support (4.9.11) 460syn keyword nsisInstruction contained Reboot SetRebootFlag 461 462"FUNCTIONS - Install logging instructions (4.9.12) 463syn keyword nsisInstruction contained LogSet nextgroup=nsisOnOffOpt skipwhite 464syn keyword nsisInstruction contained LogText 465 466"FUNCTIONS - Section management instructions (4.9.13) 467syn keyword nsisInstruction contained SectionSetFlags SectionGetFlags SectionSetText 468syn keyword nsisInstruction contained SectionGetText SectionSetInstTypes SectionGetInstTypes 469syn keyword nsisInstruction contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType 470syn keyword nsisInstruction contained InstTypeSetText InstTypeGetText 471 472"FUNCTIONS - User Interface Instructions (4.9.14) 473syn keyword nsisInstruction contained BringToFront DetailPrint EnableWindow 474syn keyword nsisInstruction contained FindWindow GetDlgItem HideWindow IsWindow 475syn keyword nsisInstruction contained ShowWindow 476 477syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite 478 479syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite 480 \ LockWindow SetAutoClose 481 482syn keyword nsisInstruction contained LoadAndSetImage nextgroup=nsisLoadAndSetImageOpt skipwhite 483syn region nsisLoadAndSetImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLoadAndSetImageKwd 484syn match nsisLoadAndSetImageKwd contained "/\%(EXERESOURCE\|STRINGID\|RESIZETOFIT\%(WIDTH\|HEIGHT\)\)\>" 485 486syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite 487syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd 488syn match nsisSendMessageKwd contained "/TIMEOUT\>" 489 490syn keyword nsisInstruction contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite 491syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd 492syn match nsisSetBrandingImageKwd contained "/\%(IMGID\|RESIZETOFIT\)\>" 493 494syn keyword nsisInstruction contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite 495syn region nsisSetDetailsViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd 496syn keyword nsisSetDetailsViewKwd contained show hide 497 498syn keyword nsisInstruction contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite 499syn region nsisSetDetailsPrintOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd 500syn keyword nsisSetDetailsPrintKwd contained none listonly textonly both lastused 501 502syn keyword nsisInstruction contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite 503syn region nsisSetCtlColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd 504syn match nsisSetCtlColorsKwd contained "/BRANDING\>" 505 506syn keyword nsisInstruction contained SetSilent nextgroup=nsisSetSilentOpt skipwhite 507syn region nsisSetSilentOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd 508syn keyword nsisSetSilentKwd contained silent normal 509 510 511"FUNCTIONS - Multiple Languages Instructions (4.9.15) 512syn keyword nsisInstruction contained LoadLanguageFile LangString LicenseLangString 513 514 515"SPECIAL FUNCTIONS - install (4.7.2.1) 516syn match nsisCallback "\.onGUIInit" 517syn match nsisCallback "\.onInit" 518syn match nsisCallback "\.onInstFailed" 519syn match nsisCallback "\.onInstSuccess" 520syn match nsisCallback "\.onGUIEnd" 521syn match nsisCallback "\.onMouseOverSection" 522syn match nsisCallback "\.onRebootFailed" 523syn match nsisCallback "\.onSelChange" 524syn match nsisCallback "\.onUserAbort" 525syn match nsisCallback "\.onVerifyInstDir" 526 527"SPECIAL FUNCTIONS - uninstall (4.7.2.2) 528syn match nsisCallback "un\.onGUIInit" 529syn match nsisCallback "un\.onInit" 530syn match nsisCallback "un\.onUninstFailed" 531syn match nsisCallback "un\.onUninstSuccess" 532syn match nsisCallback "un\.onGUIEnd" 533syn match nsisCallback "un\.onRebootFailed" 534syn match nsisCallback "un\.onSelChange" 535syn match nsisCallback "un\.onUserAbort" 536 537 538"COMPILER UTILITY (5.1) 539syn match nsisInclude contained "!include\>" nextgroup=nsisIncludeOpt skipwhite 540syn region nsisIncludeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd 541syn match nsisIncludeKwd contained "/\%(NONFATAL\|CHARSET\)\>" 542 543syn match nsisSystem contained "!addincludedir\>" 544 545syn match nsisSystem contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite 546syn region nsisAddplugindirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd 547syn match nsisAddplugindirKwd contained "/\%(x86-ansi\|x86-unicode\)\>" 548 549syn match nsisSystem contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite 550syn region nsisAppendfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd 551syn match nsisAppendfileKwd contained "/\%(CHARSET\|RawNL\)\>" 552 553syn match nsisSystem contained "!cd\>" 554 555syn match nsisSystem contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite 556syn region nsisDelfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd 557syn match nsisDelfileKwd contained "/nonfatal\>" 558 559syn match nsisSystem contained "!echo\>" 560syn match nsisSystem contained "!error\>" 561syn match nsisSystem contained "!execute\>" 562syn match nsisSystem contained "!makensis\>" 563syn match nsisSystem contained "!packhdr\>" 564syn match nsisSystem contained "!finalize\>" 565syn match nsisSystem contained "!system\>" 566syn match nsisSystem contained "!tempfile\>" 567syn match nsisSystem contained "!getdllversion\>" 568syn match nsisSystem contained "!gettlbversion\>" 569syn match nsisSystem contained "!warning\>" 570 571syn match nsisSystem contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite 572syn region nsisPragmaOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd 573syn keyword nsisPragmaKwd contained enable disable default push pop 574 575syn match nsisSystem contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite 576syn region nsisVerboseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd 577syn keyword nsisVerboseKwd contained push pop 578 579"PREPROCESSOR (5.4) 580syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite 581syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd 582syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|file\|intfmt\|math\)\>" 583 584syn match nsisDefine contained "!undef\>" 585syn match nsisPreCondit contained "!ifdef\>" 586syn match nsisPreCondit contained "!ifndef\>" 587 588syn match nsisPreCondit contained "!if\>" nextgroup=nsisIfOpt skipwhite 589syn region nsisIfOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd 590syn match nsisIfKwd contained "/FileExists\>" 591 592syn match nsisPreCondit contained "!ifmacrodef\>" 593syn match nsisPreCondit contained "!ifmacrondef\>" 594syn match nsisPreCondit contained "!else\>" 595syn match nsisPreCondit contained "!endif\>" 596syn match nsisMacro contained "!insertmacro\>" 597syn match nsisMacro contained "!macro\>" 598syn match nsisMacro contained "!macroend\>" 599syn match nsisMacro contained "!macroundef\>" 600 601syn match nsisMacro contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite 602syn region nsisSearchparseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd 603syn match nsisSearchparseKwd contained "/\%(ignorecase\|noerrors\|file\)\>" 604 605syn match nsisMacro contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite 606syn region nsisSearchreplaceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd 607syn match nsisSearchreplaceKwd contained "/ignorecase\>" 608 609 610 611" Define the default highlighting. 612" Only when an item doesn't have highlighting yet 613 614hi def link nsisInstruction Function 615hi def link nsisComment Comment 616hi def link nsisFirstComment Comment 617hi def link nsisLocalLabel Label 618hi def link nsisGlobalLabel Label 619hi def link nsisStatement Statement 620hi def link nsisString String 621hi def link nsisBoolean Boolean 622hi def link nsisOnOff Boolean 623hi def link nsisFontKwd Constant 624hi def link nsisLangKwd Constant 625hi def link nsisPageKwd Constant 626hi def link nsisPageExKwd Constant 627hi def link nsisSectionKwd Constant 628hi def link nsisSectionInKwd Constant 629hi def link nsisSectionGroupKwd Constant 630hi def link nsisVarKwd Constant 631hi def link nsisAddBrandingImageKwd Constant 632hi def link nsisBGGradientKwd Constant 633hi def link nsisBrandingTextKwd Constant 634hi def link nsisCRCCheckKwd Constant 635hi def link nsisDirVerifyKwd Constant 636hi def link nsisInstallColorsKwd Constant 637hi def link nsisInstTypeKwd Constant 638hi def link nsisLicenseBkColorKwd Constant 639hi def link nsisLicenseForceSelectionKwd Constant 640hi def link nsisManifestDPIAwareKwd Constant 641hi def link nsisManifestLongPathAwareKwd Constant 642hi def link nsisManifestSupportedOSKwd Constant 643hi def link nsisPEAddResourceKwd Constant 644hi def link nsisPERemoveResourceKwd Constant 645hi def link nsisRequestExecutionLevelKwd Constant 646hi def link nsisShowInstDetailsKwd Constant 647hi def link nsisSilentInstallKwd Constant 648hi def link nsisSilentUnInstallKwd Constant 649hi def link nsisSetCompressKwd Constant 650hi def link nsisSetCompressorKwd Constant 651hi def link nsisSetOverwriteKwd Constant 652hi def link nsisDeleteKwd Constant 653hi def link nsisExecShellKwd Constant 654hi def link nsisFileKwd Constant 655hi def link nsisReserveFileKwd Constant 656hi def link nsisRMDirKwd Constant 657hi def link nsisDeleteRegKeyKwd Constant 658hi def link nsisWriteRegMultiStrKwd Constant 659hi def link nsisSetRegViewKwd Constant 660hi def link nsisCopyFilesKwd Constant 661hi def link nsisCreateShortcutKwd Constant 662hi def link nsisGetDLLVersionKwd Constant 663hi def link nsisGetFullPathNameKwd Constant 664hi def link nsisFileAttrib Constant 665hi def link nsisMessageBox Constant 666hi def link nsisFileWriteUTF16LEKwd Constant 667hi def link nsisSetShellVarContextKwd Constant 668hi def link nsisLoadAndSetImageKwd Constant 669hi def link nsisSendMessageKwd Constant 670hi def link nsisSetBrandingImageKwd Constant 671hi def link nsisSetDetailsViewKwd Constant 672hi def link nsisSetDetailsPrintKwd Constant 673hi def link nsisSetCtlColorsKwd Constant 674hi def link nsisSetSilentKwd Constant 675hi def link nsisRegistry Identifier 676hi def link nsisNumber Number 677hi def link nsisError Error 678hi def link nsisUserVar Identifier 679hi def link nsisSysVar Identifier 680hi def link nsisAttribute Type 681hi def link nsisCompiler Type 682hi def link nsisVersionInfo Type 683hi def link nsisTodo Todo 684hi def link nsisCallback Identifier 685" preprocessor commands 686hi def link nsisPreprocSubst PreProc 687hi def link nsisPreprocLangStr PreProc 688hi def link nsisPreprocEnvVar PreProc 689hi def link nsisDefine Define 690hi def link nsisMacro Macro 691hi def link nsisPreCondit PreCondit 692hi def link nsisInclude Include 693hi def link nsisSystem PreProc 694hi def link nsisLineContinuation Special 695hi def link nsisIncludeKwd Constant 696hi def link nsisAddplugindirKwd Constant 697hi def link nsisAppendfileKwd Constant 698hi def link nsisDelfileKwd Constant 699hi def link nsisPragmaKwd Constant 700hi def link nsisVerboseKwd Constant 701hi def link nsisDefineKwd Constant 702hi def link nsisIfKwd Constant 703hi def link nsisSearchparseKwd Constant 704hi def link nsisSearchreplaceKwd Constant 705 706 707let b:current_syntax = "nsis" 708 709let &cpo = s:cpo_save 710unlet s:cpo_save 711