diff options
Diffstat (limited to 'runtime/syntax/nsis.vim')
-rw-r--r-- | runtime/syntax/nsis.vim | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/runtime/syntax/nsis.vim b/runtime/syntax/nsis.vim new file mode 100644 index 000000000..d6d803714 --- /dev/null +++ b/runtime/syntax/nsis.vim @@ -0,0 +1,271 @@ +" 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" + |