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