diff runtime/syntax/nsis.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/nsis.vim	Sat Nov 10 15:07:22 2007 +0900
@@ -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"
+