" Vim syntax file
" Language: NSIS script, for version of NSIS 1.91 and later
" Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
" 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 <args>
else
command -nargs=+ HiLink hi def link <args>
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"
|