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