runtime(nsis): Update NSIS plugin
Commit:
https://github.com/vim/vim/commit/4eb50ba61c655215ed0469c0323c368e3721996b
Author: K.Takata <[email protected]>
Date: Sun Jun 7 17:25:55 2026 +0000
runtime(nsis): Update NSIS plugin
closes: https://github.com/vim/vim/issues/20439
Signed-off-by: K.Takata <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/syntax/nsis.vim b/runtime/syntax/nsis.vim
index 49fa17abf..595f9cf67 100644
--- a/runtime/syntax/nsis.vim
+++ b/runtime/syntax/nsis.vim
@@ -1,9 +1,9 @@
" Vim syntax file
-" Language: NSIS script, for version of NSIS 3.08 and later
+" Language: NSIS script, for version of NSIS 3.12 and later
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis
" Previous Maintainer: Alex Jakushev <[email protected]>
-" Last Change: 2022-11-05
+" Last Change: 2026-06-06
" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -204,9 +204,16 @@ syn match nsisStatement "${For}"
syn match nsisStatement "${ForEach}"
syn match nsisStatement "${ExitFor}"
syn match nsisStatement "${Next}"
+syn match nsisStatement "${While}"
+syn match nsisStatement "${ExitWhile}"
+syn match nsisStatement "${EndWhile}"
"STATEMENTS - Memento.nsh
syn match nsisStatement "${MementoSection}"
syn match nsisStatement "${MementoSectionEnd}"
+syn match nsisStatement "${MementoUnselectedSection}"
+syn match nsisStatement "${MementoSectionDone}"
+syn match nsisStatement "${MementoSectionRestore}"
+syn match nsisStatement "${MementoSectionSave}"
"USER VARIABLES (4.2.1)
@@ -257,7 +264,7 @@ syn keyword nsisAttribute contained InstallDirRegKey
nextgroup=nsisRegistryOpt s
syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt
skipwhite
syn region nsisInstTypeOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisInstTypeKwd
-syn match nsisInstTypeKwd contained
"/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>"
+syn match nsisInstTypeKwd contained
"/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\|UNINSTNOCUSTOM\|UNINSTCOMPONENTSONLYONCUSTOM\)\>"
syn keyword nsisAttribute contained LicenseBkColor
nextgroup=nsisLicenseBkColorOpt skipwhite
syn region nsisLicenseBkColorOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd
@@ -279,6 +286,17 @@ syn keyword nsisAttribute contained ManifestSupportedOS
nextgroup=nsisManifestSu
syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd
syn match nsisManifestSupportedOSKwd contained
"\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>"
+syn keyword nsisAttribute contained ManifestMaxVersionTested
ManifestAppendCustomString
+syn keyword nsisAttribute contained ManifestDPIAwareness
+
+syn keyword nsisAttribute contained ManifestDisableWindowFiltering
nextgroup=nsisManifestDisableWindowFilteringOpt skipwhite
+syn region nsisManifestDisableWindowFilteringOpt contained start="" end="$"
transparent keepend contains=@nsisAnyOpt,nsisManifestDisableWindowFilteringKwd
+syn match nsisManifestDisableWindowFilteringKwd contained
"\<\%(notset\|true\)\>"
+
+syn keyword nsisAttribute contained ManifestGdiScaling
nextgroup=nsisManifestGdiScalingOpt skipwhite
+syn region nsisManifestGdiScalingOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisManifestGdiScalingKwd
+syn match nsisManifestGdiScalingKwd contained "\<\%(notset\|true\)\>"
+
syn keyword nsisAttribute contained PEAddResource
nextgroup=nsisPEAddResourceOpt skipwhite
syn region nsisPEAddResourceOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisPEAddResourceKwd
syn match nsisPEAddResourceKwd contained "/\%(OVERWRITE\|REPLACE\)\>"
@@ -287,6 +305,8 @@ syn keyword nsisAttribute contained PERemoveResource
nextgroup=nsisPERemoveResou
syn region nsisPERemoveResourceOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisPERemoveResourceKwd
syn match nsisPERemoveResourceKwd contained "/NOERRORS\>"
+syn keyword nsisAttribute contained PEDllCharacteristics PESubsysVer
+
syn keyword nsisAttribute contained RequestExecutionLevel
nextgroup=nsisRequestExecutionLevelOpt skipwhite
syn region nsisRequestExecutionLevelOpt contained start="" end="$"
transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd
syn keyword nsisRequestExecutionLevelKwd contained none user highest admin
@@ -328,6 +348,12 @@ syn keyword nsisCompiler contained SetOverwrite
nextgroup=nsisSetOverwriteOpt sk
syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisSetOverwriteKwd
syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff
lastused
+syn keyword nsisCompiler contained SetCompressionLevel Target
+
+syn keyword nsisCompiler contained CPU nextgroup=nsisCPUOpt skipwhite
+syn region nsisCPUOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisCPUKwd
+syn keyword nsisCPUKwd contained x86 amd64
+
syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt
skipwhite
"VERSION INFORMATION (4.8.3)
@@ -344,8 +370,8 @@ syn match nsisDeleteKwd contained "/REBOOTOK\>"
syn keyword nsisInstruction contained Exec ExecWait SetOutPath
syn keyword nsisInstruction contained ExecShell ExecShellWait
nextgroup=nsisExecShellOpt skipwhite
-syn region nsisExecShellOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisExecShellKwd
-syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL
SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE
+syn region nsisExecShellOpt contained start="" end="$" transparent
contains=@nsisAnyOpt,nsisExecShellKwd
+syn keyword nsisExecShellKwd contained SW_SHOW SW_SHOWDEFAULT SW_SHOWNORMAL
SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE
syn match nsisExecShellKwd contained "/INVOKEIDLIST\>"
syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite
@@ -370,7 +396,7 @@ syn region nsisDeleteRegKeyOpt contained start=""
end="$" transparent keepend co
syn match nsisDeleteRegKeyKwd contained
"/\%(ifempty\|ifnosubkeys\|ifnovalues\)\>"
syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite
- \ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD
ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr
+ \ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD
ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegNone WriteRegStr
syn region nsisRegistryOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisRegistry
syn keyword nsisInstruction contained WriteRegMultiStr
nextgroup=nsisWriteRegMultiStrOpt skipwhite
@@ -379,12 +405,12 @@ syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>"
syn keyword nsisInstruction contained SetRegView
nextgroup=nsisSetRegViewOpt skipwhite
syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisSetRegViewKwd
-syn keyword nsisSetRegViewKwd contained default lastused
+syn keyword nsisSetRegViewKwd contained 32 64 default lastused
"FUNCTIONS - general purpose (4.9.3)
-syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetWinVer
+syn keyword nsisInstruction contained CallInstDLL CreateDirectory
syn keyword nsisInstruction contained GetFileTime GetFileTimeLocal
GetKnownFolderPath
-syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL
UnRegDLL
+syn keyword nsisInstruction contained GetTempFileName ReadMemory SearchPath
RegDLL UnRegDLL
syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt
skipwhite
syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisCopyFilesKwd
@@ -417,12 +443,12 @@ syn keyword nsisFileAttrib contained
FILE_ATTRIBUTE_TEMPORARY
syn keyword nsisInstruction contained Abort Call ClearErrors
GetCurrentAddress
syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress
Goto
syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists
IfRebootFlag IfSilent
-syn keyword nsisInstruction contained IfShellVarContextAll IfRtlLanguage
+syn keyword nsisInstruction contained IfAltRegView IfRtlLanguage
IfShellVarContextAll
syn keyword nsisInstruction contained IntCmp IntCmpU Int64Cmp Int64CmpU
IntPtrCmp IntPtrCmpU
syn keyword nsisInstruction contained Return Quit SetErrors StrCmp StrCmpS
syn keyword nsisInstruction contained MessageBox
nextgroup=nsisMessageBoxOpt skipwhite
-syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend
contains=@nsisAnyOpt,nsisMessageBox
+syn region nsisMessageBoxOpt contained start="" end="$" transparent
contains=@nsisAnyOpt,nsisMessageBox
syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE
MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION
MB_ICONQUESTION MB_ICONSTOP MB_USERICON
syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT
MB_RTLREADING
@@ -444,15 +470,16 @@ syn match nsisFileWriteUTF16LEKwd contained "/BOM\>"
syn keyword nsisInstruction contained WriteUninstaller
"FUNCTIONS - Misc instructions (4.9.7)
-syn keyword nsisInstruction contained GetErrorLevel GetInstDirError
InitPluginsDir Nop
+syn keyword nsisInstruction contained GetErrorLevel GetInstDirError
GetRegView GetShellVarContext
+syn keyword nsisInstruction contained InitPluginsDir Nop
syn keyword nsisInstruction contained SetErrorLevel Sleep
syn keyword nsisInstruction contained SetShellVarContext
nextgroup=nsisSetShellVarContextOpt skipwhite
syn region nsisSetShellVarContextOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd
-syn keyword nsisSetShellVarContextKwd contained current all
+syn keyword nsisSetShellVarContextKwd contained current all lastused
"FUNCTIONS - String manipulation support (4.9.8)
-syn keyword nsisInstruction contained StrCpy StrLen
+syn keyword nsisInstruction contained StrCpy StrLen UnsafeStrCpy
"FUNCTIONS - Stack support (4.9.9)
syn keyword nsisInstruction contained Exch Push Pop
@@ -480,8 +507,8 @@ syn keyword nsisInstruction contained ShowWindow
syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt
skipwhite
-syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite
- \ LockWindow SetAutoClose
+syn keyword nsisInstruction contained SetAutoClose nextgroup=nsisBooleanOpt
skipwhite
+syn keyword nsisInstruction contained LockWindow nextgroup=nsisOnOffOpt
skipwhite
syn keyword nsisInstruction contained LoadAndSetImage
nextgroup=nsisLoadAndSetImageOpt skipwhite
syn region nsisLoadAndSetImageOpt contained start="" end="$" transparent
keepend contains=@nsisAnyOpt,nsisLoadAndSetImageKwd
@@ -568,6 +595,8 @@ syn match nsisSystem contained "!packhdr\>"
syn match nsisSystem contained "!finalize\>"
syn match nsisSystem contained "!uninstfinalize\>"
syn match nsisSystem contained "!system\>"
+syn match nsisSystem contained "!assert\>"
+syn match nsisSystem contained "!appendmemfile\>"
syn match nsisSystem contained "!tempfile\>"
" Add 'P' to avoid conflicts with nsisGetDLLVersionOpt. ('P' for preprocessor.)
@@ -656,6 +685,8 @@ hi def link nsisLicenseForceSelectionKwd Constant
hi def link nsisManifestDPIAwareKwd Constant
hi def link nsisManifestLongPathAwareKwd Constant
hi def link nsisManifestSupportedOSKwd Constant
+hi def link nsisManifestDisableWindowFilteringKwd Constant
+hi def link nsisManifestGdiScalingKwd Constant
hi def link nsisPEAddResourceKwd Constant
hi def link nsisPERemoveResourceKwd Constant
hi def link nsisRequestExecutionLevelKwd Constant
@@ -665,6 +696,7 @@ hi def link nsisSilentUnInstallKwd Constant
hi def link nsisSetCompressKwd Constant
hi def link nsisSetCompressorKwd Constant
hi def link nsisSetOverwriteKwd Constant
+hi def link nsisCPUKwd Constant
hi def link nsisDeleteKwd Constant
hi def link nsisExecShellKwd Constant
hi def link nsisFileKwd Constant
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1wWHK1-003AD3-Rq%40256bit.org.