blob: 212c0f6dbeb8851aacd016c079ca255248b0bfc2 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar21cf8232004-07-16 20:18:37 +00002" Language: Inno Setup File (iss file) and My InnoSetup extension
3" Maintainer: Jason Mills (jmills@cs.mun.ca)
Bram Moolenaarcb80aa22020-10-26 21:12:46 +01004" Previous Maintainer: Dominique Stéphan (dominique@mggen.com)
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +03005" Last Change: 2023 Jan 26
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00006"
7" Todo:
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00008" - Pascal scripting syntax is not recognized.
9" - Embedded double quotes confuse string matches. e.g. "asfd""asfa"
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020011" quit when a syntax file was already loaded
12if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000013 finish
14endif
15
16" shut case off
17syn case ignore
18
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030019" match keywords with colon
20syn iskeyword @,48-57,_,192-255,:
21
Bram Moolenaar21cf8232004-07-16 20:18:37 +000022" Preprocessor
23syn region issPreProc start="^\s*#" end="$"
24
Bram Moolenaar071d4272004-06-13 20:20:40 +000025" Section
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000026syn region issSection start="\[" end="\]"
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
28" Label in the [Setup] Section
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000029syn match issDirective "^[^=]\+="
Bram Moolenaar071d4272004-06-13 20:20:40 +000030
31" URL
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000032syn match issURL "http[s]\=:\/\/.*$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000033
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000034" Parameters used for any section.
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030035" syn match issParam "[^: ]\+:"
36syn keyword issParam Name:
37syn keyword issParam MinVersion: OnlyBelowVersion: Languages:
38syn keyword issParam Source: DestDir: DestName: CopyMode: ExternalSize:
39syn keyword issParam Attribs: Permissions: FontInstall: Flags:
40syn keyword issParam FileName: Parameters: WorkingDir: HotKey: Comment:
41syn keyword issParam IconFilename: IconIndex:
42syn keyword issParam Section: Key: String:
43syn keyword issParam Root: SubKey: ValueType: ValueName: ValueData:
44syn keyword issParam RunOnceId:
45syn keyword issParam Type: Excludes:
46syn keyword issParam Components: Description: GroupDescription: Types: ExtraDiskSpaceRequired:
47syn keyword issParam StatusMsg: RunOnceId: Tasks:
48syn keyword issParam MessagesFile: LicenseFile: InfoBeforeFile: InfoAfterFile:
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
Bram Moolenaar5be4cee2019-09-27 19:34:08 +020050syn match issComment "^\s*;.*$" contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000051
52" folder constant
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030053syn match issFolder "{\@1<!{[^{]*}" contains=@NoSpell
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
55" string
Bram Moolenaar5be4cee2019-09-27 19:34:08 +020056syn region issString start=+"+ end=+"+ contains=issFolder,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000057
58" [Dirs]
59syn keyword issDirsFlags deleteafterinstall uninsalwaysuninstall uninsneveruninstall
60
61" [Files]
Bram Moolenaar8299df92004-07-10 09:47:34 +000062syn keyword issFilesCopyMode normal onlyifdoesntexist alwaysoverwrite alwaysskipifsameorolder dontcopy
Bram Moolenaar071d4272004-06-13 20:20:40 +000063syn keyword issFilesAttribs readonly hidden system
Bram Moolenaar8299df92004-07-10 09:47:34 +000064syn keyword issFilesPermissions full modify readexec
65syn keyword issFilesFlags allowunsafefiles comparetimestampalso confirmoverwrite deleteafterinstall
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030066syn keyword issFilesFlags dontcopy dontverifychecksum external fontisnttruetype ignoreversion
67syn keyword issFilesFlags isreadme onlyifdestfileexists onlyifdoesntexist overwritereadonly
Bram Moolenaar8299df92004-07-10 09:47:34 +000068syn keyword issFilesFlags promptifolder recursesubdirs regserver regtypelib restartreplace
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030069syn keyword issFilesFlags sharedfile skipifsourcedoesntexist sortfilesbyextension touch
Bram Moolenaar8299df92004-07-10 09:47:34 +000070syn keyword issFilesFlags uninsremovereadonly uninsrestartdelete uninsneveruninstall
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030071syn keyword issFilesFlags replacesameversion setntfscompression nocompression noencryption noregerror
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000072
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
74" [Icons]
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030075syn keyword issIconsFlags closeonexit createonlyiffileexists dontcloseonexit
Bram Moolenaar8299df92004-07-10 09:47:34 +000076syn keyword issIconsFlags runmaximized runminimized uninsneveruninstall useapppaths
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
78" [INI]
79syn keyword issINIFlags createkeyifdoesntexist uninsdeleteentry uninsdeletesection uninsdeletesectionifempty
80
81" [Registry]
82syn keyword issRegRootKey HKCR HKCU HKLM HKU HKCC
83syn keyword issRegValueType none string expandsz multisz dword binary
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030084syn keyword issRegFlags createvalueifdoesntexist deletekey deletevalue dontcreatekey
85syn keyword issRegFlags preservestringtype noerror uninsclearvalue
Bram Moolenaar8299df92004-07-10 09:47:34 +000086syn keyword issRegFlags uninsdeletekey uninsdeletekeyifempty uninsdeletevalue
Bram Moolenaar071d4272004-06-13 20:20:40 +000087
88" [Run] and [UninstallRun]
Bram Moolenaar8299df92004-07-10 09:47:34 +000089syn keyword issRunFlags hidewizard nowait postinstall runhidden runmaximized
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +030090syn keyword issRunFlags runminimized shellexec skipifdoesntexist skipifnotsilent
Bram Moolenaar8299df92004-07-10 09:47:34 +000091syn keyword issRunFlags skipifsilent unchecked waituntilidle
Bram Moolenaar071d4272004-06-13 20:20:40 +000092
93" [Types]
94syn keyword issTypesFlags iscustom
95
96" [Components]
Bram Moolenaar8299df92004-07-10 09:47:34 +000097syn keyword issComponentsFlags dontinheritcheck exclusive fixed restart disablenouninstallwarning
Bram Moolenaar071d4272004-06-13 20:20:40 +000098
99" [UninstallDelete] and [InstallDelete]
100syn keyword issInstallDeleteType files filesandordirs dirifempty
101
Bram Moolenaar8299df92004-07-10 09:47:34 +0000102" [Tasks]
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +0300103syn keyword issTasksFlags checkedonce dontinheritcheck exclusive restart unchecked
Bram Moolenaar8299df92004-07-10 09:47:34 +0000104
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105
106" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200107" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200109" The default methods for highlighting. Can be overridden later
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200110hi def link issSection Special
111hi def link issComment Comment
112hi def link issDirective Type
113hi def link issParam Type
114hi def link issFolder Special
115hi def link issString String
116hi def link issURL Include
ObserverOfTimef9c4c2f2023-08-13 11:25:41 +0300117hi def link issPreProc PreProc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000118
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200119hi def link issDirsFlags Keyword
120hi def link issFilesCopyMode Keyword
121hi def link issFilesAttribs Keyword
122hi def link issFilesPermissions Keyword
123hi def link issFilesFlags Keyword
124hi def link issIconsFlags Keyword
125hi def link issINIFlags Keyword
126hi def link issRegRootKey Keyword
127hi def link issRegValueType Keyword
128hi def link issRegFlags Keyword
129hi def link issRunFlags Keyword
130hi def link issTypesFlags Keyword
131hi def link issComponentsFlags Keyword
132hi def link issInstallDeleteType Keyword
133hi def link issTasksFlags Keyword
Bram Moolenaar071d4272004-06-13 20:20:40 +0000134
Bram Moolenaar071d4272004-06-13 20:20:40 +0000135
136let b:current_syntax = "iss"
137
138" vim:ts=8