summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/iss.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/iss.vim')
-rw-r--r--runtime/syntax/iss.vim138
1 files changed, 138 insertions, 0 deletions
diff --git a/runtime/syntax/iss.vim b/runtime/syntax/iss.vim
new file mode 100644
index 0000000..212c0f6
--- /dev/null
+++ b/runtime/syntax/iss.vim
@@ -0,0 +1,138 @@
+" Vim syntax file
+" Language: Inno Setup File (iss file) and My InnoSetup extension
+" Maintainer: Jason Mills (jmills@cs.mun.ca)
+" Previous Maintainer: Dominique Stéphan (dominique@mggen.com)
+" Last Change: 2023 Jan 26
+"
+" Todo:
+" - Pascal scripting syntax is not recognized.
+" - Embedded double quotes confuse string matches. e.g. "asfd""asfa"
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+" shut case off
+syn case ignore
+
+" match keywords with colon
+syn iskeyword @,48-57,_,192-255,:
+
+" Preprocessor
+syn region issPreProc start="^\s*#" end="$"
+
+" Section
+syn region issSection start="\[" end="\]"
+
+" Label in the [Setup] Section
+syn match issDirective "^[^=]\+="
+
+" URL
+syn match issURL "http[s]\=:\/\/.*$"
+
+" Parameters used for any section.
+" syn match issParam "[^: ]\+:"
+syn keyword issParam Name:
+syn keyword issParam MinVersion: OnlyBelowVersion: Languages:
+syn keyword issParam Source: DestDir: DestName: CopyMode: ExternalSize:
+syn keyword issParam Attribs: Permissions: FontInstall: Flags:
+syn keyword issParam FileName: Parameters: WorkingDir: HotKey: Comment:
+syn keyword issParam IconFilename: IconIndex:
+syn keyword issParam Section: Key: String:
+syn keyword issParam Root: SubKey: ValueType: ValueName: ValueData:
+syn keyword issParam RunOnceId:
+syn keyword issParam Type: Excludes:
+syn keyword issParam Components: Description: GroupDescription: Types: ExtraDiskSpaceRequired:
+syn keyword issParam StatusMsg: RunOnceId: Tasks:
+syn keyword issParam MessagesFile: LicenseFile: InfoBeforeFile: InfoAfterFile:
+
+syn match issComment "^\s*;.*$" contains=@Spell
+
+" folder constant
+syn match issFolder "{\@1<!{[^{]*}" contains=@NoSpell
+
+" string
+syn region issString start=+"+ end=+"+ contains=issFolder,@Spell
+
+" [Dirs]
+syn keyword issDirsFlags deleteafterinstall uninsalwaysuninstall uninsneveruninstall
+
+" [Files]
+syn keyword issFilesCopyMode normal onlyifdoesntexist alwaysoverwrite alwaysskipifsameorolder dontcopy
+syn keyword issFilesAttribs readonly hidden system
+syn keyword issFilesPermissions full modify readexec
+syn keyword issFilesFlags allowunsafefiles comparetimestampalso confirmoverwrite deleteafterinstall
+syn keyword issFilesFlags dontcopy dontverifychecksum external fontisnttruetype ignoreversion
+syn keyword issFilesFlags isreadme onlyifdestfileexists onlyifdoesntexist overwritereadonly
+syn keyword issFilesFlags promptifolder recursesubdirs regserver regtypelib restartreplace
+syn keyword issFilesFlags sharedfile skipifsourcedoesntexist sortfilesbyextension touch
+syn keyword issFilesFlags uninsremovereadonly uninsrestartdelete uninsneveruninstall
+syn keyword issFilesFlags replacesameversion setntfscompression nocompression noencryption noregerror
+
+
+" [Icons]
+syn keyword issIconsFlags closeonexit createonlyiffileexists dontcloseonexit
+syn keyword issIconsFlags runmaximized runminimized uninsneveruninstall useapppaths
+
+" [INI]
+syn keyword issINIFlags createkeyifdoesntexist uninsdeleteentry uninsdeletesection uninsdeletesectionifempty
+
+" [Registry]
+syn keyword issRegRootKey HKCR HKCU HKLM HKU HKCC
+syn keyword issRegValueType none string expandsz multisz dword binary
+syn keyword issRegFlags createvalueifdoesntexist deletekey deletevalue dontcreatekey
+syn keyword issRegFlags preservestringtype noerror uninsclearvalue
+syn keyword issRegFlags uninsdeletekey uninsdeletekeyifempty uninsdeletevalue
+
+" [Run] and [UninstallRun]
+syn keyword issRunFlags hidewizard nowait postinstall runhidden runmaximized
+syn keyword issRunFlags runminimized shellexec skipifdoesntexist skipifnotsilent
+syn keyword issRunFlags skipifsilent unchecked waituntilidle
+
+" [Types]
+syn keyword issTypesFlags iscustom
+
+" [Components]
+syn keyword issComponentsFlags dontinheritcheck exclusive fixed restart disablenouninstallwarning
+
+" [UninstallDelete] and [InstallDelete]
+syn keyword issInstallDeleteType files filesandordirs dirifempty
+
+" [Tasks]
+syn keyword issTasksFlags checkedonce dontinheritcheck exclusive restart unchecked
+
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+" The default methods for highlighting. Can be overridden later
+hi def link issSection Special
+hi def link issComment Comment
+hi def link issDirective Type
+hi def link issParam Type
+hi def link issFolder Special
+hi def link issString String
+hi def link issURL Include
+hi def link issPreProc PreProc
+
+hi def link issDirsFlags Keyword
+hi def link issFilesCopyMode Keyword
+hi def link issFilesAttribs Keyword
+hi def link issFilesPermissions Keyword
+hi def link issFilesFlags Keyword
+hi def link issIconsFlags Keyword
+hi def link issINIFlags Keyword
+hi def link issRegRootKey Keyword
+hi def link issRegValueType Keyword
+hi def link issRegFlags Keyword
+hi def link issRunFlags Keyword
+hi def link issTypesFlags Keyword
+hi def link issComponentsFlags Keyword
+hi def link issInstallDeleteType Keyword
+hi def link issTasksFlags Keyword
+
+
+let b:current_syntax = "iss"
+
+" vim:ts=8