From 4c7fd323ec40de2c0884b2bd290d7470cda0826d Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 24 May 2024 18:15:12 +0200 Subject: vim-patch:b1ffc52: runtime(i3config/swayconfig): fix floating_modifier highlight (vim/vim#14841) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/vim/vim/commit/b1ffc52694756efef339f01bbb1fc6ef4eaf16da Co-authored-by: Josef Litoš <54900518+JosefLitos@users.noreply.github.com> --- runtime/syntax/i3config.vim | 6 +++--- runtime/syntax/swayconfig.vim | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/i3config.vim b/runtime/syntax/i3config.vim index f4d789e418..c95cb879ad 100644 --- a/runtime/syntax/i3config.vim +++ b/runtime/syntax/i3config.vim @@ -2,8 +2,8 @@ " Language: i3 config file " Original Author: Josef Litos (JosefLitos/i3config.vim) " Maintainer: Quentin Hibon (github user hiqua) -" Version: 1.2.3 -" Last Change: 2024-05-23 +" Version: 1.2.4 +" Last Change: 2024-05-24 " References: " http://i3wm.org/docs/userguide.html#configuring @@ -67,7 +67,7 @@ syn keyword i3ConfigBindKeyword bindsym bindcode contained skipwhite nextgroup=i syn region i3ConfigModeBlock matchgroup=i3ConfigKeyword start=/mode\ze\( --pango_markup\)\? \([^'" {]\+\|'[^']\+'\|".\+"\)\s\+{$/ end=/^}\zs$/ contained contains=i3ConfigShParam,@i3ConfigStrVar,i3ConfigBindKeyword,i3ConfigComment,i3ConfigParen fold keepend extend " 4.7 Floating modifier -syn match i3ConfigKeyword /^floating_modifier [$0-9A-Za-z]*$/ contains=i3ConfigVariable,i3ConfigBindModkey +syn match i3ConfigKeyword /floating_modifier [$A-Z][0-9A-Za-z]*$/ contained contains=i3ConfigVariable,i3ConfigBindModkey " 4.8 Floating window size syn keyword i3ConfigSizeSpecial x contained diff --git a/runtime/syntax/swayconfig.vim b/runtime/syntax/swayconfig.vim index 401412adfd..d09d476a5a 100644 --- a/runtime/syntax/swayconfig.vim +++ b/runtime/syntax/swayconfig.vim @@ -2,8 +2,8 @@ " Language: sway config file " Original Author: Josef Litos (JosefLitos/i3config.vim) " Maintainer: James Eapen -" Version: 1.2.3 -" Last Change: 2024-05-23 +" Version: 1.2.4 +" Last Change: 2024-05-24 " References: " http://i3wm.org/docs/userguide.html#configuring @@ -34,12 +34,12 @@ syn region i3ConfigBindArgument start=/--input-device=['"]/ end=/\s/ contained c syn region i3ConfigBindCombo matchgroup=i3ConfigParen start=/{$/ end=/^\s*}$/ contained contains=i3ConfigBindArgument,i3ConfigBindCombo,i3ConfigComment fold keepend extend " hack for blocks with start outside parsing range -syn region swayConfigBlockOrphan start=/^\s\+\(--[a-z-]\+ \)*\([A-Z$][$a-zA-Z0-9_+]\+\|[a-z]\) [a-z[]/ skip=/\\$\|$\n^\s*}$/ end=/$/ contains=i3ConfigBindArgument,i3ConfigBindCombo,i3ConfigParen keepend extend +syn region swayConfigBlockOrphan start=/^\s\+\(--[a-z-]\+ \)*\([$A-Z][$0-9A-Za-z_+]\+\|[a-z]\) [a-z[]/ skip=/\\$\|$\n^\s*}$/ end=/$/ contains=i3ConfigBindArgument,i3ConfigBindCombo,i3ConfigParen keepend extend syn region i3ConfigExec start=/ {$/ end=/^\s*}$/ contained contains=i3ConfigExecAction,@i3ConfigSh,i3ConfigComment fold keepend extend syn keyword swayConfigFloatingModifierOpts normal inverse none contained -syn match i3ConfigKeyword /floating_modifier \(none\|[$a-zA-Z0-9+]\+ \(normal\|inverse\)\)$/ contained contains=i3ConfigVariable,i3ConfigBindModkey,swayConfigFloatingModifierOpts +syn match i3ConfigKeyword /floating_modifier \(none\|[$A-Z][0-9A-Za-z]\+ \(normal\|inverse\)\)$/ contained contains=i3ConfigVariable,i3ConfigBindModkey,swayConfigFloatingModifierOpts syn match swayConfigI3Param /--i3/ contains=i3ConfigShParam skipwhite nextgroup=i3ConfigEdgeOpts syn keyword i3ConfigKeyword hide_edge_borders contained skipwhite nextgroup=swayConfigI3Param,i3ConfigEdgeOpts @@ -71,7 +71,7 @@ syn keyword i3ConfigBindKeyword bindswitch contained skipwhite nextgroup=swayCon syn region swayConfigBlockOrphan start=/^\s\+\(lid\|tablet\):/ skip=/\\$\|$\n^\s*}$/ end=/$/ contains=swayConfigBindswitchArgument,swayConfigBindswitchType,i3ConfigParen keepend extend " Bindgesture -syn match swayConfigBindgestureArgument /--\(exact\|input-device=[:0-9a-zA-Z_/-]\+\|no-warn\) / contained nextgroup=swayConfigBindgestureArgument,swayConfigBindgestureCombo +syn match swayConfigBindgestureArgument /--\(exact\|input-device=[:0-9A-Za-z_/-]\+\|no-warn\) / contained nextgroup=swayConfigBindgestureArgument,swayConfigBindgestureCombo syn keyword swayConfigBindgestureType hold swipe pinch contained syn keyword swayConfigBindgestureDir up down left right inward outward clockwise counterclockwise contained syn match swayConfigBindgestureCombo /\(hold\(:[1-5]\)\?\|swipe\(:[3-5]\)\?\(:up\|:down\|:left\|:right\)\?\|pinch\(:[2-5]\)\?:\(+\?\(inward\|outward\|clockwise\|counterclockwise\|up\|down\|left\|right\)\)\+\) / contained contains=i3ConfigNumber,swayConfigBindgestureType,i3ConfigColonOperator,swayConfigBindgestureDir,i3ConfigBindModifier nextgroup=swayConfigBindgestureCombo,i3ConfigBind -- cgit From b43244adafa0f4d86409d1101754d5e23782c158 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 24 May 2024 19:09:31 +0200 Subject: vim-patch:5e45715: runtime(typescript): update outdated syntax files fixes: vim/vim#14721 fixes: HerringtonDarkholme/yats.vim#277 closes: vim/vim#14840 https://github.com/vim/vim/commit/5e4571508480c8f51748e49fb05c1891db0cb803 Co-authored-by: rhysd --- runtime/syntax/shared/typescriptcommon.vim | 192 ++++++++++++++++------------- runtime/syntax/typescript.vim | 2 +- runtime/syntax/typescriptreact.vim | 6 +- 3 files changed, 108 insertions(+), 92 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/shared/typescriptcommon.vim b/runtime/syntax/shared/typescriptcommon.vim index d06525115e..3af79a38fb 100644 --- a/runtime/syntax/shared/typescriptcommon.vim +++ b/runtime/syntax/shared/typescriptcommon.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: TypeScript and TypeScriptReact " Maintainer: Herrington Darkholme -" Last Change: 2023 Aug 24 +" Last Change: 2024 May 24 " Based On: Herrington Darkholme's yats.vim " Changes: See https://github.com/HerringtonDarkholme/yats.vim " Credits: See yats.vim on github @@ -49,13 +49,13 @@ syntax match typescriptProp contained /\K\k*!\?/ \ nextgroup=@afterIdentifier \ skipwhite skipempty -syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty +syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/ end=/]/ contains=@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty syntax match typescriptDotNotation /\.\|?\.\|!\./ nextgroup=typescriptProp skipnl syntax match typescriptDotStyleNotation /\.style\./ nextgroup=typescriptDOMStyle transparent " syntax match typescriptFuncCall contained /[a-zA-Z]\k*\ze(/ nextgroup=typescriptFuncCallArg syntax region typescriptParenExp matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptComments,@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols skipwhite skipempty -syntax region typescriptFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptValue,@typescriptComments nextgroup=@typescriptSymbols,typescriptDotNotation skipwhite skipempty skipnl +syntax region typescriptFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptValue,@typescriptComments,typescriptCastKeyword nextgroup=@typescriptSymbols,typescriptDotNotation skipwhite skipempty skipnl syntax region typescriptEventFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptEventExpression syntax region typescriptEventString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ contains=typescriptASCII,@events @@ -116,20 +116,33 @@ syntax match typescriptASCII contained /\\\d\d\d/ syntax region typescriptTemplateSubstitution matchgroup=typescriptTemplateSB \ start=/\${/ end=/}/ - \ contains=@typescriptValue + \ contains=@typescriptValue,typescriptCastKeyword \ contained -syntax region typescriptString +syntax region typescriptString \ start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+ \ contains=typescriptSpecial,@Spell + \ nextgroup=@typescriptSymbols + \ skipwhite skipempty \ extend syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)" -" From vim runtime -" -syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline +" From pangloss/vim-javascript +" +syntax region typescriptRegexpCharClass contained start=+\[+ skip=+\\.+ end=+\]+ contains=typescriptSpecial extend +syntax match typescriptRegexpBoundary contained "\v\c[$^]|\\b" +syntax match typescriptRegexpBackRef contained "\v\\[1-9]\d*" +syntax match typescriptRegexpQuantifier contained "\v[^\\]%([?*+]|\{\d+%(,\d*)?})\??"lc=1 +syntax match typescriptRegexpOr contained "|" +syntax match typescriptRegexpMod contained "\v\(\?[:=!>]"lc=1 +syntax region typescriptRegexpGroup contained start="[^\\]("lc=1 skip="\\.\|\[\(\\.\|[^]]\+\)\]" end=")" contains=typescriptRegexpCharClass,@typescriptRegexpSpecial keepend +syntax region typescriptRegexpString + \ start=+\%(\%(\" syntax match shellbang "^#!.*iojs\>" @@ -536,7 +561,7 @@ syntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets \ contained skipwhite skipnl syntax region typescriptFuncType matchgroup=typescriptParens - \ start=/(/ end=/)\s*=>/me=e-2 + \ start=/(\(\k\+:\|)\)\@=/ end=/)\s*=>/me=e-2 \ contains=@typescriptParameterList \ nextgroup=typescriptFuncTypeArrow \ contained skipwhite skipnl oneline @@ -546,7 +571,6 @@ syntax match typescriptFuncTypeArrow /=>/ \ containedin=typescriptFuncType \ contained skipwhite skipnl - syntax keyword typescriptConstructorType new \ nextgroup=@typescriptFunctionType \ contained skipwhite skipnl @@ -623,25 +647,24 @@ syntax keyword typescriptReadonlyArrayKeyword readonly " extension -if get(g:, 'yats_host_keyword', 1) - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function Boolean - " use of nextgroup Suggested by Doug Kearns +if get(g:, 'typescript_host_keyword', 1) + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function Boolean nextgroup=typescriptFuncCallArg syntax keyword typescriptGlobal containedin=typescriptIdentifierName Error EvalError nextgroup=typescriptFuncCallArg - syntax keyword typescriptGlobal containedin=typescriptIdentifierName InternalError - syntax keyword typescriptGlobal containedin=typescriptIdentifierName RangeError ReferenceError - syntax keyword typescriptGlobal containedin=typescriptIdentifierName StopIteration - syntax keyword typescriptGlobal containedin=typescriptIdentifierName SyntaxError TypeError - syntax keyword typescriptGlobal containedin=typescriptIdentifierName URIError Date - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float32Array - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float64Array - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int16Array Int32Array - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int8Array Uint16Array - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint32Array Uint8Array - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint8ClampedArray - syntax keyword typescriptGlobal containedin=typescriptIdentifierName ParallelArray - syntax keyword typescriptGlobal containedin=typescriptIdentifierName ArrayBuffer DataView - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Iterator Generator - syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect Proxy + syntax keyword typescriptGlobal containedin=typescriptIdentifierName InternalError nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName RangeError ReferenceError nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName StopIteration nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName SyntaxError TypeError nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName URIError Date nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float32Array nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float64Array nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int16Array Int32Array nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int8Array Uint16Array nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint32Array Uint8Array nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint8ClampedArray nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName ParallelArray nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName ArrayBuffer DataView nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Iterator Generator nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect Proxy nextgroup=typescriptFuncCallArg syntax keyword typescriptGlobal containedin=typescriptIdentifierName arguments hi def link typescriptGlobal Structure syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName eval uneval nextgroup=typescriptFuncCallArg @@ -675,12 +698,12 @@ if get(g:, 'yats_host_keyword', 1) hi def link typescriptStringStaticMethod Keyword syntax keyword typescriptStringMethod contained anchor charAt charCodeAt codePointAt nextgroup=typescriptFuncCallArg syntax keyword typescriptStringMethod contained concat endsWith includes indexOf lastIndexOf nextgroup=typescriptFuncCallArg - syntax keyword typescriptStringMethod contained link localeCompare match normalize nextgroup=typescriptFuncCallArg - syntax keyword typescriptStringMethod contained padStart padEnd repeat replace search nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained link localeCompare match matchAll normalize nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained padStart padEnd repeat replace replaceAll search nextgroup=typescriptFuncCallArg syntax keyword typescriptStringMethod contained slice split startsWith substr substring nextgroup=typescriptFuncCallArg syntax keyword typescriptStringMethod contained toLocaleLowerCase toLocaleUpperCase nextgroup=typescriptFuncCallArg syntax keyword typescriptStringMethod contained toLowerCase toString toUpperCase trim nextgroup=typescriptFuncCallArg - syntax keyword typescriptStringMethod contained valueOf nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained trimEnd trimStart valueOf nextgroup=typescriptFuncCallArg syntax cluster props add=typescriptStringMethod hi def link typescriptStringMethod Keyword @@ -689,18 +712,18 @@ if get(g:, 'yats_host_keyword', 1) syntax keyword typescriptArrayStaticMethod contained from isArray of nextgroup=typescriptFuncCallArg hi def link typescriptArrayStaticMethod Keyword syntax keyword typescriptArrayMethod contained concat copyWithin entries every fill nextgroup=typescriptFuncCallArg - syntax keyword typescriptArrayMethod contained filter find findIndex forEach indexOf nextgroup=typescriptFuncCallArg - syntax keyword typescriptArrayMethod contained includes join keys lastIndexOf map nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained filter find findIndex flat flatMap forEach nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained includes indexOf join keys lastIndexOf map nextgroup=typescriptFuncCallArg syntax keyword typescriptArrayMethod contained pop push reduce reduceRight reverse nextgroup=typescriptFuncCallArg syntax keyword typescriptArrayMethod contained shift slice some sort splice toLocaleString nextgroup=typescriptFuncCallArg - syntax keyword typescriptArrayMethod contained toSource toString unshift nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained toSource toString unshift values nextgroup=typescriptFuncCallArg syntax cluster props add=typescriptArrayMethod hi def link typescriptArrayMethod Keyword syntax keyword typescriptGlobal containedin=typescriptIdentifierName Object nextgroup=typescriptGlobalObjectDot,typescriptFuncCallArg syntax match typescriptGlobalObjectDot /\./ contained nextgroup=typescriptObjectStaticMethod,typescriptProp syntax keyword typescriptObjectStaticMethod contained create defineProperties defineProperty nextgroup=typescriptFuncCallArg - syntax keyword typescriptObjectStaticMethod contained entries freeze getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained entries freeze fromEntries getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg syntax keyword typescriptObjectStaticMethod contained getOwnPropertyDescriptor getOwnPropertyNames nextgroup=typescriptFuncCallArg syntax keyword typescriptObjectStaticMethod contained getOwnPropertySymbols getPrototypeOf nextgroup=typescriptFuncCallArg syntax keyword typescriptObjectStaticMethod contained is isExtensible isFrozen isSealed nextgroup=typescriptFuncCallArg @@ -715,7 +738,7 @@ if get(g:, 'yats_host_keyword', 1) syntax keyword typescriptGlobal containedin=typescriptIdentifierName Symbol nextgroup=typescriptGlobalSymbolDot,typescriptFuncCallArg syntax match typescriptGlobalSymbolDot /\./ contained nextgroup=typescriptSymbolStaticProp,typescriptSymbolStaticMethod,typescriptProp - syntax keyword typescriptSymbolStaticProp contained length iterator match replace + syntax keyword typescriptSymbolStaticProp contained description length iterator match matchAll replace syntax keyword typescriptSymbolStaticProp contained search split hasInstance isConcatSpreadable syntax keyword typescriptSymbolStaticProp contained unscopables species toPrimitive syntax keyword typescriptSymbolStaticProp contained toStringTag @@ -771,7 +794,7 @@ if get(g:, 'yats_host_keyword', 1) syntax match typescriptGlobalRegExpDot /\./ contained nextgroup=typescriptRegExpStaticProp,typescriptProp syntax keyword typescriptRegExpStaticProp contained lastIndex hi def link typescriptRegExpStaticProp Keyword - syntax keyword typescriptRegExpProp contained global ignoreCase multiline source sticky + syntax keyword typescriptRegExpProp contained dotAll global ignoreCase multiline source sticky syntax cluster props add=typescriptRegExpProp hi def link typescriptRegExpProp Keyword syntax keyword typescriptRegExpMethod contained exec test nextgroup=typescriptFuncCallArg @@ -805,7 +828,7 @@ if get(g:, 'yats_host_keyword', 1) syntax keyword typescriptGlobal containedin=typescriptIdentifierName Promise nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg syntax match typescriptGlobalPromiseDot /\./ contained nextgroup=typescriptPromiseStaticMethod,typescriptProp - syntax keyword typescriptPromiseStaticMethod contained resolve reject all race nextgroup=typescriptFuncCallArg + syntax keyword typescriptPromiseStaticMethod contained all allSettled any race reject resolve nextgroup=typescriptFuncCallArg hi def link typescriptPromiseStaticMethod Keyword syntax keyword typescriptPromiseMethod contained then catch finally nextgroup=typescriptFuncCallArg syntax cluster props add=typescriptPromiseMethod @@ -1232,7 +1255,8 @@ if get(g:, 'yats_host_keyword', 1) syntax cluster props add=typescriptBOMHistoryMethod hi def link typescriptBOMHistoryMethod Keyword - syntax keyword typescriptGlobal containedin=typescriptIdentifierName console + syntax keyword typescriptGlobal containedin=typescriptIdentifierName console nextgroup=typescriptGlobalConsoleDot + syntax match typescriptGlobalConsoleDot /\./ contained nextgroup=typescriptConsoleMethod,typescriptProp syntax keyword typescriptConsoleMethod contained count dir error group groupCollapsed nextgroup=typescriptFuncCallArg syntax keyword typescriptConsoleMethod contained groupEnd info log time timeEnd trace nextgroup=typescriptFuncCallArg syntax keyword typescriptConsoleMethod contained warn nextgroup=typescriptFuncCallArg @@ -1735,8 +1759,6 @@ if get(g:, 'yats_host_keyword', 1) syntax keyword typescriptServiceWorkerEvent contained install activate fetch syntax cluster events add=typescriptServiceWorkerEvent hi def link typescriptServiceWorkerEvent Title - - endif " patch @@ -1764,6 +1786,7 @@ syntax cluster typescriptPropertyMemberDeclaration contains= \ typescriptClassStatic, \ typescriptAccessibilityModifier, \ typescriptReadonlyModifier, + \ typescriptAutoAccessor, \ typescriptMethodAccessor, \ @typescriptMembers " \ typescriptMemberVariableDeclaration @@ -1780,7 +1803,9 @@ syntax keyword typescriptClassStatic static syntax keyword typescriptAccessibilityModifier public private protected contained -syntax keyword typescriptReadonlyModifier readonly contained +syntax keyword typescriptReadonlyModifier readonly override contained + +syntax keyword typescriptAutoAccessor accessor contained syntax region typescriptStringMember contained \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1/ @@ -1789,7 +1814,7 @@ syntax region typescriptStringMember contained syntax region typescriptComputedMember contained matchgroup=typescriptProperty \ start=/\[/rs=s+1 end=/]/ - \ contains=@typescriptValue,typescriptMember,typescriptMappedIn + \ contains=@typescriptValue,typescriptMember,typescriptMappedIn,typescriptCastKeyword \ nextgroup=@memberNextGroup \ skipwhite skipempty @@ -1861,7 +1886,7 @@ syntax match typescriptInterfaceComma /,/ contained nextgroup=typescriptInterfac "Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement syntax cluster typescriptStatement - \ contains=typescriptBlock,typescriptVariable, + \ contains=typescriptBlock,typescriptVariable,typescriptUsing, \ @typescriptTopExpression,typescriptAssign, \ typescriptConditional,typescriptRepeat,typescriptBranch, \ typescriptLabel,typescriptStatementKeyword, @@ -1899,16 +1924,14 @@ syntax cluster typescriptValue syntax cluster typescriptEventExpression contains=typescriptArrowFuncDef,typescriptParenExp,@typescriptValue,typescriptRegexpString,@typescriptEventTypes,typescriptOperator,typescriptGlobal,jsxRegion syntax keyword typescriptAsyncFuncKeyword async - \ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef + \ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef,typescriptArrowFuncTypeParameter \ skipwhite syntax keyword typescriptAsyncFuncKeyword await - \ nextgroup=@typescriptValue + \ nextgroup=@typescriptValue,typescriptUsing \ skipwhite -syntax keyword typescriptFuncKeyword function - \ nextgroup=typescriptAsyncFunc,typescriptFuncName,@typescriptCallSignature - \ skipwhite skipempty +syntax keyword typescriptFuncKeyword function nextgroup=typescriptAsyncFunc,typescriptFuncName,@typescriptCallSignature skipwhite skipempty syntax match typescriptAsyncFunc contained /*/ \ nextgroup=typescriptFuncName,@typescriptCallSignature @@ -1918,39 +1941,33 @@ syntax match typescriptFuncName contained /\K\k*/ \ nextgroup=@typescriptCallSignature \ skipwhite -" destructuring ({ a: ee }) => -syntax match typescriptArrowFuncDef contained /(\(\s*\({\_[^}]*}\|\k\+\)\(:\_[^)]\)\?,\?\)\+)\s*=>/ - \ contains=typescriptArrowFuncArg,typescriptArrowFunc - \ nextgroup=@typescriptExpression,typescriptBlock - \ skipwhite skipempty - -" matches `(a) =>` or `([a]) =>` or -" `( -" a) =>` -syntax match typescriptArrowFuncDef contained /(\(\_s*[a-zA-Z\$_\[.]\_[^)]*\)*)\s*=>/ +syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/ \ contains=typescriptArrowFuncArg,typescriptArrowFunc \ nextgroup=@typescriptExpression,typescriptBlock \ skipwhite skipempty -syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/ - \ contains=typescriptArrowFuncArg,typescriptArrowFunc +syntax match typescriptArrowFuncDef contained /(\%(\_[^()]\+\|(\_[^()]*)\)*)\_s*=>/ + \ contains=typescriptArrowFuncArg,typescriptArrowFunc,@typescriptCallSignature \ nextgroup=@typescriptExpression,typescriptBlock \ skipwhite skipempty -" TODO: optimize this pattern -syntax region typescriptArrowFuncDef contained start=/(\_[^(^)]*):/ end=/=>/ - \ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation +syntax region typescriptArrowFuncDef contained start=/(\%(\_[^()]\+\|(\_[^()]*)\)*):/ matchgroup=typescriptArrowFunc end=/=>/ + \ contains=typescriptArrowFuncArg,typescriptTypeAnnotation,@typescriptCallSignature \ nextgroup=@typescriptExpression,typescriptBlock \ skipwhite skipempty keepend +syntax region typescriptArrowFuncTypeParameter start=// + \ contains=@typescriptTypeParameterCluster + \ nextgroup=typescriptArrowFuncDef + \ contained skipwhite skipnl + syntax match typescriptArrowFunc /=>/ syntax match typescriptArrowFuncArg contained /\K\k*/ -syntax region typescriptArrowFuncArg contained start=/<\|(/ end=/\ze=>/ contains=@typescriptCallSignature syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock -syntax region typescriptFuncImpl contained start=/function\>/ end=/{/me=e-1 +syntax region typescriptFuncImpl contained start=/function\>/ end=/{\|;\|\n/me=e-1 \ contains=typescriptFuncKeyword \ nextgroup=typescriptBlock @@ -1970,7 +1987,7 @@ syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a \ nextgroup=typescriptFuncCallArg,typescriptTypeArguments \ contains=@_semantic,typescriptDotNotation -" Define the default highlighting. + hi def link typescriptReserved Error hi def link typescriptEndColons Exception @@ -2013,6 +2030,7 @@ hi def link typescriptDefault typescriptCase hi def link typescriptBranch Conditional hi def link typescriptIdentifier Structure hi def link typescriptVariable Identifier +hi def link typescriptUsing Identifier hi def link typescriptDestructureVariable PreProc hi def link typescriptEnumKeyword Identifier hi def link typescriptRepeat Repeat @@ -2050,16 +2068,13 @@ hi def link typescriptFuncKeyword Keyword hi def link typescriptAsyncFunc Keyword hi def link typescriptArrowFunc Type hi def link typescriptFuncName Function -hi def link typescriptFuncArg PreProc +hi def link typescriptFuncCallArg PreProc hi def link typescriptArrowFuncArg PreProc hi def link typescriptFuncComma Operator hi def link typescriptClassKeyword Keyword hi def link typescriptClassExtends Keyword -" hi def link typescriptClassName Function hi def link typescriptAbstract Special -" hi def link typescriptClassHeritage Function -" hi def link typescriptInterfaceHeritage Function hi def link typescriptClassStatic StorageClass hi def link typescriptReadonlyModifier Keyword hi def link typescriptInterfaceKeyword Keyword @@ -2077,6 +2092,7 @@ hi def link typescriptFuncTypeArrow Function hi def link typescriptConstructorType Function hi def link typescriptTypeQuery Keyword hi def link typescriptAccessibilityModifier Keyword +hi def link typescriptAutoAccessor Keyword hi def link typescriptOptionalMark PreProc hi def link typescriptFuncType Special hi def link typescriptMappedIn Special diff --git a/runtime/syntax/typescript.vim b/runtime/syntax/typescript.vim index 5389c21497..03520fd56a 100644 --- a/runtime/syntax/typescript.vim +++ b/runtime/syntax/typescript.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: TypeScript " Maintainer: Herrington Darkholme -" Last Change: 2023 Aug 13 +" Last Change: 2024 May 24 " Based On: Herrington Darkholme's yats.vim " Changes: Go to https://github.com/HerringtonDarkholme/yats.vim for recent changes. " Origin: https://github.com/othree/yajs diff --git a/runtime/syntax/typescriptreact.vim b/runtime/syntax/typescriptreact.vim index 1c510459f5..9dc9a2b797 100644 --- a/runtime/syntax/typescriptreact.vim +++ b/runtime/syntax/typescriptreact.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: TypeScript with React (JSX) " Maintainer: The Vim Project -" Last Change: 2023 Aug 13 +" Last Change: 2024 May 24 " Based On: Herrington Darkholme's yats.vim " Changes: See https://github.com/HerringtonDarkholme/yats.vim " Credits: See yats.vim on github @@ -118,13 +118,13 @@ syntax match tsxEqual +=+ display contained " " s~~~~~~e -syntax region tsxString contained start=+"+ end=+"+ contains=tsxEntity,@Spell display +syntax region tsxString contained start=+["']+ end=+["']+ contains=tsxEntity,@Spell display " " s~~~~~~~~~~~~~~e syntax region tsxEscJs \ contained - \ contains=@typescriptValue,@tsxComment + \ contains=@typescriptValue,@tsxComment,typescriptObjectSpread \ matchgroup=typescriptBraces \ start=+{+ \ end=+}+ -- cgit From eaaf3d9048f37b2bf5914d34f7348a1ba6ebe250 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 25 May 2024 23:21:30 +0200 Subject: vim-patch:0076ddc: runtime(debian): update Debian runtime files (vim/vim#14849) * Add space in template for 'commentstring' * Add 'comments' and 'commentstring' support to debcontrol * debversions: Move Ubuntu releases outside of standard support to unsupported Although trust, xenial, and bionic are not EOL yet, their standard support period has ended. Reported-by: Riley Bruins https://github.com/vim/vim/commit/0076ddc07dc1d97afcf3252fd361885abbaf23d5 Co-authored-by: James McCoy Co-authored-by: Riley Bruins --- runtime/syntax/shared/debversions.vim | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/shared/debversions.vim b/runtime/syntax/shared/debversions.vim index e18eca96b1..56f18b969a 100644 --- a/runtime/syntax/shared/debversions.vim +++ b/runtime/syntax/shared/debversions.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Debian version information " Maintainer: Debian Vim Maintainers -" Last Change: 2024 Apr 27 +" Last Change: 2024 May 25 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/shared/debversions.vim let s:cpo = &cpo @@ -11,7 +11,7 @@ let g:debSharedSupportedVersions = [ \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy', \ 'bullseye', 'bookworm', 'trixie', 'forky', \ - \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'mantic', 'noble', 'oracular', + \ 'focal', 'jammy', 'mantic', 'noble', 'oracular', \ 'devel' \ ] let g:debSharedUnsupportedVersions = [ @@ -22,8 +22,9 @@ let g:debSharedUnsupportedVersions = [ \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty', \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid', \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy', - \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic', - \ 'disco', 'eoan', 'hirsute', 'impish', 'kinetic', 'lunar', 'groovy' + \ 'trusty', 'utopic', 'vivid', 'wily', 'xenial', 'yakkety', 'zesty', + \ 'artful', 'bionic', 'cosmic', 'disco', 'eoan', 'hirsute', + \ 'impish', 'kinetic', 'lunar', 'groovy' \ ] let &cpo=s:cpo -- cgit From 3d39ea3ea9b6e66640e59731d155d731218e7e62 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 26 May 2024 07:11:50 +0800 Subject: vim-patch:9.1.0442: hare runtime files outdated (#29011) Problem: hare runtime files outdated Solution: runtime(hare): update hare.vim to match upstream (Amelia Clarke) closes: vim/vim#14836 https://github.com/vim/vim/commit/35dfe58a540e2fb0eff953630f8e4fcbf4bc26ca Co-authored-by: Amelia Clarke --- runtime/syntax/hare.vim | 188 +++++++++++++++++++++++++-------------------- runtime/syntax/haredoc.vim | 32 ++++++++ 2 files changed, 138 insertions(+), 82 deletions(-) create mode 100644 runtime/syntax/haredoc.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/hare.vim b/runtime/syntax/hare.vim index 07cf33fb11..4c7ae92486 100644 --- a/runtime/syntax/hare.vim +++ b/runtime/syntax/hare.vim @@ -1,119 +1,142 @@ -" PRELUDE {{{1 -" Vim syntax file -" Language: Hare -" Maintainer: Amelia Clarke -" Last Change: 2022-09-21 +" Vim syntax file. +" Language: Hare +" Maintainer: Amelia Clarke +" Last Change: 2024-05-10 +" Upstream: https://git.sr.ht/~sircmpwn/hare.vim -if exists("b:current_syntax") +if exists('b:current_syntax') finish endif -let b:current_syntax = "hare" +syn include @haredoc syntax/haredoc.vim +let b:current_syntax = 'hare' -" SYNTAX {{{1 +" Syntax {{{1 syn case match +syn iskeyword @,48-57,@-@,_ -" KEYWORDS {{{2 -syn keyword hareConditional if else match switch +" Keywords {{{2 +syn keyword hareConditional else if match switch +syn keyword hareDefine def +syn keyword hareInclude use syn keyword hareKeyword break continue return yield +syn keyword hareKeyword case +syn keyword hareKeyword const let syn keyword hareKeyword defer +syn keyword hareKeyword export static syn keyword hareKeyword fn -syn keyword hareKeyword let -syn keyword hareLabel case syn keyword hareOperator as is syn keyword hareRepeat for -syn keyword hareStorageClass const def export nullable static -syn keyword hareStructure enum struct union syn keyword hareTypedef type -" C ABI. -syn keyword hareKeyword vastart vaarg vaend - -" BUILTINS {{{2 -syn keyword hareBuiltin abort +" Attributes. +syn keyword hareAttribute @fini @init @test +syn keyword hareAttribute @offset @packed +syn keyword hareAttribute @symbol +syn keyword hareAttribute @threadlocal + +" Builtins. +syn keyword hareBuiltin abort assert +syn keyword hareBuiltin align len offset syn keyword hareBuiltin alloc free syn keyword hareBuiltin append delete insert -syn keyword hareBuiltin assert -syn keyword hareBuiltin len offset +syn keyword hareBuiltin vaarg vaend vastart -" TYPES {{{2 +" Types {{{2 syn keyword hareType bool -syn keyword hareType char str +syn keyword hareType done syn keyword hareType f32 f64 -syn keyword hareType u8 u16 u32 u64 i8 i16 i32 i64 -syn keyword hareType uint int -syn keyword hareType rune +syn keyword hareType i8 i16 i32 i64 int +syn keyword hareType never +syn keyword hareType opaque +syn keyword hareType rune str +syn keyword hareType u8 u16 u32 u64 uint syn keyword hareType uintptr +syn keyword hareType valist syn keyword hareType void -" C ABI. -syn keyword hareType valist +" Other types. +syn keyword hareStorageClass nullable +syn keyword hareStructure enum struct union -" LITERALS {{{2 -syn keyword hareBoolean true false -syn keyword hareNull null - -" Number literals. -syn match hareNumber "\v(\.@1" display -syn match hareNumber "\v(\.@1" display -syn match hareNumber "\v(\.@1" display -syn match hareNumber "\v(\.@1" display - -" Floating-point number literals. -syn match hareFloat "\v<\d+\.\d+([Ee][+-]?\d+)?(f32|f64)?>" display -syn match hareFloat "\v<\d+([Ee][+-]?\d+)?(f32|f64)>" display - -" String and rune literals. -syn match hareEscape "\\[\\'"0abfnrtv]" contained display -syn match hareEscape "\v\\(x\x{2}|u\x{4}|U\x{8})" contained display -syn match hareFormat "\v\{\d*(\%\d*|(:[ 0+-]?\d*(\.\d+)?[Xbox]?))?}" contained display -syn match hareFormat "\({{\|}}\)" contained display -syn region hareRune start="'" end="'\|$" skip="\\'" contains=hareEscape display extend -syn region hareString start=+"+ end=+"\|$+ skip=+\\"+ contains=hareEscape,hareFormat display extend -syn region hareString start="`" end="`\|$" contains=hareFormat display - -" MISCELLANEOUS {{{2 -syn keyword hareTodo FIXME TODO XXX contained +" Literals {{{2 +syn keyword hareBoolean false true +syn keyword hareConstant null -" Attributes. -syn match hareAttribute "@[a-z]*" +" Integer literals. +syn match hareNumber '\v<%(0|[1-9]%(_?\d)*)%([Ee]\+?\d+)?%([iu]%(8|16|32|64)?|z)?>' display +syn match hareNumber '\v<0b[01]%(_?[01])*%([iu]%(8|16|32|64)?|z)?>' display +syn match hareNumber '\v<0o\o%(_?\o)*%([iu]%(8|16|32|64)?|z)?>' display +syn match hareNumber '\v<0x\x%(_?\x)*%([iu]%(8|16|32|64)?|z)?>' display -" Blocks. -syn region hareBlock start="{" end="}" fold transparent +" Floating-point literals. +syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)\.\d%(_?\d)*%([Ee][+-]?\d+)?%(f32|f64)?>' display +syn match hareFloat '\v<%(0|[1-9]%(_?\d)*)%([Ee][+-]?\d+)?%(f32|f64)>' display +syn match hareFloat '\v<0x\x%(_?\x)*%(\.\x%(_?\x)*)?[Pp][+-]?\d+%(f32|f64)?>' display + +" Rune and string literals. +syn region hareRune start="'" skip="\\'" end="'" contains=hareEscape +syn region hareString start='"' skip='\\"' end='"' contains=hareEscape,hareFormat +syn region hareString start='`' end='`' contains=hareFormat + +" Escape sequences. +syn match hareEscape '\\[0abfnrtv\\'"]' contained +syn match hareEscape '\v\\%(x\x{2}|u\x{4}|U\x{8})' contained display + +" Format sequences. +syn match hareFormat '\v\{\d*%(:%(\.?\d+|[ +\-=Xbefgox]|F[.2ESUs]|_%(.|\\%([0abfnrtv\\'"]|x\x{2}|u\x{4}|U\x{8})))*)?}' contained contains=hareEscape display +syn match hareFormat '{\d*%\d*}' contained display +syn match hareFormat '{{\|}}' contained display + +" Miscellaneous {{{2 " Comments. -syn region hareComment start="//" end="$" contains=hareCommentDoc,hareTodo,@Spell display keepend -syn region hareCommentDoc start="\[\[" end="]]\|\ze\_s" contained display +syn region hareComment start='//' end='$' contains=hareTodo,@haredoc,@Spell display +syn keyword hareTodo FIXME TODO XXX contained + +" Identifiers. +syn match hareDelimiter '::' display +syn match hareName '\<\h\w*\>' nextgroup=@harePostfix skipempty skipwhite transparent -" The size keyword can be either a builtin or a type. -syn match hareBuiltin "\v\ze(\_s*//.*\_$)*\_s*\(" contains=hareComment -syn match hareType "\v((\_s*//.*\_$)*\_s*\()@!" contains=hareComment +" Labels. +syn match hareLabel ':\h\w*\>' display -" Trailing whitespace. -syn match hareSpaceError "\v\s+$" display excludenl -syn match hareSpaceError "\v\zs +\ze\t" display +" Match `size` as a type unless it is followed by an open paren. +syn match hareType '\' display +syn match hareBuiltin '\'hs=s+1 contained contains=hareNumber nextgroup=@harePostfix skipempty skipwhite +syn region hareIndex start='\[' end=']' contained nextgroup=@harePostfix skipempty skipwhite transparent +syn region hareParens start='(' end=')' nextgroup=@harePostfix skipempty skipwhite transparent -syn match hareErrorAssertion "\v(^([^/]|//@!)*\)\_s*)@<=!\=@!" -syn match hareQuestionMark "?" +" Whitespace errors. +syn match hareSpaceError '^ \+\ze\t' display +syn match hareSpaceError excludenl '\s\+$' containedin=ALL display -" DEFAULT HIGHLIGHTING {{{1 -hi def link hareAttribute Keyword +" Folding {{{3 +syn region hareBlock start='{' end='}' fold transparent + +" Default highlighting {{{1 +hi def link hareAttribute PreProc hi def link hareBoolean Boolean -hi def link hareBuiltin Function +hi def link hareBuiltin Operator hi def link hareComment Comment -hi def link hareCommentDoc SpecialComment hi def link hareConditional Conditional +hi def link hareConstant Constant +hi def link hareDefine Define +hi def link hareDelimiter Delimiter +hi def link hareErrorTest Special hi def link hareEscape SpecialChar hi def link hareFloat Float hi def link hareFormat SpecialChar +hi def link hareInclude Include hi def link hareKeyword Keyword -hi def link hareLabel Label -hi def link hareNull Constant +hi def link hareLabel Special hi def link hareNumber Number hi def link hareOperator Operator -hi def link hareQuestionMark Special hi def link hareRepeat Repeat hi def link hareRune Character hi def link hareStorageClass StorageClass @@ -122,12 +145,13 @@ hi def link hareStructure Structure hi def link hareTodo Todo hi def link hareType Type hi def link hareTypedef Typedef -hi def link hareUse PreProc -hi def link hareSpaceError Error -autocmd InsertEnter * hi link hareSpaceError NONE -autocmd InsertLeave * hi link hareSpaceError Error +" Highlight embedded haredoc references. +hi! def link haredocRefValid SpecialComment -hi def hareErrorAssertion ctermfg=red cterm=bold guifg=red gui=bold +" Highlight whitespace errors by default. +if get(g:, 'hare_space_error', 1) + hi def link hareSpaceError Error +endif -" vim: tabstop=8 shiftwidth=2 expandtab +" vim: et sts=2 sw=2 ts=8 diff --git a/runtime/syntax/haredoc.vim b/runtime/syntax/haredoc.vim new file mode 100644 index 0000000000..09c99c1d56 --- /dev/null +++ b/runtime/syntax/haredoc.vim @@ -0,0 +1,32 @@ +" Vim syntax file. +" Language: Haredoc (Hare documentation format) +" Maintainer: Amelia Clarke +" Last Change: 2024-05-10 +" Upstream: https://git.sr.ht/~selene/hare.vim + +if exists('b:current_syntax') + finish +endif +let b:current_syntax = 'haredoc' + +" Syntax {{{1 +syn case match +syn iskeyword @,48-57,_ + +" Code samples. +syn region haredocCodeSample excludenl start='\t\zs' end='$' contains=@NoSpell display + +" References to other declarations and modules. +syn region haredocRef start='\[\[' end=']]' contains=haredocRefValid,@NoSpell display keepend oneline +syn match haredocRefValid '\v\[\[\h\w*%(::\h\w*)*%(::)?]]' contained contains=@NoSpell display + +" Miscellaneous. +syn keyword haredocTodo FIXME TODO XXX + +" Default highlighting {{{1 +hi def link haredocCodeSample Comment +hi def link haredocRef Error +hi def link haredocRefValid Special +hi def link haredocTodo Todo + +" vim: et sts=2 sw=2 ts=8 -- cgit From ffbd09ef6acfbfac897be19d5ae847af6e6bd03d Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 26 May 2024 20:08:13 +0200 Subject: vim-patch:8607192: runtime(typescriptreact): fix highlighting nested and escaped quotes in string props (vim/vim#14852) https://github.com/vim/vim/commit/86071925ede1030d86e764054e36ef8ab56fc666 Co-authored-by: Linda_pp --- runtime/syntax/typescriptreact.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/typescriptreact.vim b/runtime/syntax/typescriptreact.vim index 9dc9a2b797..061ec4d81e 100644 --- a/runtime/syntax/typescriptreact.vim +++ b/runtime/syntax/typescriptreact.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: TypeScript with React (JSX) " Maintainer: The Vim Project -" Last Change: 2024 May 24 +" Last Change: 2024 May 26 " Based On: Herrington Darkholme's yats.vim " Changes: See https://github.com/HerringtonDarkholme/yats.vim " Credits: See yats.vim on github @@ -118,7 +118,8 @@ syntax match tsxEqual +=+ display contained " " s~~~~~~e -syntax region tsxString contained start=+["']+ end=+["']+ contains=tsxEntity,@Spell display +syntax region tsxString contained start=+"+ skip=+\\"+ end=+"+ contains=tsxEntity,@Spell display +syntax region tsxString contained start=+'+ skip=+\\'+ end=+'+ contains=tsxEntity,@Spell display " " s~~~~~~~~~~~~~~e -- cgit From 8893b7b340e012b714cc42f0562f37405be32d51 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 27 May 2024 22:38:10 +0800 Subject: vim-patch:393708c: runtime(vim): re-generate vim syntax from generator (#29041) related: vim/vim#14861 https://github.com/vim/vim/commit/393708cff6f92ee34b450b054dfdb73a65f5bcf7 Co-authored-by: Christian Brabandt --- runtime/syntax/vim.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 4fc640bab1..22c1e16a30 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -60,7 +60,8 @@ syn case ignore syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo " Default highlighting groups {{{2 -syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit DiffText PmenuSbar TabLineSel TabLineFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuExtra PmenuExtraSel Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn Conceal MatchParen CursorIM LineNrAbove LineNrBelow +syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit DiffText PmenuSbar TabLineSel TabLineFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuExtra PmenuExtraSel Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen CursorIM LineNrAbove LineNrBelow +syn match vimHLGroup contained "\" syn keyword vimOnlyHLGroup contained Menu Scrollbar StatusLineTerm StatusLineTermNC ToolbarButton ToolbarLine Tooltip VisualNOS syn keyword nvimHLGroup contained FloatBorder FloatFooter FloatTitle MsgSeparator NormalFloat NormalNC Substitute TermCursor TermCursorNC VisualNC Whitespace WinBar WinBarNC WinSeparator "}}}2 -- cgit From 4e2c8dc37468fc06897ba26498c8b5dae7dc5a94 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 28 May 2024 14:40:09 +0800 Subject: vim-patch:0b74eec: runtime(stylus): remove remaining css code (vim/vim#14866) This seems to be a forgotten fixup in https://github.com/vim/vim/commit/2d919d2744a99c9bb9e79984e85b8e8f5ec14c07#r141568461 https://github.com/vim/vim/commit/0b74eeceb856e7a4c2823f5b6c2c2ee95a72331c --- runtime/syntax/stylus.vim | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/stylus.vim b/runtime/syntax/stylus.vim index fd0f33b65a..d8bf641e60 100644 --- a/runtime/syntax/stylus.vim +++ b/runtime/syntax/stylus.vim @@ -4,17 +4,7 @@ " Filenames: *.styl, *.stylus " Based On: Tim Pope (sass.vim) " Created: Dec 14, 2011 -" Modified: Apr 29, 2024 - -if main_syntax == "css" - syn sync minlines=10 -endif - -" let b:current_syntax = "css" -" -if main_syntax == 'css' - unlet main_syntax -endif +" Modified: May 28, 2024 syn case ignore -- cgit From 7c48cedf3078648e2a1ab9a4002e8795e8d07f53 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 31 May 2024 11:24:06 +0200 Subject: vim-patch:7129f2a: runtime(java): Improve the matching of lambda expressions (vim/vim#14880) - Distinguish some formal parameters. - Support multi-line definitions. https://github.com/vim/vim/commit/7129f2ad2fd9de3e3812a569ba3ad6bf162fd238 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com> --- runtime/syntax/java.vim | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 9867b147c2..5ba724d24e 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 May 10 +" Last Change: 2024 May 30 " Please check :help java.vim for comments on some of the options available. @@ -348,7 +348,6 @@ if exists("java_highlight_functions") exec 'syn region javaFuncDef start=/' . s:ff.Engine('\%#=2', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<.*[[:space:]-]\@' . s:ff.Peek('1', '') . '\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\)\%(\[\]\)*\)\s\+\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams' endif - exec 'syn match javaLambdaDef "\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '"' syn match javaBraces "[{}]" endif @@ -421,9 +420,26 @@ syn match javaParenError "\]" hi def link javaParenError javaError +" Lambda expressions (JLS-17, §15.27). if exists("java_highlight_functions") " Make ()-matching definitions after the parenthesis error catcher. - exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '?\[\]@,.]\)*)\s*->"' + " + " Match: ([@A [@B ...] final] var a[, var b, ...]) -> + " | ([@A [@B ...] final] T[<α>][[][]] a[, T b, ...]) -> + " There is no recognition of expressions interspersed with comments + " or of expressions whose parameterised parameter types are written + " across multiple lines. + exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%((\_.\{-1,})\)\{-,1}[[:space:]\n]\+\)*\%(final[[:space:]\n]\+\)\=\%(\<\K\k*\>\.\)*\<\K\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\%(\%(\%(\[\]\)\+\|\.\.\.\)\)\=[[:space:]\n]\+\<\K\k*\>\%(\[\]\)*\%(,[[:space:]\n]*\)\=\)\+)[[:space:]\n]*->" contains=javaAnnotation,javaParamModifier,javaLambdaVarType,javaType,@javaClasses,javaVarArg' + " Match: () -> + " | (a[, b, ...]) -> + exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%(,[[:space:]\n]*\)\=\)*)[[:space:]\n]*->"' + " Match: a -> + exec 'syn match javaLambdaDef "\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '"' + + syn keyword javaParamModifier contained final + hi def link javaParamModifier javaConceptKind + syn keyword javaLambdaVarType contained var + hi def link javaLambdaVarType javaOperator endif " The @javaTop cluster comprises non-contained Java syntax groups. -- cgit From 07af492f635c51d44d02d8012611cc5e11a4af19 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 31 May 2024 12:07:31 +0200 Subject: vim-patch:9.1.0453: filetype: rasi files are not recognized Problem: filetype: rasi files are not recognized Solution: regonize '*.rasi' files as rasi filetype, include a filetype and syntax plugin (Pierrick Guillaume) ported from: https://github.com/Fymyte/rasi.vim closes: vim/vim#14821 https://github.com/vim/vim/commit/280e5b13ca568ed592a894140bf1ac74356f4b33 Co-authored-by: Pierrick Guillaume --- runtime/syntax/rasi.vim | 298 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 runtime/syntax/rasi.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/rasi.vim b/runtime/syntax/rasi.vim new file mode 100644 index 0000000000..40c3393fc5 --- /dev/null +++ b/runtime/syntax/rasi.vim @@ -0,0 +1,298 @@ +" Vim syntax file +" Language: rasi (Rofi Advanced Style Information) +" Maintainer: Pierrick Guillaume +" Last Change: 2024 May 21 +" +" Syntax support for rasi config file + +" This file is based on syntax defined in rofi-theme man page +" https://man.archlinux.org/man/community/rofi/rofi-theme.5.en + +if exists('b:current_syntax') + finish +endif +let b:current_syntax = 'rasi' + +" String {{{ +syn region rasiString start=+"+ skip=+\\"+ end=+"+ oneline contained +syn match rasiCharacter +L\='[^\\]'+ contained + +syn cluster rasiPropertyVals add=rasiString,rasiCharacter +" }}} + +" Integer/Real {{{ +syn match rasiNumber display contained '[+-]\?\d\+\(\.\d\+\)\?' + +syn cluster rasiPropertyVals add=rasiNumber +" }}} + +" Boolean {{{ +syn keyword rasiBool contained true false + +syn cluster rasiPropertyVals add=rasiBool +" }}} + +" Image {{{ +syn match rasiInvImage display contained 'url([^)]*)' +syn keyword rasiImageK contained url linear-gradient + +syn match rasiImage display contained transparent 'url(\s*"\([^"]\|\\"\)\+"\(\s*,\s*\(none\|both\|width\|height\)\)\?\s*)' contains=rasiImageScale,rasiString,rasiImageK +syn keyword rasiImageScale contained none both width height + +syn match rasiImage display contained transparent 'linear-gradient(\s*\(\(top\|left\|right\|bottom\)\s*,\s*\)\?[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageDirection,@rasiColors,rasiImageK +syn keyword rasiImageDirection contained top left right bottom + +syn match rasiImage display contained transparent 'linear-gradient(\s*\d\+\(rad\|grad\|deg\)\s*,\s*[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageUnit,@rasiColor,@rasiInvColor,rasiNumber,rasiImageK +syn match rasiImageUnit display contained '\(rad\|grad\|deg\)\>' + +syn cluster rasiPropertyVals add=rasiInvImage,rasiImage +" }}} + +" Reference {{{ +syn match rasiReference display contained '@[a-zA-Z0-9-]\+' + +syn keyword rasiVarReferenceK contained var + +syn match rasiInvVarReference display contained 'var([^)]*)' +syn match rasiVarReference display contained transparent 'var(\s*[a-zA-Z0-9-]\+\s*,\s*\(\a\+\s*([^)]*)\)\?[^),]*)' contains=rasiVarReferenceK,rasiPropertyIdRef,@rasiPropertyVals +syn match rasiPropertyIdRef display contained '\a[a-zA-Z0-9-]*' + +syn cluster rasiPropertyVals add=rasiReference,rasiInvVarReference,rasiVarReference +" }}} + +" Env variable {{{ +syn match rasiInvEnv display contained '${[^}]*}' +syn match rasiEnv display contained '${\w\+}'hs=s+2,he=e-1 + +syn keyword rasiEnvVarK contained env + +syn match rasiInvEnvVar display contained 'env([^)]*)' +syn match rasiEnvVar display contained transparent 'env(\s*\w\+\s*,\s*\(\a\+([^)]*)\)\?[^),]*)' contains=rasiEnvVarK,rasiEnvRef,@rasiPropertyVals +syn match rasiEnvRef display contained '\a\w*' + +syn cluster rasiPropertyVals add=rasiEnv,rasiInvEnv,rasiInvEnvVar,rasiEnvVar +" }}} + +" Color {{{ +syn keyword rasiColorK contained rgb[a] hsl[a] hwb[a] cmyk + +syn match rasiHexColor display contained '#\x\{3,4}' +syn match rasiHexColor display contained '#\x\{6}' +syn match rasiHexColor display contained '#\x\{8}' +syn match rasiInvHexColor display contained '#\x\{5}\X'he=e-1,me=e-1 +syn match rasiInvHexColor display contained '#\x\{7}\X'he=e-1,me=e-1 + +syn match rasiInvRGBColor display contained 'rgb\(a\)\?([^)]*)' +syn match rasiRGBColor display contained transparent 'rgb\(a\)\?(\s*\d\+\s*\(%\)\?\s*,\(\s*\d\+\s*\(%\)\?\s*\){2}\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\?)' contains=rasiColorK,rasiNumber,rasiDistance + +syn match rasiInvHSLColor display contained 'h\(sl\|wb\)\(a\)\?([^)]*)' +syn match rasiHSLColor display contained transparent 'h\(sl\|wb\)\(a\)\?(\s*\d\+\(\.\d*\)\?\(deg\|rad\|grad\|turn\)\?\s*\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\{2,3})' contains=rasiColorK,rasiNumber,rasiDistance + + +"this matches doesn't works properly (too long ?) +syn match rasiInvCMYKColor display contained 'cmyk([^)]*)' +syn match rasiCMYKColor display contained transparent 'cmyk(\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\{3,4})' contains=rasiColorK,rasiNumber,rasiDistance + +syn case ignore +syn keyword rasiNamedColor contained + \ AliceBlue AntiqueWhite Aqua Aquamarine Azure Beige Bisque Black BlanchedAlmond Blue + \ BlueViolet Brown BurlyWood CadetBlue Chartreuse Chocolate Coral CornflowerBlue Cornsilk + \ Crimson Cyan DarkBlue DarkCyan DarkGoldenRod DarkGray DarkGrey DarkGreen DarkKhaki DarkMagenta + \ DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen Dark SlateBlue + \ DarkSlateGray DarkSlateGrey DarkTurquoise DarkViolet DeepPink DeepSkyBlue DimGray DimGrey + \ DodgerBlue FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite Gold GoldenRod + \ Gray Grey Green GreenYellow HoneyDew HotPink IndianRed Indigo Ivory Khaki Lavender + \ LavenderBlush LawnGreen LemonChiffon LightBlue LightCoral LightCyan LightGoldenRodYellow + \ LightGray LightGrey LightGreen LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray + \ LightSlateGrey LightSteelBlue LightYellow Lime LimeGreen Linen Magenta Maroon MediumAquaMarine + \ MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen + \ MediumTurquoise MediumVioletRed MidnightBlue MintCream MistyRose Moccasin NavajoWhite Navy + \ OldLace Olive OliveDrab Orange OrangeRed Orchid PaleGoldenRod PaleGreen PaleTurquoise + \ PaleVioletRed PapayaWhip PeachPuff Peru Pink Plum PowderBlue Purple RebeccaPurple Red + \ RosyBrown RoyalBlue SaddleBrown Salmon SandyBrown SeaGreen SeaShell Sienna Silver SkyBlue + \ SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue Tan Teal Thistle Tomato Turquoise + \ Violet Wheat White WhiteSmoke Yellow YellowGreen transparent[] "uses `[]` to escape keyword + +syn cluster rasiColors add=rasiHexColor,rasiRGBColor,rasiHSLColor,rasiCMYKColor,rasiNamedColor +syn cluster rasiColors add=rasiInvHexColor,rasiInvRGBColor,rasiInvHSLColor,rasiInvCMYKColor + +syn cluster rasiPropertyVals add=@rasiColors +" }}} + +" Text-Style {{{ +syn keyword rasiTextStyle contained bold italic underline strikethrough none + +syn cluster rasiPropertyVals add=rasiTextStyle +" }}} + +" Line-Style {{{ +syn keyword rasiLineStyle contained dash solid + +syn cluster rasiPropertyVals add=rasiLineStyle +" }}} + +" Distance {{{ +syn match rasiDistanceUnit display contained '\(px\|em\|ch\|%\|mm\)' + +syn match rasiInvDistance display contained '[+-]\?\d\+\.\d\+\(px\|mm\)' +syn match rasiDistance display contained transparent '[-+]\?\d\+\(px\|mm\)' contains=rasiDistanceUnit,rasiNumber +syn match rasiDistance display contained transparent '[+-]\?\d\+\(\.\d\+\)\?\(em\|ch\|%\)' contains=rasiDistanceUnit,rasiNumber + +syn keyword rasiDistanceCalc contained calc nextgroup=rasiDistanceCalcBody +syn region rasiDistanceCalcBody display contained start=+(+ end=+)+ contains=rasiDistanceCalcOp,rasiDistance,rasiInvDistance +syn match rasiDistanceCalcOp display contained '\(+\|-\|/\|\*\|%\|min\|max\)' + +syn cluster rasiPropertyVals add=rasiInvDistance,rasiDistance,rasiDistanceCalc +" }}} + +" Position {{{ +syn keyword rasiPosition contained center east north west south + +syn cluster rasiPropertyVals add=rasiPosition +" }}} + +" Orientation {{{ +syn keyword rasiOrientation contained horizontal vertical + +syn cluster rasiPropertyVals add=rasiOrientation +" }}} + +" Cursor {{{ +syn keyword rasiCursor contained default pointer text + +syn cluster rasiPropertyVals add=rasiCursor +" }}} + +" Keyword List {{{ +syn region rasiKeywordList contained start=+\[+ end=+\]+ contains=rasiPropertyIdRef + +syn cluster rasiPropertyVals add=rasiKeywordList +" }}} + +" Inherit {{{ +syn keyword rasiInherit contained inherit children + +syn cluster rasiPropertyVals add=rasiInherit +" }}} + +syn match rasiGlobalImport display '^\s*@\(import\|theme\)' nextgroup=rasiString skipwhite + +" Section {{{ +" syn region rasiSection transparent start='^[^{]\+{'me=e-1 end='}' contains=rasiSectionOpenning,rasiSectionContent +syn match rasiSectionOpenning transparent '^[^{]\+{'me=e-1 contains=rasiGlobalSection,rasiWidgetName,rasiGlobalMedia nextgroup=rasiThemeSectionContent +" syn match rasiThemeInnerSectionOpenning transparent '^[^:${]\+{'me=e-1 contains=rasiWidgetName nextgroup=rasiThemeInnerSectionContent contained + +syn match rasiGlobalMedia display contained '^\s*@media' nextgroup=rasiInvMediaBody,rasiMediaBody skipwhite +syn match rasiInvMediaBody display contained '([^)]*)' +syn match rasiMediaBody display contained '(\s*[a-z-]\+\s*:\s*\d\+\(px\|mm\)\?\s*)' contains=rasiMediaK,rasiNumber,rasiDistance +syn keyword rasiMediaK contained min-width max-width min-height max-height min-aspect-ratio max-aspect-ratio monitor-id + +syn match rasiGlobalSection display contained '^*' +syn match rasiWidgetName display contained '[a-zA-Z0-9-]\+' nextgroup=rasiVisibleMod skipwhite + +syn keyword rasiVisibleMod contained normal selected alternate nextgroup=rasiVisibleMod,rasiStateWrapper skipwhite +syn match rasiStateWrapper display contained transparent '\.\(normal\|active\|urgent\)' contains=rasiState +syn keyword rasiState contained normal active urgent + + +syn region rasiThemeSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiSectionOpenning contained +" syn region rasiThemeInnerSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiThemeInnerSectionOpenning contained + +syn match rasiProperty transparent '^\s*\S\+\s*:.*;\s*$' keepend contained contains=rasiPropertyId,rasiInvPropertyId,rasiPropertyVal,rasiComment,rasiCommentL +syn match rasiInvPropertyId '^\([^:]\&[^/]\{2}\)*:'me=e-1 contained +syn match rasiPropertyId '^\s*[0-9a-zA-Z-]\+\s*:'me=e-1 contained +syn match rasiInvPropertyVal ':[^;];\s*\S\+\s*$'ms=s+1,hs=s+1 +syn match rasiPropertyVal ':\s*[^;]\+;\s*$'ms=s+1,hs=s+1 contained contains=@rasiPropertyVals +" }}} + +" Comment {{{ +syn cluster rasiCommentGroup contains=rasiTodo,rasiBadContinuation + +syn region rasiCommentL start="//" skip="\\$" end="$" keepend contains=@rasiCommentGroup,@Spell +syn region rasiComment start="/\*" end="\*/" contains=@rasiCommentGroup,rasiCommentStartError,@Spell fold extend + +syn match rasiCommentError display '\*/' + +syn keyword rasiTodo contained TODO FIXME XXX NOTE + +if exists("rasi_minlines") + let b:rasi_minlines = rasi_minlines +else + let b:rasi_minlines = 50 +endif +exec "syn sync ccomment rasiComment minlines=" . b:rasi_minlines +" }}} + + + +" Highlighting: {{{ +hi def link rasiError Error + +hi def link rasiTodo Todo +hi def link rasiComment Comment +hi def link rasiCommentStart rasiComment +hi def link rasiCommentL rasiComment +hi def link rasiCommentError rasiError + +hi def link rasiString String +hi def link rasiNumber Number +hi def link rasiBool Boolean + +hi def link rasiImageK Function +hi def link rasiImageScale Keyword +hi def link rasiImageDirection Keyword +hi def link rasiImageUnit Type +hi def link rasiInvImage rasiError + +hi def link rasiHexColor Number +hi def link rasiColorK Function +hi def link rasiNamedColor Number +hi def link rasiInvColor rasiError +hi def link rasiInvHexColor rasiInvColor +hi def link rasiInvRGBColor rasiInvColor +hi def link rasiInvHSLColor rasiInvColor +hi def link rasiInvCMYKColor rasiInvColor + +hi def link rasiTextStyle Keyword +hi def link rasiLineStyle Keyword + +hi def link rasiDistanceUnit Type +hi def link rasiDistanceCalc Function +hi def link rasiDistanceCalcOp Operator +hi def link rasiInvDistance rasiError + +hi def link rasiPosition Keyword +hi def link rasiOrientation Keyword +hi def link rasiCursor Keyword + +hi def link rasiReference Identifier +hi def link rasiPropertyIdRef Identifier +hi def link rasiVarReferenceK Function +hi def link rasiInvVarReference rasiError + +hi def link rasiEnv Identifier +hi def link rasiEnvRef Identifier +hi def link rasiEnvVarK Function +hi def link rasiInvEnv rasiError +hi def link rasiInvEnvVar rasiError + +hi def link rasiWidgetName StorageClass +hi def link rasiGlobalSection StorageClass +hi def link rasiVisibleMod Type +hi def link rasiState Tag + +hi def link rasiInherit Identifier + +hi def link rasiGlobalImport Include + +hi def link rasiGlobalMedia Preproc +hi def link rasiMediaK Keyword +hi def link rasiInvMediaBody rasiError + +hi def link rasiPropertyId Identifier +hi def link rasiInvProperty rasiError +hi def link rasiInvPropertyId rasiError +hi def link rasiInvPropertyVal rasiError +" }}} + +" vim:ts=8 -- cgit From 2f5b8a009280eba995aecf67d1e8d99b7c72c51c Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 4 Jun 2024 09:39:28 +0200 Subject: vim-patch:9.1.0464: no whitespace padding in commentstring option in ftplugins Problem: no whitespace padding in commentstring option in ftplugins Solution: Change default to include whitespace padding, update existing filetype plugins with the new default value (Riley Bruins) closes: vim/vim#14843 https://github.com/vim/vim/commit/0a0830624a260660c7fa692ecb7e6e5de09114ba Co-authored-by: Riley Bruins --- runtime/syntax/lc.vim | 2 +- runtime/syntax/mma.vim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/lc.vim b/runtime/syntax/lc.vim index a334529385..1991c1b582 100644 --- a/runtime/syntax/lc.vim +++ b/runtime/syntax/lc.vim @@ -2,6 +2,7 @@ " Language: Elsa " Maintainer: Miles Glapa-Grossklag " Last Change: 2023-01-29 +" 2024 May 25 by Riley Bruins (move 'commentstring' to ftplugin) if exists('b:current_syntax') finish @@ -13,7 +14,6 @@ syntax match elsaKeyword "\v:" highlight link elsaKeyword Keyword " Comments -setlocal commentstring=--%s syntax match elsaComment "\v--.*$" highlight link elsaComment Comment diff --git a/runtime/syntax/mma.vim b/runtime/syntax/mma.vim index d2f22e9be5..802cbe5538 100644 --- a/runtime/syntax/mma.vim +++ b/runtime/syntax/mma.vim @@ -2,6 +2,7 @@ " Language: Mathematica " Maintainer: steve layland " Last Change: 2012 Feb 03 by Thilo Six +" 2024 May 24 by Riley Bruins (remove 'commentstring') " Source: http://members.wri.com/layland/vim/syntax/mma.vim " http://vim.sourceforge.net/scripts/script.php?script_id=1273 " Id: $Id: mma.vim,v 1.4 2006/04/14 20:40:38 vimboss Exp $ @@ -248,7 +249,6 @@ syntax match mmaBoring "[(){}]" contained "syntax region mmaRegion start="(\*\+[^<]* \*)" containedin=ALLBUT,@mmaStrings transparent fold keepend " show fold text -set commentstring='(*%s*)' "set foldtext=MmaFoldText() "function MmaFoldText() -- cgit From 78d3f4742872f535ebc75500afde4858985c40d8 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 6 Jun 2024 06:40:11 +0800 Subject: vim-patch:92f4e91: runtime(vim): Update base-syntax, allow whitespace before :substitute pattern (#29210) Allow whitespace between the :substitute command and its pattern argument. Although unusual, it is supported and there are examples in the wild. Match Vi compatible :substitute commands like :s\/{string}/. See :help E1270. fixes: vim/vim#14920 closes: vim/vim#14923 https://github.com/vim/vim/commit/92f4e915908962da2c1969a8d60f1563e06ee00e Co-authored-by: Doug Kearns --- runtime/syntax/vim.vim | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 22c1e16a30..6cb75f3af4 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -428,12 +428,10 @@ syn match vimStringInterpolationBrace contained "}}" syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation syn cluster vimSubstList add=vimCollection -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>[\"#|]\@!" nextgroup=vimSubstPat -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)_\@=" nextgroup=vimSubstPat -syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat -syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>[\"#|]\@!" nextgroup=vimSubstPat -syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)_\@=" nextgroup=vimSubstPat -syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>" skipwhite nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)[_#]\@=" skipwhite nextgroup=vimSubstPat " TODO: Vim9 illegal separators for abbreviated :s form are [-.:], :su\%[...] required " : # is allowed but "not recommended" (see :h pattern-delimiter) syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline @@ -446,6 +444,10 @@ syn match vimSubstTwoBS contained "\\\\" syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags syn match vimSubstFlags contained "[&cegiIlnpr#]\+" +" Vi compatibility +syn match vimSubstDelim contained "\\" +syn match vimSubstPat contained "\\\ze[/?&]" contains=vimSubstDelim nextgroup=vimSubstRep4 + " 'String': {{{2 syn match vimString "[^(,]'[^']\{-}\zs'" -- cgit From 2f752d6ad4f6900fdddc5fd5f1b5066f9a6ed300 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 9 Jun 2024 18:43:20 +0200 Subject: vim-patch:d6b4afb: runtime(java): Exclude lambda expressions from _when_ _switch-case_ label clauses (vim/vim#14945) These guard clauses are always boolean expressions, whereas lambda expressions can only appear in either an assignment, a casting, or an invocation context. References: https://docs.oracle.com/javase/specs/jls/se21/html/jls-14.html#jls-14.11.1 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.27 https://github.com/vim/vim/commit/d6b4afb636aed7eaf709eb27c4944a1263a0f887 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com> --- runtime/syntax/java.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 5ba724d24e..f5910a8557 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 May 30 +" Last Change: 2024 Jun 08 " Please check :help java.vim for comments on some of the options available. @@ -215,7 +215,7 @@ syn keyword javaLabelVarType contained var syn keyword javaLabelCastType contained char byte short int " Allow for the contingency of the enclosing region not being able to " _keep_ its _end_, e.g. case ':':. -syn region javaLabelWhenClause contained transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal +syn region javaLabelWhenClause contained transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef syn match javaLabelNumber contained "\<0\>[lL]\@!" syn match javaLabelNumber contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!" hi def link javaLabelDefault javaLabel -- cgit From 04d3ad1deda3f865c0109e3ee54d7002d05d648b Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 11 Jun 2024 08:44:24 +0200 Subject: vim-patch:b8076f9: runtime(deb822sources): add missing Enabled field in syntax script closes: vim/vim#14898 It lacks the support of Enabled: boolean option field [1]: e.g. Types: deb Uris: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/ Components: main Suites: vscodium Architectures: amd64 i386 arm64 armhf Enabled: yes Signed-By: /var/lib/extrepo/keys/vscodium.asc This patch was also forwarded to upstream. [2] [1] https://manpages.debian.org/unstable/apt/sources.list.5.en.html#DEB822-STYLE_FORMAT [2] https://salsa.debian.org/vim-team/vim-debian/-/merge_requests/16 https://github.com/vim/vim/commit/b8076f92a1a1a12101ab8288e9e173e687afecff Co-authored-by: Kentaro Hayashi --- runtime/syntax/deb822sources.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/deb822sources.vim b/runtime/syntax/deb822sources.vim index f7d337fce9..ec45605905 100644 --- a/runtime/syntax/deb822sources.vim +++ b/runtime/syntax/deb822sources.vim @@ -40,7 +40,7 @@ syn match deb822sourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorre syn region deb822sourcesStrictField matchgroup=deb822sourcesEntryField start="^\%(Types\|URIs\|Suites\|Components\): *" end="$" contains=deb822sourcesType,deb822sourcesUri,deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites,deb822sourcesFreeComponent,deb822sourcesNonFreeComponent oneline syn region deb822sourcesField matchgroup=deb822sourcesOptionField start="^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *" end="$" oneline syn region deb822sourcesField matchgroup=deb822sourcesMultiValueOptionField start="^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *" end="$" oneline -syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\): *" end="$" contains=deb822sourcesYesNo oneline +syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\|Enabled\): *" end="$" contains=deb822sourcesYesNo oneline syn region deb822sourcesStrictField matchgroup=deb822sourcesForceBooleanOptionField start="^\%(By-Hash\): *" end="$" contains=deb822sourcesForce,deb822sourcesYesNo oneline hi def link deb822sourcesField Default -- cgit From c06f3dbe3ee82bd8c9e5d8625b225a937a9e5e9e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 11 Jun 2024 08:44:44 +0200 Subject: vim-patch:2d88210: runtime(kdl): include syntax, indent and ftplugin files closes: vim/vim#14956 https://github.com/vim/vim/commit/2d88210b3c8516c30ed104054e5cdaef67880755 Co-authored-by: inzuo Jiang Co-authored-by: Aram Drevekenin --- runtime/syntax/kdl.vim | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 runtime/syntax/kdl.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/kdl.vim b/runtime/syntax/kdl.vim new file mode 100644 index 0000000000..a36bb9e927 --- /dev/null +++ b/runtime/syntax/kdl.vim @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: KDL +" Maintainer: Aram Drevekenin +" Maintainer: Yinzuo Jiang +" Latest Revision: 2024-06-10 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match kdlNode '\v(\w|-|\=)' display +syn match kdlBool '\v(true|false)' display + +syn keyword kdlTodo contained TODO FIXME XXX NOTE +syn match kdlComment "//.*$" contains=kdlTodo + +" Regular int like number with - + or nothing in front +syn match kdlNumber '\d\+' +syn match kdlNumber '[-+]\d\+' + +" Floating point number with decimal no E or e (+,-) +syn match kdlNumber '\d\+\.\d*' contained display +syn match kdlNumber '[-+]\d\+\.\d*' contained display + +" Floating point like number with E and no decimal point (+,-) +syn match kdlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display +syn match kdlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display + +" Floating point like number with E and decimal point (+,-) +syn match kdlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display +syn match kdlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display + +syn region kdlString start='"' end='"' skip='\\\\\|\\"' display + +syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment + +hi def link kdlTodo Todo +hi def link kdlComment Comment +hi def link kdlNode Statement +hi def link kdlBool Boolean +hi def link kdlString String +hi def link kdlNumber Number + +let b:current_syntax = "kdl" -- cgit From c7799b1a23f82128e793448165ae88b403f9ef17 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 12 Jun 2024 10:22:22 +0800 Subject: vim-patch:059cbe8: runtime(vim): Update base-syntax, match multiline continued comments (vim/vim#13936) Match multiline (continued) line comments. Continued tail comments are not supported yet. https://github.com/vim/vim/commit/059cbe8933550e4f2b10ab564fb4398e95280198 Co-authored-by: dkearns --- runtime/syntax/vim.vim | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 6cb75f3af4..d916a666c9 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -806,16 +806,17 @@ syn match vimCtrlChar "[- -]" " Beginners - Patterns that involve ^ {{{2 " ========= if s:vim9script - syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained - syn match vim9LineComment +^[ \t:]*#.*$+ contains=@vimCommentGroup,vimCommentString,vim9CommentTitle + syn region vim9LineComment start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle + syn region vimLineComment start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained else - syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle - syn match vim9LineComment +^[ \t:]*#.*$+ contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained + syn region vimLineComment start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle + syn region vim9LineComment start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained endif syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup syn match vim9CommentTitle '#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup + syn match vimContinue "^\s*\zs\\" -syn match vimContinueComment '^\s*\zs["#]\\ .*' contained +syn match vimContinueComment '^\s*\zs["#]\\ .*' syn cluster vimContinue contains=vimContinue,vimContinueComment syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained -- cgit From bbe69b4022b577a801653991a8b7f7f2ab869e97 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 12 Jun 2024 10:23:09 +0800 Subject: vim-patch:959c3c8: runtime(vim): Update base-syntax, configurable comment string highlighting (vim/vim#14931) Allow highlighting of strings within comments to be disabled by setting g:vimsyn_comment_strings to false. https://github.com/vim/vim/commit/959c3c887b2e52c7141b2a09a53634481911b1b7 Co-authored-by: dkearns --- runtime/syntax/vim.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index d916a666c9..d16d62dc4a 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -359,7 +359,9 @@ syn region vimUserCmdBlock contained matchgroup=vimSep start="{" end="}" contain " Lower Priority Comments: after some vim commands... {{{2 " ======================= -syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' +if get(g:, "vimsyn_comment_strings", 1) + syn region vimCommentString contained oneline start='\S\s\+"'ms=e end='"' +endif if s:vim9script syn match vimComment excludenl +\s"[^\-:.%#=*].*$+lc=1 contains=@vimCommentGroup,vimCommentString contained -- cgit From f75053a00adfa3131ab181b6bc6a4efde046afe0 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 13 Jun 2024 18:00:52 +0200 Subject: vim-patch:902b766: runtime(java): Include element values in non-marker annotations (vim/vim#14979) Make a formal definition for normal and single-element kinds of annotations that otherwise require for their containment to repeat each time all syntax groups that describe element values. Reference: https://docs.oracle.com/javase/specs/jls/se21/html/jls-9.html#jls-9.7 https://github.com/vim/vim/commit/902b766858fad89ab30b4e0a92ddd1244b2a4cbe Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com> --- runtime/syntax/java.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index f5910a8557..1f71f9e4ee 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Jun 08 +" Last Change: 2024 Jun 10 " Please check :help java.vim for comments on some of the options available. @@ -99,6 +99,7 @@ syn match javaClassDecl "\\%(\s*(\)\@!" syn match javaClassDecl "^class\>" syn match javaClassDecl "[^.]\s*\"ms=s+1 syn match javaAnnotation "@\%(\K\k*\.\)*\K\k*\>" +syn region javaAnnotation transparent matchgroup=javaAnnotationStart start=/@\%(\K\k*\.\)*\K\k*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=javaAnnotation,javaParenT,javaBraces,javaString,javaBoolean,javaNumber,javaTypedef,javaComment,javaLineComment syn match javaClassDecl "@interface\>" syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite syn match javaUserLabelRef "\k\+" contained @@ -497,6 +498,7 @@ hi def link javaConstant Constant hi def link javaTypedef Typedef hi def link javaTodo Todo hi def link javaAnnotation PreProc +hi def link javaAnnotationStart javaAnnotation hi def link javaCommentTitle SpecialComment hi def link javaDocTags Special -- cgit From 0600754d8d24457d23c3eb1d9c89b1d30c429ad0 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 15 Jun 2024 05:59:48 +0800 Subject: vim-patch:a3bddb7: runtime(vim): Update base-syntax, match :catch and :throw args (vim/vim#14989) Match :catch /{pattern}/ and :throw {expr1}. https://github.com/vim/vim/commit/a3bddb759e77c52431a93a68674790dd02647cd1 Co-authored-by: dkearns --- runtime/syntax/vim.vim | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index d16d62dc4a..b233359f1e 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -60,9 +60,9 @@ syn case ignore syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo " Default highlighting groups {{{2 -syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit DiffText PmenuSbar TabLineSel TabLineFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuExtra PmenuExtraSel Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen CursorIM LineNrAbove LineNrBelow +syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit DiffText PmenuSbar TabLineSel TabLineFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuMatch PmenuMatchSel PmenuExtra PmenuExtraSel Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen StatusLineTerm StatusLineTermNC CursorIM LineNrAbove LineNrBelow syn match vimHLGroup contained "\" -syn keyword vimOnlyHLGroup contained Menu Scrollbar StatusLineTerm StatusLineTermNC ToolbarButton ToolbarLine Tooltip VisualNOS +syn keyword vimOnlyHLGroup contained Menu Scrollbar ToolbarButton ToolbarLine Tooltip VisualNOS syn keyword nvimHLGroup contained FloatBorder FloatFooter FloatTitle MsgSeparator NormalFloat NormalNC Substitute TermCursor TermCursorNC VisualNC Whitespace WinBar WinBarNC WinSeparator "}}}2 syn case match @@ -165,7 +165,7 @@ syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSub syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1 syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" @@ -196,6 +196,11 @@ syn match vimBehave "\" nextgroup=vimBehaveBang,vimBehaveModel,vi syn match vimBehaveBang contained "\a\@1<=!" nextgroup=vimBehaveModel skipwhite syn keyword vimBehaveModel contained mswin xterm +" Exception Handling {{{2 +syn keyword vimThrow th[row] skipwhite nextgroup=@vimExprList +syn keyword vimCatch cat[ch] skipwhite nextgroup=vimCatchPattern +syn region vimCatchPattern contained matchgroup=Delimiter start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSubstList oneline + " Filetypes {{{2 " ========= syn match vimFiletype "\ Date: Sat, 15 Jun 2024 06:05:51 +0800 Subject: vim-patch:262e25e: runtime(vim): Update base-syntax, match :sleep arg Match :sleep arg properly including a lone "m" with a leading count. closes: vim/vim#15003 https://github.com/vim/vim/commit/262e25e5a10438770dc9e23e0d5ffcb116f05d0f Co-authored-by: Doug Kearns --- runtime/syntax/vim.vim | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index b233359f1e..de2b4ef223 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -165,7 +165,7 @@ syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSub syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1 syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" @@ -647,6 +647,12 @@ syn match vimNotFunc "\\|\\|\\|\" skipwhi syn match vimNorm "\" + " Syntax: {{{2 "======= syn match vimGroupList contained "[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial @@ -1190,6 +1196,9 @@ if !exists("skip_vim_syntax_inits") hi def link vimSetSep Statement hi def link vimSetString vimString hi def link vim9Vim9Script vimCommand + hi def link vimSleep vimCommand + hi def link vimSleepArg Constant + hi def link vimSleepBang vimBang hi def link vimSpecFile Identifier hi def link vimSpecFileMod vimSpecFile hi def link vimSpecial Type -- cgit From bb487ea12e279bb7ab599d55eb027f1c34e4ecbe Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 15 Jun 2024 21:28:23 +0800 Subject: vim-patch:ae321b5: runtime(vim): Update base-syntax, match shebang lines (vim/vim#15011) (#29351) Match shebang lines in Vim9 and legacy script. Mark these as an error if they appear anywhere other than the first line of a legacy-script file. In Vim9 script these match as normal line comments rather than an error. https://github.com/vim/vim/commit/ae321b51f7531b23545d64c3a98ed991a31dd5ee Co-authored-by: dkearns --- runtime/syntax/vim.vim | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index de2b4ef223..a3b0117e9d 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -828,6 +828,12 @@ endif syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup syn match vim9CommentTitle '#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup +" allowed anywhere in the file +if !s:vim9script + syn match vimShebangError "^\s*\zs#!.*" display +endif +syn match vimShebang "\%^#!.*" display + syn match vimContinue "^\s*\zs\\" syn match vimContinueComment '^\s*\zs["#]\\ .*' syn cluster vimContinue contains=vimContinue,vimContinueComment @@ -1058,6 +1064,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimHiCtermError vimError hi def link vimHiKeyError vimError hi def link vimMapModErr vimError + hi def link vimShebangError vimError hi def link vimSubstFlagErr vimError hi def link vimSynCaseError vimError hi def link vimSynFoldMethodError vimError @@ -1196,6 +1203,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimSetSep Statement hi def link vimSetString vimString hi def link vim9Vim9Script vimCommand + hi def link vimShebang PreProc hi def link vimSleep vimCommand hi def link vimSleepArg Constant hi def link vimSleepBang vimBang -- cgit From 2f87d363c18291584028fe88053c92873527497f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 16 Jun 2024 11:29:01 +0200 Subject: vim-patch:371bab0: runtime(java): Fold multi-line comments with the syntax kind of &fdm (vim/vim#15016) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also: - Restore the capability to mark as an error braces nested in parens with g:javaInParen. - Try not to fold top-level-type bodies. (Defining multiple package-private top level types in a single source file is not recommended as it can impose order among compilation units; so it is assumed that only one such top level type is usually defined.) - Compose ‘method header’ highlighting and block braces folding. - Do not highlight block braces whenever ‘method header’ highlighting is requested. This bundling of ‘method headers’ and block braces for highlighting can be traced back to Vim v5.0; however, no comment or documentation entry conveys any justification. For example, it is hard to discover the connection between block braces for "while", "if", etc., statements and method body block braces. The former behaviour can be attained in, e.g. ~/.vim/after/syntax/java.vim: ------------------------------------------------------------ if exists("g:java_highlight_functions") syn clear javaBlock javaInParen syn match javaBlockOther "[{}]" syn region javaBlock transparent matchgroup=javaBlockStart \ start="\%(^\|^\S[^:]\+\)\@120 --- runtime/syntax/java.vim | 56 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 14 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 1f71f9e4ee..6f64bdc4ed 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Jun 10 +" Last Change: 2024 Jun 15 " Please check :help java.vim for comments on some of the options available. @@ -14,7 +14,6 @@ if !exists("main_syntax") endif " we define it here so that included files can test for it let main_syntax='java' - syn region javaFold start="{" end="}" transparent fold endif let s:cpo_save = &cpo @@ -40,6 +39,18 @@ else endfunction endif +function! JavaSyntaxFoldTextExpr() abort + return getline(v:foldstart) !~ '/\*\+\s*$' + \ ? foldtext() + \ : printf('+-%s%3d lines: ', + \ v:folddashes, + \ (v:foldend - v:foldstart + 1)) . + \ getline(v:foldstart + 1) +endfunction + +" E120 for "fdt=s:JavaSyntaxFoldTextExpr()" before v8.2.3900. +setlocal foldtext=JavaSyntaxFoldTextExpr() + " Admit the ASCII dollar sign to keyword characters (JLS-17, §3.8): try exec 'syntax iskeyword ' . &l:iskeyword . ',$' @@ -99,7 +110,7 @@ syn match javaClassDecl "\\%(\s*(\)\@!" syn match javaClassDecl "^class\>" syn match javaClassDecl "[^.]\s*\"ms=s+1 syn match javaAnnotation "@\%(\K\k*\.\)*\K\k*\>" -syn region javaAnnotation transparent matchgroup=javaAnnotationStart start=/@\%(\K\k*\.\)*\K\k*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=javaAnnotation,javaParenT,javaBraces,javaString,javaBoolean,javaNumber,javaTypedef,javaComment,javaLineComment +syn region javaAnnotation transparent matchgroup=javaAnnotationStart start=/@\%(\K\k*\.\)*\K\k*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=javaAnnotation,javaParenT,javaBlock,javaString,javaBoolean,javaNumber,javaTypedef,javaComment,javaLineComment syn match javaClassDecl "@interface\>" syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite syn match javaUserLabelRef "\k\+" contained @@ -238,7 +249,7 @@ if exists("java_comment_strings") syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber,javaStrTempl endif -syn region javaComment matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell +syn region javaComment matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell fold syn match javaCommentStar contained "^\s*\*[^/]"me=e-1 syn match javaCommentStar contained "^\s*\*$" syn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell @@ -269,7 +280,7 @@ if !exists("java_ignore_javadoc") && main_syntax != 'jsp' call s:ReportOnce(v:exception) endtry - syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag,javaTodo,javaCommentError,javaSpaceError,@Spell + syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag,javaTodo,javaCommentError,javaSpaceError,@Spell fold exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag' syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag syn region javaDocTags contained start="{@\%(li\%(teral\|nk\%(plain\)\=\)\|inherit[Dd]oc\|doc[rR]oot\|value\)\>" end="}" @@ -348,8 +359,6 @@ if exists("java_highlight_functions") " Match: [@ɐ] [abstract] [<α, β>] Τʬ[<γ>][[][]] μʭʭ(/* ... */); exec 'syn region javaFuncDef start=/' . s:ff.Engine('\%#=2', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<.*[[:space:]-]\@' . s:ff.Peek('1', '') . '\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\)\%(\[\]\)*\)\s\+\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams' endif - - syn match javaBraces "[{}]" endif if exists("java_highlight_debug") @@ -404,14 +413,18 @@ if exists("java_highlight_debug") endif if exists("java_mark_braces_in_parens_as_errors") - syn match javaInParen contained "[{}]" - hi def link javaInParen javaError + syn match javaInParen contained "[{}]" + hi def link javaInParen javaError endif +" Try not to fold top-level-type bodies under assumption that there is +" but one such body. +exec 'syn region javaBlock transparent start="\%(^\|^\S[^:]\+\)\@' . s:ff.Peek('120', '') . ' Date: Sun, 16 Jun 2024 11:30:17 +0200 Subject: vim-patch:79da22d: runtime(kdl): fix KdlIndent and kdlComment in indent script (vim/vim#15019) https://github.com/vim/vim/commit/79da22de755e28bd8d4f58fc4bf34cf94f45de63 Co-authored-by: Yinzuo Jiang --- runtime/syntax/kdl.vim | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/kdl.vim b/runtime/syntax/kdl.vim index a36bb9e927..97e8f93b61 100644 --- a/runtime/syntax/kdl.vim +++ b/runtime/syntax/kdl.vim @@ -2,7 +2,7 @@ " Language: KDL " Maintainer: Aram Drevekenin " Maintainer: Yinzuo Jiang -" Latest Revision: 2024-06-10 +" Latest Revision: 2024-06-16 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -13,7 +13,8 @@ syn match kdlNode '\v(\w|-|\=)' display syn match kdlBool '\v(true|false)' display syn keyword kdlTodo contained TODO FIXME XXX NOTE -syn match kdlComment "//.*$" contains=kdlTodo +syn region kdlComment start="//" end="$" contains=kdlTodo,@Spell +syn region kdlComment start="/\*" end="\*/" contains=kdlTodo,@Spell " Regular int like number with - + or nothing in front syn match kdlNumber '\d\+' @@ -22,17 +23,17 @@ syn match kdlNumber '[-+]\d\+' " Floating point number with decimal no E or e (+,-) syn match kdlNumber '\d\+\.\d*' contained display syn match kdlNumber '[-+]\d\+\.\d*' contained display - + " Floating point like number with E and no decimal point (+,-) syn match kdlNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display syn match kdlNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display - + " Floating point like number with E and decimal point (+,-) syn match kdlNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display syn match kdlNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display syn region kdlString start='"' end='"' skip='\\\\\|\\"' display - + syn region kdlChildren start="{" end="}" contains=kdlString,kdlNumber,kdlNode,kdlBool,kdlComment hi def link kdlTodo Todo @@ -43,3 +44,5 @@ hi def link kdlString String hi def link kdlNumber Number let b:current_syntax = "kdl" + +" vim: sw=2 sts=2 et -- cgit From 72ddf213a16d7b926ec439ce7616c95d1c041071 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 16 Jun 2024 16:48:23 +0200 Subject: vim-patch:917ff8a: runtime(html): bump length of character references in syntax script (vim/vim#15022) This allows handling longer references such as `∳`. https://github.com/vim/vim/commit/917ff8a19d2746dd922b7292dc61fb92e18b7ce2 Co-authored-by: Mohamed Akram --- runtime/syntax/html.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim index c975ae8620..d067dde83c 100644 --- a/runtime/syntax/html.vim +++ b/runtime/syntax/html.vim @@ -191,7 +191,7 @@ syn keyword htmlArg contained step title translate typemustmatch syn match htmlArg contained "\ Date: Wed, 19 Jun 2024 09:41:03 +0200 Subject: vim-patch:1ce65e3: runtime(csv): include a simple csv filetype and syntax plugin (#29395) * vim-patch:1ce65e3: runtime(csv): include a simple csv filetype and syntax plugin fixes: vim/vim#15038 https://github.com/vim/vim/commit/1ce65e35ac6555054db1276e30d9d63421e6b346 Co-authored-by: Maxim Kim Co-authored-by: zeertzjq --- runtime/syntax/csv.vim | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 runtime/syntax/csv.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/csv.vim b/runtime/syntax/csv.vim new file mode 100644 index 0000000000..6295c3e29a --- /dev/null +++ b/runtime/syntax/csv.vim @@ -0,0 +1,38 @@ +" Maintainer: Maxim Kim +" Converted from vim9script +" Last Update: 2024-06-18 + +if exists("b:current_syntax") + finish +endif + +let s:delimiter = get(b:, "csv_delimiter", ",") + +" generate bunch of following syntaxes: +" syntax match csvCol8 /.\{-}\(,\|$\)/ nextgroup=escCsvCol0,csvCol0 +" syntax region escCsvCol8 start=/ *"\([^"]*""\)*[^"]*/ end=/" *\(,\|$\)/ nextgroup=escCsvCol0,csvCol0 +for s:col in range(8, 0, -1) + let s:ncol = (s:col == 8 ? 0 : s:col + 1) + exe $'syntax match csvCol{s:col}' .. ' /.\{-}\(' .. s:delimiter .. '\|$\)/ nextgroup=escCsvCol' .. s:ncol .. ',csvCol' .. s:ncol + exe $'syntax region escCsvCol{s:col}' .. ' start=/ *"\([^"]*""\)*[^"]*/ end=/" *\(' .. s:delimiter .. '\|$\)/ nextgroup=escCsvCol' .. s:ncol .. ',csvCol' .. s:ncol +endfor + +hi def link csvCol1 Statement +hi def link csvCol2 Constant +hi def link csvCol3 Type +hi def link csvCol4 PreProc +hi def link csvCol5 Identifier +hi def link csvCol6 Special +hi def link csvCol7 String +hi def link csvCol8 Comment + +hi def link escCsvCol1 csvCol1 +hi def link escCsvCol2 csvCol2 +hi def link escCsvCol3 csvCol3 +hi def link escCsvCol4 csvCol4 +hi def link escCsvCol5 csvCol5 +hi def link escCsvCol6 csvCol6 +hi def link escCsvCol7 csvCol7 +hi def link escCsvCol8 csvCol8 + +let b:current_syntax = "csv" -- cgit From ac6f0c02cf31a5e6a426db0b4044c4a5d86f67a1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 20 Jun 2024 09:08:10 +0200 Subject: vim-patch:94c5d8a: runtime(java): Remove the group exclusion list from @javaTop Instances of anonymous classes can be passed as method arguments and should be subject to line folding as well. closes: vim/vim#15048 https://github.com/vim/vim/commit/94c5d8a5e20e1dd8c9e8434ee14e368276644f61 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com> --- runtime/syntax/java.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 6f64bdc4ed..c2cba1a5f9 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Jun 15 +" Last Change: 2024 Jun 19 " Please check :help java.vim for comments on some of the options available. @@ -412,15 +412,15 @@ if exists("java_highlight_debug") hi def link DebugType Type endif +" Try not to fold top-level-type bodies under assumption that there is +" but one such body. +exec 'syn region javaBlock transparent start="\%(^\|^\S[^:]\+\)\@' . s:ff.Peek('120', '') . ' Date: Fri, 21 Jun 2024 10:34:59 +0200 Subject: vim-patch:beb02ed: runtime(java): Optionally highlight parameterised types In the presence of parameterised types whose names begin with a capital letter and end with a less-than sign "<" that introduces a type argument or a list of comma-separated type arguments, followed by a greater-than sign ">", a variable "g:java_highlight_generics" can be defined to have some components of such types uniformly coloured (by picking highlight groups for javaGenericsC{1,2}, javaWildcardBound). For example, ------------------------------------------------------------ java.io.InputStream stream = java.io.InputStream.nullInputStream(); java.util.function.Function> updater = property -> (oldValue, newValue) -> oldValue; java.util.logging.LogManager.getLogManager() .updateConfiguration(stream, updater); ------------------------------------------------------------ Note that the diamond form and explicit type arguments do not qualify for this kind of recognition. For example, ------------------------------------------------------------ new java.util.HashSet<>().toArray(new String[0]); ------------------------------------------------------------ References: https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.5 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.9 https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.12.2.1 closes: vim/vim#15050 https://github.com/vim/vim/commit/beb02ed674bc61f179c4ff71e93bdeeb44fe9c4e Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com> --- runtime/syntax/java.vim | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index c2cba1a5f9..b612ccaaad 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -146,6 +146,30 @@ if s:module_info_cur_buf syn keyword javaModuleExternal to with endif +" Fancy parameterised types (JLS-17, §4.5). +" +" Note that false positives may elsewhere occur whenever an identifier +" is butted against a less-than operator. Cf. (X\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\)\%(\[\]\)*"' + + for s:ctx in [{'dsg': 'javaDimExpr', 'gsg': 'javaGenerics', 'ghg': 'javaGenericsC1', 'csg': 'javaGenericsX', 'c': ''}, + \ {'dsg': 'javaDimExprX', 'gsg': 'javaGenericsX', 'ghg': 'javaGenericsC2', 'csg': 'javaGenerics', 'c': ' contained'}] + " Consider array creation expressions of reifiable types. + exec 'syn region ' . s:ctx.dsg . ' contained transparent matchgroup=' . s:ctx.ghg . ' start="\[" end="\]" nextgroup=' . s:ctx.dsg . ' skipwhite skipnl' + exec 'syn region ' . s:ctx.gsg . s:ctx.c . ' transparent matchgroup=' . s:ctx.ghg . ' start=/' . s:ff.Engine('\%#=2', '') . '\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\><\%([[:space:]\n]*\%([?@]\|\<\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\)\[\]\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\)\)\@=/ end=/>/ contains=' . s:ctx.csg . ',javaAnnotation,javaTypeArgument,javaWildcardBound,javaType,@javaClasses nextgroup=' . s:ctx.dsg . ' skipwhite skipnl' + endfor + + unlet s:ctx + hi def link javaWildcardBound Question + hi def link javaGenericsC1 javaFuncDef + hi def link javaGenericsC2 javaType +endif + if exists("java_highlight_java_lang_ids") let java_highlight_all=1 endif @@ -175,9 +199,15 @@ if exists("java_highlight_all") || exists("java_highlight_java") || exists("ja exec 'syn match javaC_JavaLang "\%(\"' exec 'syn match javaC_JavaLang "\%(\"' exec 'syn match javaC_JavaLang "\%(\"' - exec 'syn match javaC_JavaLang "\%(\"' - syn keyword javaC_JavaLang Boolean Character Class ClassLoader Compiler Double Float Integer Long Math Number Object Process Runtime SecurityManager String StringBuffer Thread ThreadGroup Byte Short Void InheritableThreadLocal Package RuntimePermission ThreadLocal StrictMath StackTraceElement Enum ProcessBuilder StringBuilder ClassValue Module ModuleLayer StackWalker Record + syn keyword javaC_JavaLang Boolean Character ClassLoader Compiler Double Float Integer Long Math Number Object Process Runtime SecurityManager String StringBuffer Thread ThreadGroup Byte Short Void Package RuntimePermission StrictMath StackTraceElement ProcessBuilder StringBuilder Module ModuleLayer StackWalker Record syn match javaC_JavaLang "\" " See javaDebug. + + if !exists("java_highlight_generics") + " The non-interface parameterised names of java.lang members. + exec 'syn match javaC_JavaLang "\%(\"' + syn keyword javaC_JavaLang Class InheritableThreadLocal ThreadLocal Enum ClassValue + endif + " As of JDK 21, java.lang.Compiler is no more (deprecated in JDK 9). syn keyword javaLangDeprecated Compiler syn cluster javaClasses add=javaC_JavaLang @@ -217,7 +247,7 @@ if exists("java_space_errors") endif exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaLabelDefault,javaLabelVarType,javaLabelWhenClause +syn region javaLabelRegion transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause syn region javaLabelRegion transparent matchgroup=javaLabel start="\\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline " Consider grouped _default_ _case_ labels, i.e. " case null, default -> @@ -332,7 +362,7 @@ syn match javaSpecial "\\u\x\x\x\x" " Method declarations (JLS-17, §8.4.3, §8.4.4, §9.4). if exists("java_highlight_functions") - syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaType,javaVarArg,javaComment,javaLineComment + syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaGenerics,javaType,javaVarArg,javaComment,javaLineComment if java_highlight_functions =~# '^indent[1-8]\=$' let s:last = java_highlight_functions[-1 :] @@ -443,7 +473,7 @@ if exists("java_highlight_functions") " There is no recognition of expressions interspersed with comments " or of expressions whose parameterised parameter types are written " across multiple lines. - exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%((\_.\{-1,})\)\{-,1}[[:space:]\n]\+\)*\%(final[[:space:]\n]\+\)\=\%(\<\K\k*\>\.\)*\<\K\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\%(\%(\%(\[\]\)\+\|\.\.\.\)\)\=[[:space:]\n]\+\<\K\k*\>\%(\[\]\)*\%(,[[:space:]\n]*\)\=\)\+)[[:space:]\n]*->" contains=javaAnnotation,javaParamModifier,javaLambdaVarType,javaType,@javaClasses,javaVarArg' + exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%((\_.\{-1,})\)\{-,1}[[:space:]\n]\+\)*\%(final[[:space:]\n]\+\)\=\%(\<\K\k*\>\.\)*\<\K\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\%(\%(\%(\[\]\)\+\|\.\.\.\)\)\=[[:space:]\n]\+\<\K\k*\>\%(\[\]\)*\%(,[[:space:]\n]*\)\=\)\+)[[:space:]\n]*->" contains=javaAnnotation,javaParamModifier,javaLambdaVarType,javaType,@javaClasses,javaGenerics,javaVarArg' " Match: () -> " | (a[, b, ...]) -> exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%(,[[:space:]\n]*\)\=\)*)[[:space:]\n]*->"' -- cgit From 5eb604c64214957dc777e77cf1cc8d19dd8d8369 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 21 Jun 2024 10:35:48 +0200 Subject: vim-patch:17e0a19: runtime(scheme): update runtime files Add TODO highlighting, disable text-wrapping, add "define-library" to lispwords on CHICKEN. Update MAINTAINERS. closes: vim/vim#15063 https://github.com/vim/vim/commit/17e0a1969da4e70771435fc7fa9d8c96d25c8b00 Co-authored-by: Evan Hanson --- runtime/syntax/chicken.vim | 18 +++++++++--------- runtime/syntax/scheme.vim | 21 ++++++++++++--------- 2 files changed, 21 insertions(+), 18 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/chicken.vim b/runtime/syntax/chicken.vim index f53d872e74..958fc1f361 100644 --- a/runtime/syntax/chicken.vim +++ b/runtime/syntax/chicken.vim @@ -1,13 +1,13 @@ " Vim syntax file -" Language: Scheme (CHICKEN) -" Last Change: 2021 Oct 01 -" Author: Evan Hanson -" Maintainer: Evan Hanson -" Repository: https://git.foldling.org/vim-scheme.git -" URL: https://foldling.org/vim/syntax/chicken.vim -" Notes: This is supplemental syntax, to be loaded after the core Scheme -" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1 -" and filetype=scheme. +" Language: Scheme (CHICKEN) +" Last Change: 2024 Jun 21 +" Author: Evan Hanson +" Maintainer: Evan Hanson +" Repository: https://git.foldling.org/vim-scheme.git +" URL: https://foldling.org/vim/syntax/chicken.vim +" Notes: This is supplemental syntax, to be loaded after the core +" Scheme syntax file (syntax/scheme.vim). Enable it by +" setting b:is_chicken=1 and filetype=scheme. " Only to be used on top of the Scheme syntax. if !exists('b:did_scheme_syntax') diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim index c4454fc57c..59b0cc5b18 100644 --- a/runtime/syntax/scheme.vim +++ b/runtime/syntax/scheme.vim @@ -1,12 +1,12 @@ " Vim syntax file -" Language: Scheme (R7RS) -" Last Change: 2021-01-03 -" Author: Evan Hanson -" Maintainer: Evan Hanson -" Previous Author: Dirk van Deun +" Language: Scheme (R7RS) +" Last Change: 2024 Jun 21 +" Author: Evan Hanson +" Maintainer: Evan Hanson +" Previous Author: Dirk van Deun " Previous Maintainer: Sergey Khorev -" Repository: https://git.foldling.org/vim-scheme.git -" URL: https://foldling.org/vim/syntax/scheme.vim +" Repository: https://git.foldling.org/vim-scheme.git +" URL: https://foldling.org/vim/syntax/scheme.vim if exists('b:current_syntax') finish @@ -50,9 +50,11 @@ syn match schemeBoolean /#f\(alse\)\?/ syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/ syn match schemeCharacter /#\\x[0-9a-fA-F]\+/ -syn match schemeComment /;.*$/ contains=@Spell +syn match schemeComment /;.*$/ contains=schemeTodo,@Spell -syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment,@Spell +syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeTodo,schemeMultilineComment,@Spell + +syn match schemeTodo /\c\<\(todo\|xxx\|fixme\|note\):\?\>/ contained syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster @@ -427,6 +429,7 @@ syn keyword schemeFunction write-string syn keyword schemeFunction write-u8 syn keyword schemeFunction zero? +hi def link schemeTodo Todo hi def link schemeBoolean Boolean hi def link schemeCharacter Character hi def link schemeComment Comment -- cgit From 6796f7cf61eb49d10bc066bb3205a5c4bdc8db24 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 22 Jun 2024 19:46:13 +0800 Subject: vim-patch:fc64ac0: runtime(vim): Update base-syntax, fix function tail comments (#29450) Match Vim9-script comments after :def and :enddef and legacy-script comments after :func and :endfunc, in any definition context. Highlight incorrect comment types after these commands as errors. fixes: vim/vim#15062 closes: vim/vim#15072 https://github.com/vim/vim/commit/fc64ac0be2c4f9446798de4d66b029526d1afa85 Co-authored-by: Doug Kearns --- runtime/syntax/vim.vim | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index a3b0117e9d..a3bfc70267 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -266,19 +266,19 @@ syn match vimFuncSID contained "\<[sg]:" syn keyword vimFuncKey contained fu[nction] syn keyword vimDefKey contained def -syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod contains=vimFuncParam,@vimContinue -syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType contains=vimDefParam,vim9Comment +syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue +syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment syn match vimFuncParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFuncParamEquals syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFuncParamEquals syn match vimFuncParamEquals contained "=" skipwhite nextgroup=@vimExprList -syn match vimFuncMod contained "\<\%(abort\|closure\|dict\|range\)\>" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod +syn match vimFuncMod contained "\<\%(abort\|closure\|dict\|range\)\>" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError -syn region vimFuncBody contained start="^" matchgroup=vimCommand end="\" contains=@vimFuncBodyList -syn region vimDefBody contained start="^" matchgroup=vimCommand end="\" contains=@vimDefBodyList +syn region vimFuncBody contained start="^.\=" matchgroup=vimCommand end="\" contains=@vimFuncBodyList skipwhite nextgroup=vimCmdSep,vimComment,vim9CommentError +syn region vimDefBody contained start="^.\=" matchgroup=vimCommand end="\" contains=@vimDefBodyList skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError -syn match vimEndfunction "\" -syn match vimEnddef "\" +syn match vimEndfunction "\" skipwhite nextgroup=vimCmdSep,vimComment,vim9CommentError +syn match vimEnddef "\" skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' syn region vimFuncFold start="^\s*:\=\s*fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*(" end="^\s*:\=\s*endf\%[unction]\>" contains=vimFunction fold keepend extend transparent @@ -292,7 +292,7 @@ syn match vimFuncBlank contained "\s\+" " Types: {{{2 " ===== " vimTypes : new for vim9 -syn region vimReturnType contained start=":\s" end="$" matchgroup=vim9Comment end="\ze#" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef contains=vimTypeSep transparent +syn region vimReturnType contained start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimCommentError contains=vimTypeSep transparent syn match vimParamType contained ":\s\+\a" skipwhite skipnl nextgroup=vimFuncParamEquals contains=vimTypeSep,@vimType syn match vimTypeSep contained ":\s\@=" skipwhite nextgroup=@vimType @@ -398,6 +398,9 @@ else syn cluster vimComment contains=vimComment endif +syn match vim9CommentError contained "#.*" +syn match vimCommentError contained +".*+ + " Environment Variables: {{{2 " ===================== syn match vimEnvvar "\$\I\i*" @@ -868,12 +871,12 @@ endif " Allows users to specify the type of embedded script highlighting " they want: (perl/python/ruby/tcl support) " g:vimsyn_embed == 0 : don't embed any scripts -" g:vimsyn_embed =~# 'l' : embed lua -" g:vimsyn_embed =~# 'm' : embed mzscheme -" g:vimsyn_embed =~# 'p' : embed perl -" g:vimsyn_embed =~# 'P' : embed python -" g:vimsyn_embed =~# 'r' : embed ruby -" g:vimsyn_embed =~# 't' : embed tcl +" g:vimsyn_embed =~# 'l' : embed Lua +" g:vimsyn_embed =~# 'm' : embed MzScheme +" g:vimsyn_embed =~# 'p' : embed Perl +" g:vimsyn_embed =~# 'P' : embed Python +" g:vimsyn_embed =~# 'r' : embed Ruby +" g:vimsyn_embed =~# 't' : embed Tcl if !exists("g:vimsyn_embed") let g:vimsyn_embed = 'l' endif @@ -1089,7 +1092,9 @@ if !exists("skip_vim_syntax_inits") hi def link vimCmplxRepeat SpecialChar hi def link vimCommand Statement hi def link vimComment Comment + hi def link vimCommentError vimError hi def link vim9Comment Comment + hi def link vim9CommentError vimError hi def link vimCommentString vimString hi def link vimCommentTitle PreProc hi def link vim9CommentTitle PreProc @@ -1098,7 +1103,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimContinue Special hi def link vimContinueComment vimComment hi def link vimCtrlChar SpecialChar - hi def link vimDefComment vimComment + hi def link vimDefComment vim9Comment hi def link vimDefKey vimCommand hi def link vimDefParam vimVar hi def link vimEcho vimCommand -- cgit From be999e6a0e5b251b2b37500d06636d4167334c6e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 23 Jun 2024 12:00:49 +0200 Subject: vim-patch:01a4fb1: runtime(java): Compose "g:java_highlight_signature" and "g:java_highlight_functions" With the variables defined, distinctly highlight parts of a method declaration header: its name and parameter list parens, from its type parameters, return type, and formal parameters; and distinctly highlight parts of a lambda expression: its parameter list parens and the arrow, from its formal parameters and identifiers. closes: vim/vim#15083 https://github.com/vim/vim/commit/01a4fb104dbee6a8b7ef20394a2a7c5b49cf49ca Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com> --- runtime/syntax/java.vim | 76 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 16 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index b612ccaaad..4beeaad224 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Jun 19 +" Last Change: 2024 Jun 22 " Please check :help java.vim for comments on some of the options available. @@ -139,6 +139,12 @@ else let [s:ff.Engine, s:ff.UpperCase, s:ff.LowerCase] = repeat([s:ff.RightConstant], 3) endif +if exists("java_highlight_signature") + let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.LeftConstant], 3) +else + let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.RightConstant], 3) +endif + " Java modules (since Java 9, for "module-info.java" file). if s:module_info_cur_buf syn keyword javaModuleStorageClass module transitive @@ -228,9 +234,17 @@ if exists("java_highlight_all") || exists("java_highlight_java") || exists("ja hi def link javaE_ javaExceptions hi def link javaC_ javaConstant - syn keyword javaLangObject clone equals finalize getClass hashCode - syn keyword javaLangObject notify notifyAll toString wait - hi def link javaLangObject javaConstant + syn keyword javaLangObject getClass notify notifyAll wait + + " Lower the syntax priority of overridable java.lang.Object method + " names for zero-width matching (define g:java_highlight_signature + " and see their base declarations for java.lang.Object): + syn match javaLangObject "\" + syn match javaLangObject "\" + syn match javaLangObject "\" + syn match javaLangObject "\" + syn match javaLangObject "\" + hi def link javaLangObject javaConstant endif if filereadable(expand(":p:h") . "/javaid.vim") @@ -364,30 +378,49 @@ syn match javaSpecial "\\u\x\x\x\x" if exists("java_highlight_functions") syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaGenerics,javaType,javaVarArg,javaComment,javaLineComment + if exists("java_highlight_signature") + syn keyword javaParamModifier contained final + syn cluster javaFuncParams add=javaParamModifier + hi def link javaParamModifier javaConceptKind + hi def link javaFuncDefStart javaFuncDef + else + syn cluster javaFuncParams add=javaScopeDecl,javaConceptKind,javaStorageClass,javaExternal + endif + if java_highlight_functions =~# '^indent[1-8]\=$' let s:last = java_highlight_functions[-1 :] let s:indent = s:last != 't' ? repeat("\x20", s:last) : "\t" - syn cluster javaFuncParams add=javaScopeDecl,javaConceptKind,javaStorageClass,javaExternal " Try to not match other type members, initialiser blocks, enum " constants (JLS-17, §8.9.1), and constructors (JLS-17, §8.1.7): " at any _conventional_ indentation, skip over all fields with " "[^=]*", all records with "\]\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^=]*\%(\]\+>\+\s\+\|\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)\+\)\=\%(\<\K\k*\>\.\)*\K\k*\>[^={]*\%(\\)\s\+\)*p\%(ublic\|rotected\|rivate\)\s\+\%(<[^>]\+>\+\s\+\)\=\K\k*\s*\ze(+ contains=javaAnnotation,javaScopeDecl' - exec 'syn match javaEnumSkipArgumentativeConstant transparent +^' . s:indent . '\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\K\k*\s*\ze(+ contains=javaAnnotation' + exec 'syn match javaConstructorSkipDeclarator transparent /^' . s:indent . '\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*p\%(ublic\|rotected\|rivate\)\s\+\%(<[^>]\+>\+\s\+\)\=\K\k*\s*\ze(/ contains=javaAnnotation,javaScopeDecl,javaClassDecl,javaTypedef,javaGenerics' + " With a zero-width span for signature applicable on demand to + " javaFuncDef, make related adjustments: + " (1) Claim all enum constants of a line as a unit. + exec 'syn match javaEnumSkipConstant contained transparent /^' . s:indent . '\%(\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\K\k*\s*\%((.*)\)\=\s*[,;({]\s*\)\+/ contains=@javaEnumConstants' + " (2) Define a syntax group for top level enumerations and tell + " apart their constants from method declarations. + exec 'syn region javaTopEnumDeclaration transparent start=/\%(^\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(strictfp\s\+\)\=\] Τʬ[<γ>][[][]] μʭʭ(/* ... */); - exec 'syn region javaFuncDef start=/' . s:ff.Engine('\%#=2', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<.*[[:space:]-]\@' . s:ff.Peek('1', '') . '\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\)\%(\[\]\)*\)\s\+\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams' + exec 'syn region javaFuncDef ' . s:ff.GroupArgs('transparent matchgroup=javaFuncDefStart', '') . ' start=/' . s:ff.Engine('\%#=2', '') . s:ff.PeekTo('\%(', '') . '^\s\+\%(\%(@\%(\K\k*\.\)*\K\k*\>\)\s\+\)*\%(p\%(ublic\|rotected\|rivate\)\s\+\)\=\%(\%(abstract\|default\)\s\+\|\%(\%(final\|\%(native\|strictfp\)\|s\%(tatic\|ynchronized\)\)\s\+\)*\)\=\%(<.*[[:space:]-]\@' . s:ff.Peek('1', '') . '\s\+\)\=\%(void\|\%(b\%(oolean\|yte\)\|char\|short\|int\|long\|float\|double\|\%(\<\K\k*\>\.\)*\<' . s:ff.UpperCase('[$_[:upper:]]', '[^a-z0-9]') . '\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\)\%(\[\]\)*\)\s\+' . s:ff.PeekFrom('\)\@' . s:ff.Peek('80', '') . '<=', '') . '\<' . s:ff.LowerCase('[$_[:lower:]]', '[^A-Z0-9]') . '\k*\>\s*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=@javaFuncParams' endif endif @@ -466,19 +499,29 @@ hi def link javaParenError javaError " Lambda expressions (JLS-17, §15.27). if exists("java_highlight_functions") + if exists("java_highlight_signature") + let s:ff.LambdaDef = s:ff.LeftConstant + else + let s:ff.LambdaDef = s:ff.RightConstant + endif + " Make ()-matching definitions after the parenthesis error catcher. " + " Note that here and elsewhere a single-line token is used for \z, + " with other tokens repeated as necessary, to overcome the lack of + " support for multi-line matching with \z. + " " Match: ([@A [@B ...] final] var a[, var b, ...]) -> " | ([@A [@B ...] final] T[<α>][[][]] a[, T b, ...]) -> " There is no recognition of expressions interspersed with comments " or of expressions whose parameterised parameter types are written " across multiple lines. - exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%((\_.\{-1,})\)\{-,1}[[:space:]\n]\+\)*\%(final[[:space:]\n]\+\)\=\%(\<\K\k*\>\.\)*\<\K\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\%(\%(\%(\[\]\)\+\|\.\.\.\)\)\=[[:space:]\n]\+\<\K\k*\>\%(\[\]\)*\%(,[[:space:]\n]*\)\=\)\+)[[:space:]\n]*->" contains=javaAnnotation,javaParamModifier,javaLambdaVarType,javaType,@javaClasses,javaGenerics,javaVarArg' + exec 'syn ' . s:ff.LambdaDef('region javaLambdaDef transparent matchgroup=javaLambdaDefStart start=/', 'match javaLambdaDef "') . '\k\@' . s:ff.Peek('4', '') . '\%((\_.\{-1,})\)\{-,1}[[:space:]\n]\+\)*\%(final[[:space:]\n]\+\)\=\%(\<\K\k*\>\.\)*\<\K\k*\>\%(<[^(){}]*[[:space:]-]\@' . s:ff.Peek('1', '') . '\)\=\%(\%(\%(\[\]\)\+\|\.\.\.\)\)\=[[:space:]\n]\+\<\K\k*\>\%(\[\]\)*\%(,[[:space:]\n]*\)\=\)\+)[[:space:]\n]*' . s:ff.LambdaDef('\z(->\)\)\@=/ end=/)[[:space:]\n]*\z1/', '->"') . ' contains=javaAnnotation,javaParamModifier,javaLambdaVarType,javaType,@javaClasses,javaGenerics,javaVarArg' " Match: () -> " | (a[, b, ...]) -> - exec 'syn match javaLambdaDef "\k\@' . s:ff.Peek('4', '') . '\%(,[[:space:]\n]*\)\=\)*)[[:space:]\n]*->"' + exec 'syn ' . s:ff.LambdaDef('region javaLambdaDef transparent matchgroup=javaLambdaDefStart start=/', 'match javaLambdaDef "') . '\k\@' . s:ff.Peek('4', '') . '\%(,[[:space:]\n]*\)\=\)*)[[:space:]\n]*' . s:ff.LambdaDef('\z(->\)\)\@=/ end=/)[[:space:]\n]*\z1/', '->"') " Match: a -> - exec 'syn match javaLambdaDef "\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '"' + exec 'syn ' . s:ff.LambdaDef('region javaLambdaDef transparent start=/', 'match javaLambdaDef "') . '\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '\)\)\@=/ matchgroup=javaLambdaDefStart end=/\z1/', '[[:space:]\n]*->"') syn keyword javaParamModifier contained final hi def link javaParamModifier javaConceptKind @@ -488,7 +531,7 @@ endif " The @javaTop cluster comprises non-contained Java syntax groups. " Note that the syntax file "aidl.vim" relies on its availability. -syn cluster javaTop contains=TOP +syn cluster javaTop contains=TOP,javaTopEnumDeclaration if !exists("java_minlines") let java_minlines = 10 @@ -504,7 +547,8 @@ exec "syn sync ccomment javaComment minlines=" . java_minlines " The default highlighting. hi def link javaLambdaDef Function -hi def link javaFuncDef Function +hi def link javaLambdaDefStart Function +hi def link javaFuncDef Function hi def link javaVarArg Function hi def link javaBranch Conditional hi def link javaUserLabelRef javaUserLabel -- cgit From 12c9791e0fef7ee0d6cf6d3b828caa488d6347ea Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 3 Jul 2024 15:24:12 +0800 Subject: fix(runtime): stop treesitter highlight in b:undo_ftplugin (#29533) It seems that nvim-treesitter stops treesitter highlight when changing filetype, so it makes sense for builtin ftplugins to do this as well. Use :call and v:lua here to allow separation with '|'. --- runtime/syntax/query.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/query.lua b/runtime/syntax/query.lua index 1e129dbeff..2dfe29f69b 100644 --- a/runtime/syntax/query.lua +++ b/runtime/syntax/query.lua @@ -1,6 +1,6 @@ -- Neovim syntax file -- Language: Treesitter query --- Last Change: 2022 Apr 13 +-- Last Change: 2024 Jul 03 -- it's a lisp! -vim.cmd([[ runtime! syntax/lisp.vim ]]) +vim.cmd([[runtime! syntax/lisp.vim]]) -- cgit From 0803ac7b085c75f55849949367b20a796b50b86e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 4 Jul 2024 11:54:19 +0200 Subject: vim-patch:3d2a996: runtime(dockerfile): enable spellchecking of comments in syntax script closes: vim/vim#15147 https://github.com/vim/vim/commit/3d2a996267758284c85b893401d2e331496eb154 Co-authored-by: Kafva <36083692+Kafva@users.noreply.github.com> --- runtime/syntax/dockerfile.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/dockerfile.vim b/runtime/syntax/dockerfile.vim index ce52e697cd..6ec71fcdb6 100644 --- a/runtime/syntax/dockerfile.vim +++ b/runtime/syntax/dockerfile.vim @@ -1,6 +1,6 @@ " dockerfile.vim - Syntax highlighting for Dockerfiles " Maintainer: Honza Pokorny -" Last Change: 2020 Feb 11 +" Last Change: 2024 Jul 03 " License: BSD " https://docs.docker.com/engine/reference/builder/ @@ -34,7 +34,7 @@ syntax region dockerfileJSON contained keepend start=/\v\[/ skip=/\v\\\_./ end syntax region dockerfileShell contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=@Shell syntax region dockerfileValue contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=dockerfileString -syntax region dockerfileComment start=/\v^\s*#/ end=/\v$/ +syntax region dockerfileComment start=/\v^\s*#/ end=/\v$/ contains=@Spell set commentstring=#\ %s hi def link dockerfileString String -- cgit From 055a222797e46a046a365707e4e0dc957e46c648 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 8 Jul 2024 06:51:23 +0800 Subject: vim-patch:e85fdc7: runtime(vim): Update base-syntax, improve :match command highlighting (#29607) Match group and pattern arguments to :match commands. closes: vim/vim#15096 https://github.com/vim/vim/commit/e85fdc730e2a538db9af72a255207aa3d5f3fafc Co-authored-by: Doug Kearns --- runtime/syntax/vim.vim | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index a3bfc70267..e5b0c24447 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -165,7 +165,7 @@ syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSub syn case match " All vimCommands are contained by vimIsCommand. {{{2 -syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1 syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" @@ -645,6 +645,15 @@ endif syn match vimNotFunc "\\|\\|\\|\" skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation +" Match: {{{2 +" ===== +syn match vimMatch "\<[23]\=mat\%[ch]\>" skipwhite nextgroup=vimMatchGroup,vimMatchNone +syn match vimMatchGroup contained "[[:alnum:]._-]\+" skipwhite nextgroup=vimMatchPattern +syn case ignore +syn keyword vimMatchNone contained none +syn case match +syn region vimMatchPattern contained matchgroup=Delimiter start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSubstList oneline + " Norm: {{{2 " ==== syn match vimNorm "\ Date: Mon, 8 Jul 2024 10:44:16 +0200 Subject: vim-patch:8906e22: runtime(kivy): update kivy syntax, include ftplugin Kivy uses "#:" for preprocessing commands (like "#:import ...") which were overridden by the comment syntax. This has been changed, and a commentstring has been added. closes: vim/vim#15163 https://github.com/vim/vim/commit/8906e22df5223e012092eaee491a00534ba9f4b5 Co-authored-by: Riley Bruins --- runtime/syntax/kivy.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/kivy.vim b/runtime/syntax/kivy.vim index b145503478..76e3576e78 100644 --- a/runtime/syntax/kivy.vim +++ b/runtime/syntax/kivy.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Kivy " Maintainer: Corey Prophitt -" Last Change: May 29th, 2014 +" Last Change: Jul 6th, 2024 " Version: 1 " URL: http://kivy.org/ @@ -17,7 +17,7 @@ syn include @pyth $VIMRUNTIME/syntax/python.vim " Define Kivy syntax syn match kivyPreProc /#:.*/ -syn match kivyComment /#.*/ +syn match kivyComment /#[^:].*/ syn match kivyRule /<\I\i*\(,\s*\I\i*\)*>:/ syn match kivyAttribute /\<\I\i*\>/ nextgroup=kivyValue -- cgit From f3c7fb9db176f32606e83eb47cc7549300191d2f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 9 Jul 2024 18:36:03 +0200 Subject: vim-patch:73a8108: runtime(tmux): Update syntax script closes: vim/vim#15195 related: vim/vim#15188 https://github.com/vim/vim/commit/73a810817b9bea7ce31e625bf5519b6a02f53d41 Co-authored-by: Eric Pruitt Co-authored-by: Contsantine Bulany <61948252+lostl1ght@users.noreply.github.com> --- runtime/syntax/tmux.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/tmux.vim b/runtime/syntax/tmux.vim index 9766ed55d7..80636f2c58 100644 --- a/runtime/syntax/tmux.vim +++ b/runtime/syntax/tmux.vim @@ -1,5 +1,5 @@ " Language: tmux(1) configuration file -" Version: 3.4 (git-608d1134) +" Version: 3.4 (git-171004df) " URL: https://github.com/ericpruitt/tmux.vim/ " Maintainer: Eric Pruitt " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) @@ -28,7 +28,7 @@ syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display syn match tmuxNumber /\<\d\+\>/ display syn match tmuxFlags /\s-\a\+/ display syn match tmuxVariableExpansion /\$\({[A-Za-z_]\w*}\|[A-Za-z_]\w*\)/ display -syn match tmuxControl /\(^\|\s\)%\(if\|elif\|else\|endif\)\($\|\s\)/ display +syn match tmuxControl /\(^\|\s\)%\(if\|elif\|else\|endif\|hidden\)\($\|\s\)/ display syn match tmuxEscape /\\\(u\x\{4\}\|U\x\{8\}\|\o\{3\}\|[\\ernt$]\)/ display " Missing closing bracket. @@ -99,11 +99,11 @@ syn keyword tmuxOptions \ after-set-environment after-set-hook after-set-option after-show-environment \ after-show-messages after-show-options after-split-window after-unbind-key \ aggressive-resize alert-activity alert-bell alert-silence allow-passthrough -\ allow-rename alternate-screen assume-paste-time automatic-rename -\ automatic-rename-format backspace base-index bell-action buffer-limit -\ client-active client-attached client-detached client-focus-in +\ allow-rename allow-set-title alternate-screen assume-paste-time +\ automatic-rename automatic-rename-format backspace base-index bell-action +\ buffer-limit client-active client-attached client-detached client-focus-in \ client-focus-out client-resized client-session-changed clock-mode-color -\ clock-mode-colour clock-mode-style command-alias copy-command +\ clock-mode-colour clock-mode-style command-alias command-error copy-command \ copy-mode-current-match-style copy-mode-mark-style copy-mode-match-style \ cursor-color cursor-colour cursor-style default-command default-shell \ default-size default-terminal destroy-unattached detach-on-destroy -- cgit From 136c11ca22881ac64c074070c7fda501e89b6bea Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 9 Jul 2024 19:15:22 +0200 Subject: vim-patch:9.1.0550: filetype: antlr4 files are not recognized Problem: filetype: antlr4 files are not recognized Solution: Detect '*.g4' as antlr4 filetype, include a simple antlr4 syntax and filetype plugin (Yinzuo Jiang) closes: vim/vim#15191 https://github.com/vim/vim/commit/4a7a4a3675b6ad90a525524ba4684925df212325 Co-authored-by: Yinzuo Jiang --- runtime/syntax/antlr4.vim | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 runtime/syntax/antlr4.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/antlr4.vim b/runtime/syntax/antlr4.vim new file mode 100644 index 0000000000..33cc865ccc --- /dev/null +++ b/runtime/syntax/antlr4.vim @@ -0,0 +1,30 @@ +" Vim syntax file +" Language: ANTLR4, ANother Tool for Language Recognition v4 +" Maintainer: Yinzuo Jiang +" Last Change: 2024 July 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Keywords. See https://github.com/antlr/antlr4/blob/4.13.1/doc/lexicon.md +syn keyword antlr4Include import +" https://github.com/antlr/antlr4/blob/4.13.1/doc/options.md +" https://github.com/antlr/antlr4/blob/4.13.1/doc/grammars.md +syn keyword antlr4Structure fragment lexer parser grammar options channels tokens mode +syn keyword antlr4Statement returns locals +syn keyword antlr4Exceptions throws catch finally + +" Comments. +syn keyword antlr4Todo contained TODO FIXME XXX NOTE +syn region antlr4Comment start="//" end="$" contains=antlr4Todo,@Spell +syn region antlr4Comment start="/\*" end="\*/" contains=antlr4Todo,@Spell + +hi def link antlr4Include Include +hi def link antlr4Structure Structure +hi def link antlr4Statement Statement +hi def link antlr4Exceptions Structure +hi def link antlr4Comment Comment + +let b:current_syntax = "antlr4" -- cgit From 83f42aa450582594f0be044c9f0710809ef0f93d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 12 Jul 2024 07:11:54 +0800 Subject: vim-patch:9.1.0568: Cannot expand paths from 'cdpath' setting Problem: Cannot expand paths from 'cdpath' setting (Daniel Hahler) Solution: Implement 'cdpath' completion, add the new 'dir_in_path' completion type (LemonBoy) fixes vim/vim#374 closes: vim/vim#15205 https://github.com/vim/vim/commit/a20bf69a3b32024cb7809be87af33bf9dc490a19 Co-authored-by: LemonBoy --- runtime/syntax/vim.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index e5b0c24447..4262636496 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -353,7 +353,7 @@ endif syn case ignore syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] " GEN_SYN_VIM: vimUserAttrbCmplt, START_STR='syn keyword vimUserAttrbCmplt contained', END_STR='' -syn keyword vimUserAttrbCmplt contained arglist augroup behave buffer color command compiler cscope diff_buffer dir environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages syntax syntime option packadd runtime shellcmd sign tag tag_listfiles user var breakpoint scriptnames +syn keyword vimUserAttrbCmplt contained arglist augroup behave buffer color command compiler cscope diff_buffer dir environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages syntax syntime option packadd runtime shellcmd sign tag tag_listfiles user var breakpoint scriptnames dir_in_path syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError -- cgit From f4beab7ad825d5b8958526efd715f96678ba6f50 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 11 Jul 2024 22:46:53 +0200 Subject: vim-patch:7a22cb8: runtime(fstab): Add missing keywords to fstab syntax Added overlay, tracefs and fixed the "none" keyword in the fstab syntax definition. closes: vim/vim#15217 https://github.com/vim/vim/commit/7a22cb81415060215d28c1601a0b35755449bf87 Co-authored-by: Christian Brabandt --- runtime/syntax/fstab.vim | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim index 91150bc37b..64d5bee3d0 100644 --- a/runtime/syntax/fstab.vim +++ b/runtime/syntax/fstab.vim @@ -2,8 +2,8 @@ " Language: fstab file " Maintainer: Radu Dineiu " URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim -" Last Change: 2023 Feb 19 -" Version: 1.6.3 +" Last Change: 2024 Jul 11 +" Version: 1.6.4 " " Credits: " David Necas (Yeti) @@ -35,7 +35,7 @@ syn match fsOperator /[,=:#]/ " Device syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained -syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs +syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs tracefs overlay syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL @@ -56,7 +56,7 @@ syn keyword fsMountPointKeyword contained none swap " Type syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown syn match fsTypeUnknown /\s\+\zs\w\+/ contained -syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 ceph cfs cgroup cifs coda coherent configfs cpuset cramfs debugfs devfs devpts devtmpfs dlmfs e2compr ecryptfs efivarfs efs erofs exfat ext2 ext2fs ext3 ext4 f2fs fdesc ffs filecore fuse fuseblk fusectl gfs2 hfs hfsplus hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfs4 nfsd nilfs2 none ntfs ntfs3 null nwfs ocfs2 omfs overlay ovlfs pipefs portal proc procfs pstore ptyfs pvfs2 qnx4 qnx6 reiserfs ramfs romfs rpc_pipefs securityfs shm smbfs spufs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs ubifs udf ufs umap umsdos union usbfs userfs v9fs vfat virtiofs vs3fs vxfs wrapfs wvfs xenfs xenix xfs zisofs zonefs +syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 ceph cfs cgroup cifs coda coherent configfs cpuset cramfs debugfs devfs devpts devtmpfs dlmfs e2compr ecryptfs efivarfs efs erofs exfat ext2 ext2fs ext3 ext4 f2fs fdesc ffs filecore fuse fuseblk fusectl gfs2 hfs hfsplus hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfs4 nfsd nilfs2 none ntfs ntfs3 null nwfs ocfs2 omfs overlay ovlfs pipefs portal proc procfs pstore ptyfs pvfs2 qnx4 qnx6 reiserfs ramfs romfs rpc_pipefs securityfs shm smbfs spufs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs tracefs ubifs udf ufs umap umsdos union usbfs userfs v9fs vfat virtiofs vs3fs vxfs wrapfs wvfs xenfs xenix xfs zisofs zonefs " Options " ------- @@ -80,10 +80,10 @@ syn match fsOptionsKeywords contained /\ Date: Fri, 12 Jul 2024 11:24:11 +0200 Subject: vim-patch:57f7d75: runtime(logindefs): update syntax with new keywords * add keywords * enforce octal format for permissions closes: vim/vim#15222 https://github.com/vim/vim/commit/57f7d75591da0ec91068741eefbad295be8f78b4 Co-authored-by: Eisuke Kawashima --- runtime/syntax/logindefs.vim | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/logindefs.vim b/runtime/syntax/logindefs.vim index 8cb4295eda..51fa19992c 100644 --- a/runtime/syntax/logindefs.vim +++ b/runtime/syntax/logindefs.vim @@ -1,7 +1,8 @@ -" Vim syntax file +" Vim syntax file for login.defs(5) " Language: login.defs(5) configuration file " Previous Maintainer: Nikolai Weibull " Latest Revision: 2010-11-29 +" 2024 Jul 12 by Vim Project: Update keywords if exists("b:current_syntax") finish @@ -35,6 +36,8 @@ syn keyword logindefsBooleanKeyword contained \ CREATE_HOME \ DEFAULT_HOME \ FAILLOG_ENAB + \ FORCE_SHADOW + \ GRANT_AUX_GROUP_SUBIDS \ LASTLOG_ENAB \ LOG_OK_LOGINS \ LOG_UNKFAIL_ENAB @@ -54,15 +57,20 @@ syn keyword logindefsBoolean contained yes no syn keyword logindefsEncryptKeyword contained \ ENCRYPT_METHOD + \ HMAC_CRYPTO_ALGO \ nextgroup=logindefsEncryptMethod skipwhite syn keyword logindefsEncryptMethod contained + \ BCRYPT \ DES \ MD5 \ SHA256 \ SHA512 + \ YESCRYPT syn keyword logindefsNumberKeyword contained + \ BCRYPT_MAX_ROUNDS + \ BCRYPT_MIN_ROUNDS \ ERASECHAR \ FAIL_DELAY \ GID_MAX @@ -79,6 +87,12 @@ syn keyword logindefsNumberKeyword contained \ PASS_MIN_LEN \ SHA_CRYPT_MAX_ROUNDS \ SHA_CRYPT_MIN_ROUNDS + \ SUB_GID_COUNT + \ SUB_GID_MAX + \ SUB_GID_MIN + \ SUB_UID_COUNT + \ SUB_UID_MAX + \ SUB_UID_MIN \ SYS_GID_MAX \ SYS_GID_MIN \ SYS_UID_MAX @@ -86,9 +100,15 @@ syn keyword logindefsNumberKeyword contained \ UID_MAX \ UID_MIN \ ULIMIT - \ UMASK + \ YESCRYPT_COST_FACTOR \ nextgroup=@logindefsNumber skipwhite +syn keyword logindefsNumberKeyword contained + \ HOME_MODE + \ TTYPERM + \ UMASK + \ nextgroup=logindefsOctal,logindefsOctalError skipwhite + syn cluster logindefsNumber contains= \ logindefsDecimal, \ logindefsHex, @@ -114,6 +134,7 @@ syn keyword logindefsPathKeyword contained \ MAIL_DIR \ MAIL_FILE \ NOLOGINS_FILE + \ NONEXISTENT \ SULOG_FILE \ TTYTYPE_FILE \ nextgroup=logindefsPath skipwhite @@ -138,9 +159,9 @@ syn keyword logindefsStringKeyword contained \ ENV_HZ \ ENV_TZ \ LOGIN_STRING + \ PREVENT_NO_AUTH \ SU_NAME \ TTYGROUP - \ TTYPERM \ USERDEL_CMD \ nextgroup=logindefsString skipwhite -- cgit From 79130c0fd393e3eef8e4c939c54ea3d3faec2149 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 14 Jul 2024 17:26:40 +0200 Subject: vim-patch:9.1.0586: ocaml runtime files are outdated Problem: ocaml runtime files are outdated Solution: sync those files with the upstream repo, detect a few more ocaml files (Yinzuo Jiang) closes: vim/vim#15260 https://github.com/vim/vim/commit/700cf8cfa1e926e2ba676203b3ad90c2c2083f1d Co-authored-by: Yinzuo Jiang --- runtime/syntax/dune.vim | 3 + runtime/syntax/ocaml.vim | 407 +++++++++++++++++++++++++++++++++++++++-------- runtime/syntax/opam.vim | 52 +++++- 3 files changed, 388 insertions(+), 74 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/dune.vim b/runtime/syntax/dune.vim index b4254057c0..3cfb47fbee 100644 --- a/runtime/syntax/dune.vim +++ b/runtime/syntax/dune.vim @@ -4,6 +4,7 @@ " Anton Kochkov " URL: https://github.com/ocaml/vim-ocaml " Last Change: +" 2023 Nov 24 - Add end-of-line strings (Samuel Hym) " 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes) " 2018 May 8 - Check current_syntax (Kawahara Satoru) " 2018 Mar 29 - Extend jbuild syntax with more keywords (Petter A. Urkedal) @@ -38,6 +39,8 @@ syn keyword lispFunc ignore-stdout ignore-stderr ignore-outputs syn keyword lispFunc with-stdout-to with-stderr-to with-outputs-to syn keyword lispFunc write-file system bash +syn region lispString start=+"\\[>|]+ end=+$+ contains=@Spell + syn cluster lispBaseListCluster add=duneVar syn match duneVar '\${[@<^]}' containedin=lispSymbol syn match duneVar '\${\k\+\(:\k\+\)\?}' containedin=lispSymbol diff --git a/runtime/syntax/ocaml.vim b/runtime/syntax/ocaml.vim index af3efd3dab..04ba39203d 100644 --- a/runtime/syntax/ocaml.vim +++ b/runtime/syntax/ocaml.vim @@ -6,6 +6,7 @@ " Issac Trotts " URL: https://github.com/ocaml/vim-ocaml " Last Change: +" 2019 Nov 05 - Accurate type highlighting (Maëlan) " 2018 Nov 08 - Improved highlighting of operators (Maëlan) " 2018 Apr 22 - Improved support for PPX (Andrey Popp) " 2018 Mar 16 - Remove raise, lnot and not from keywords (Étienne Millon, "copy") @@ -38,25 +39,18 @@ syn case match " Access to the method of an object syn match ocamlMethod "#" -" Script headers highlighted like comments -syn match ocamlComment "^#!.*" contains=@Spell - " Scripting directives syn match ocamlScript "^#\<\(quit\|labels\|warnings\|warn_error\|directory\|remove_directory\|cd\|load\|load_rec\|use\|mod_use\|install_printer\|remove_printer\|require\|list\|ppx\|principal\|predicates\|rectypes\|thread\|trace\|untrace\|untrace_all\|print_depth\|print_length\|camlp4o\|camlp4r\|topfind_log\|topfind_verbose\)\>" " lowercase identifier - the standard way to match syn match ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/ -syn match ocamlKeyChar "|" - " Errors syn match ocamlBraceErr "}" syn match ocamlBrackErr "\]" syn match ocamlParenErr ")" syn match ocamlArrErr "|]" -syn match ocamlCommentErr "\*)" - syn match ocamlCountErr "\" syn match ocamlCountErr "\" @@ -75,19 +69,22 @@ else syn match ocamlEndErr "\" endif -" Some convenient clusters -syn cluster ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr +" These keywords are only expected nested in constructions that are handled by +" the type linter, so outside of type contexts we highlight them as errors: +syn match ocamlKwErr "\<\(mutable\|nonrec\|of\|private\)\>" -syn cluster ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr +" Some convenient clusters +syn cluster ocamlAllErrs contains=@ocamlAENoParen,ocamlParenErr +syn cluster ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr,ocamlKwErr -syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod,ocamlVal +syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlModTypePre,ocamlModRHS,ocamlFuncWith,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlFullMod,ocamlVal " Enclosing delimiters -syn region ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr -syn region ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}" contains=ALLBUT,@ocamlContained,ocamlBraceErr -syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr -syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr +syn region ocamlNone transparent matchgroup=ocamlEncl start="(" matchgroup=ocamlEncl end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr +syn region ocamlNone transparent matchgroup=ocamlEncl start="{" matchgroup=ocamlEncl end="}" contains=ALLBUT,@ocamlContained,ocamlBraceErr +syn region ocamlNone transparent matchgroup=ocamlEncl start="\[" matchgroup=ocamlEncl end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr +syn region ocamlNone transparent matchgroup=ocamlEncl start="\[|" matchgroup=ocamlEncl end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr " Comments @@ -124,10 +121,6 @@ syn region ocamlPpx matchgroup=ocamlPpxEncl start="\[@\{1,3\}" contains=TOP end= "" Modules -" "sig" -syn region ocamlSig matchgroup=ocamlSigEncl start="\" matchgroup=ocamlSigEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule -syn region ocamlModSpec matchgroup=ocamlKeyword start="\" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr - " "open" syn match ocamlKeyword "\" skipwhite skipempty nextgroup=ocamlFullMod @@ -135,51 +128,66 @@ syn match ocamlKeyword "\" skipwhite skipempty nextgroup=ocamlFullMod syn match ocamlKeyword "\" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod " "module" - somewhat complicated stuff ;-) -syn region ocamlModule matchgroup=ocamlKeyword start="\" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef -syn region ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|=\|)"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHS -syn region ocamlModParam start="([^*]" end=")" contained contains=ocamlGenMod,ocamlModParam1,ocamlSig,ocamlVal +" 2022-10: please document it? +syn region ocamlModule matchgroup=ocamlKeyword start="\" matchgroup=ocamlModule end="\<_\|\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef +syn region ocamlPreDef start="."me=e-1 end="[a-z:=)]\@=" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod,ocamlModTypeRestr nextgroup=ocamlModTypePre,ocamlModPreRHS +syn region ocamlModParam start="(\*\@!" end=")" contained contains=ocamlGenMod,ocamlModParam,ocamlModParam1,ocamlSig,ocamlVal syn match ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty syn match ocamlGenMod "()" contained skipwhite skipempty -syn region ocamlMPRestr start=":" end="."me=e-1 contained contains=@ocamlComment skipwhite skipempty nextgroup=ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3 -syn region ocamlMPRestr1 matchgroup=ocamlSigEncl start="\ssig\s\=" matchgroup=ocamlSigEncl end="\" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule -syn region ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2 -syn match ocamlMPRestr3 "\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*" contained +syn match ocamlModTypePre ":" contained skipwhite skipempty nextgroup=ocamlModTRWith,ocamlSig,ocamlFunctor,ocamlModTypeRestr,ocamlModTypeOf +syn match ocamlModTypeRestr "\<\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*\>" contained + syn match ocamlModPreRHS "=" contained skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod syn keyword ocamlKeyword val -syn region ocamlVal matchgroup=ocamlKeyword start="\" matchgroup=ocamlLCIdentifier end="\<\l\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment,ocamlFullMod skipwhite skipempty nextgroup=ocamlMPRestr +syn region ocamlVal matchgroup=ocamlKeyword start="\" matchgroup=ocamlLCIdentifier end="\<\l\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment,ocamlFullMod skipwhite skipempty nextgroup=ocamlModTypePre syn region ocamlModRHS start="." end=". *\w\|([^*]"me=e-2 contained contains=ocamlComment skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod syn match ocamlFullMod "\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=ocamlFuncWith -syn region ocamlFuncWith start="([^*)]"me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWith -syn region ocamlFuncStruct matchgroup=ocamlStructEncl start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlStructEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr +syn region ocamlFuncWith start="([*)]\@!" end=")" contained contains=ocamlComment,ocamlWith,ocamlStruct skipwhite skipempty nextgroup=ocamlFuncWith -syn match ocamlModTypeRestr "\<\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*\>" contained -syn region ocamlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@ocamlAENoParen,ocamlWith +syn region ocamlModTRWith start="(\*\@!" end=")" contained contains=@ocamlAENoParen,ocamlWith syn match ocamlWith "\<\(\u\(\w\|'\)* *\. *\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlWithRest syn region ocamlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@ocamlContained " "struct" syn region ocamlStruct matchgroup=ocamlStructEncl start="\<\(module\s\+\)\=struct\>" matchgroup=ocamlStructEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr +" "sig" +syn region ocamlSig matchgroup=ocamlSigEncl start="\" matchgroup=ocamlSigEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr + +" "functor" +syn region ocamlFunctor start="\" matchgroup=ocamlKeyword end="->" contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod skipwhite skipempty nextgroup=ocamlStruct,ocamlSig,ocamlFuncWith,ocamlFunctor + " "module type" -syn region ocamlKeyword start="\\s*\\(\s*\\)\=" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDef +syn region ocamlModTypeOf start="\" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDef syn match ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s+1 skipwhite skipempty nextgroup=ocamlFullMod " Quoted strings syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{\z\([a-z_]*\)|" end="|\z1}" contains=@Spell +syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{%[a-z_]\+\(\.[a-z_]\+\)\?\( \z\([a-z_]\+\)\)\?|" end="|\z1}" contains=@Spell syn keyword ocamlKeyword and as assert class -syn keyword ocamlKeyword constraint else -syn keyword ocamlKeyword exception external fun - +syn keyword ocamlKeyword else +syn keyword ocamlKeyword external syn keyword ocamlKeyword in inherit initializer syn keyword ocamlKeyword lazy let match -syn keyword ocamlKeyword method mutable new nonrec of -syn keyword ocamlKeyword parser private rec -syn keyword ocamlKeyword try type +syn keyword ocamlKeyword method new +syn keyword ocamlKeyword parser rec +syn keyword ocamlKeyword try syn keyword ocamlKeyword virtual when while with +" Keywords which are handled by the type linter: +" as (within a type equation) +" constraint exception mutable nonrec of private type + +" The `fun` keyword has special treatment because of the syntax `fun … : t -> e` +" where `->` ends the type context rather than being part of it; to handle that, +" we blacklist the ocamlTypeAnnot matchgroup, and we plug ocamlFunTypeAnnot +" instead (later in this file, by using containedin=ocamlFun): +syn region ocamlFun matchgroup=ocamlKeyword start='\' matchgroup=ocamlArrow end='->' +\ contains=ALLBUT,@ocamlContained,ocamlArrow,ocamlInfixOp,ocamlTypeAnnot + if exists("ocaml_revised") syn keyword ocamlKeyword do value syn keyword ocamlBoolean True False @@ -188,14 +196,10 @@ else syn keyword ocamlBoolean true false endif -syn keyword ocamlType array bool char exn float format format4 -syn keyword ocamlType int int32 int64 lazy_t list nativeint option -syn keyword ocamlType bytes string unit - -syn match ocamlConstructor "(\s*)" -syn match ocamlConstructor "\[\s*\]" -syn match ocamlConstructor "\[|\s*>|]" -syn match ocamlConstructor "\[<\s*>\]" +syn match ocamlEmptyConstructor "(\s*)" +syn match ocamlEmptyConstructor "\[\s*\]" +syn match ocamlEmptyConstructor "\[|\s*>|]" +syn match ocamlEmptyConstructor "\[<\s*>\]" syn match ocamlConstructor "\u\(\w\|'\)*\>" " Polymorphic variants @@ -210,26 +214,24 @@ syn match ocamlCharErr "'\\\d\d'\|'\\\d'" syn match ocamlCharErr "'\\[^\'ntbr]'" syn region ocamlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell -syn match ocamlTopStop ";;" - syn match ocamlAnyVar "\<_\>" -syn match ocamlKeyChar "|[^\]]"me=e-1 +syn match ocamlKeyChar "|]\@!" syn match ocamlKeyChar ";" syn match ocamlKeyChar "\~" syn match ocamlKeyChar "?" +" NOTE: for correct precedence, the rule for ";;" must come after that for ";" +syn match ocamlTopStop ";;" + "" Operators " The grammar of operators is found there: " https://caml.inria.fr/pub/docs/manual-ocaml/names.html#operator-name " https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:ext-ops " https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:index-operators -" =, *, < and > are both operator names and keywords, we let the user choose how -" to display them (has to be declared before regular infix operators): +" = is both an operator name and a keyword, we let the user choose how +" to display it (has to be declared before regular infix operators): syn match ocamlEqual "=" -syn match ocamlStar "*" -syn match ocamlAngle "<" -syn match ocamlAngle ">" " Custom indexing operators: syn region ocamlIndexing matchgroup=ocamlIndexingOp \ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*(" @@ -248,8 +250,8 @@ syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+" " Infix and prefix operators: syn match ocamlPrefixOp "![~?!.:|&$%<=>@^*/+-]*" syn match ocamlPrefixOp "[~?][~?!.:|&$%<=>@^*/+-]\+" -syn match ocamlInfixOp "[&$%@^/+-][~?!.:|&$%<=>@^*/+-]*" -syn match ocamlInfixOp "[|<=>*][~?!.:|&$%<=>@^*/+-]\+" +syn match ocamlInfixOp "[&$%<>@^*/+-][~?!.:|&$%<=>@^*/+-]*" +syn match ocamlInfixOp "[|=][~?!.:|&$%<=>@^*/+-]\+" syn match ocamlInfixOp "#[~?!.:|&$%<=>@^*/+-]\+#\@!" syn match ocamlInfixOp "!=[~?!.:|&$%<=>@^*/+-]\@!" syn keyword ocamlInfixOpKeyword asr land lor lsl lsr lxor mod or @@ -266,6 +268,9 @@ else syn match ocamlKeyChar "<-[~?!.:|&$%<=>@^*/+-]\@!" endif +" Script shebang (has to be declared after operators) +syn match ocamlShebang "\%1l^#!.*$" + syn match ocamlNumber "-\=\<\d\(_\|\d\)*[l|L|n]\?\>" syn match ocamlNumber "-\=\<0[x|X]\(\x\|_\)\+[l|L|n]\?\>" syn match ocamlNumber "-\=\<0[o|O]\(\o\|_\)\+[l|L|n]\?\>" @@ -273,10 +278,264 @@ syn match ocamlNumber "-\=\<0[b|B]\([01]\|_\)\+[l|L|n]\?\>" syn match ocamlFloat "-\=\<\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>" " Labels -syn match ocamlLabel "\~\(\l\|_\)\(\w\|'\)*"lc=1 -syn match ocamlLabel "?\(\l\|_\)\(\w\|'\)*"lc=1 +syn match ocamlLabel "[~?]\(\l\|_\)\(\w\|'\)*:\?" syn region ocamlLabel transparent matchgroup=ocamlLabel start="[~?](\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +"" Type contexts + +" How we recognize type contexts is explained in `type-linter-notes.md` +" and a test suite is found in `type-linter-test.ml`. +" +" ocamlTypeExpr is the cluster of things that can make up a type expression +" (in a loose sense, e.g. the “as” keyword and universal quantification are +" included). Regions containing a type expression use it like this: +" +" contains=@ocamlTypeExpr,... +" +" ocamlTypeContained is the cluster of things that can be found in a type +" expression or a type definition. It is not expected to be used in any region, +" it exists solely for throwing things in it that should not pollute the main +" linter. +" +" Both clusters are filled in incrementally. Every match group that is not to be +" found at the main level must be declared as “contained” and added to either +" ocamlTypeExpr or ocamlTypeContained. +" +" In these clusters we don’t put generic things that can also be found elswhere, +" i.e. ocamlComment and ocamlPpx, because everything that is in these clusters +" is also put in ocamlContained and thus ignored by the main linter. + +"syn cluster ocamlTypeExpr contains= +syn cluster ocamlTypeContained contains=@ocamlTypeExpr +syn cluster ocamlContained add=@ocamlTypeContained + +" We’ll use a “catch-all” highlighting group to show as error anything that is +" not matched more specifically; we don’t want spaces to be reported as errors +" (different background color), so we just catch them here: +syn cluster ocamlTypeExpr add=ocamlTypeBlank +syn match ocamlTypeBlank contained "\_s\+" +hi link ocamlTypeBlank NONE + +" NOTE: Carefully avoid catching "(*" here. +syn cluster ocamlTypeExpr add=ocamlTypeParen +syn region ocamlTypeParen contained transparent +\ matchgroup=ocamlEncl start="(\*\@!" +\ matchgroup=ocamlEncl end=")" +\ contains=@ocamlTypeExpr,ocamlComment,ocamlPpx + +syn cluster ocamlTypeExpr add=ocamlTypeKeyChar,ocamlTypeAs +syn match ocamlTypeKeyChar contained "->" +syn match ocamlTypeKeyChar contained "\*" +syn match ocamlTypeKeyChar contained "#" +syn match ocamlTypeKeyChar contained "," +syn match ocamlTypeKeyChar contained "\." +syn keyword ocamlTypeAs contained as +hi link ocamlTypeAs ocamlKeyword + +syn cluster ocamlTypeExpr add=ocamlTypeVariance +syn match ocamlTypeVariance contained "[-+!]\ze *\('\|\<_\>\)" +syn match ocamlTypeVariance contained "[-+] *!\+\ze *\('\|\<_\>\)" +syn match ocamlTypeVariance contained "! *[-+]\+\ze *\('\|\<_\>\)" + +syn cluster ocamlTypeContained add=ocamlTypeEq +syn match ocamlTypeEq contained "[+:]\?=" +hi link ocamlTypeEq ocamlKeyChar + +syn cluster ocamlTypeExpr add=ocamlTypeVar,ocamlTypeConstr,ocamlTypeAnyVar,ocamlTypeBuiltin +syn match ocamlTypeVar contained "'\(\l\|_\)\(\w\|'\)*\>" +syn match ocamlTypeConstr contained "\<\(\l\|_\)\(\w\|'\)*\>" +" NOTE: for correct precedence, the rule for the wildcard (ocamlTypeAnyVar) +" must come after the rule for type constructors (ocamlTypeConstr). +syn match ocamlTypeAnyVar contained "\<_\>" +" NOTE: For correct precedence, these builtin names must occur after the rule +" for type constructors (ocamlTypeConstr) but before the rule for non-optional +" labeled arguments (ocamlTypeLabel). For the latter to take precedence over +" these builtin names, we use “syn match” here instead of “syn keyword”. +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" +syn match ocamlTypeBuiltin contained "\" + +syn cluster ocamlTypeExpr add=ocamlTypeLabel +syn match ocamlTypeLabel contained "?\?\(\l\|_\)\(\w\|'\)*\_s*:[>=]\@!" +hi link ocamlTypeLabel ocamlLabel + +" Object type +syn cluster ocamlTypeExpr add=ocamlTypeObject +syn region ocamlTypeObject contained +\ matchgroup=ocamlEncl start="<" +\ matchgroup=ocamlEncl end=">" +\ contains=ocamlTypeObjectDots,ocamlLCIdentifier,ocamlTypeObjectAnnot,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeObject ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypeObjectDots +syn match ocamlTypeObjectDots contained "\.\." +hi link ocamlTypeObjectDots ocamlKeyChar +syn cluster ocamlTypeContained add=ocamlTypeObjectAnnot +syn region ocamlTypeObjectAnnot contained +\ matchgroup=ocamlKeyChar start=":" +\ matchgroup=ocamlKeyChar end=";\|>\@=" +\ contains=@ocamlTypeExpr,ocamlComment,ocamlPpx +hi link ocamlTypeObjectAnnot ocamlTypeCatchAll + +" Record type definition +syn cluster ocamlTypeContained add=ocamlTypeRecordDecl +syn region ocamlTypeRecordDecl contained +\ matchgroup=ocamlEncl start="{" +\ matchgroup=ocamlEncl end="}" +\ contains=ocamlTypeMutable,ocamlLCIdentifier,ocamlTypeRecordAnnot,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeRecordDecl ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypeMutable +syn keyword ocamlTypeMutable contained mutable +hi link ocamlTypeMutable ocamlKeyword +syn cluster ocamlTypeContained add=ocamlTypeRecordAnnot +syn region ocamlTypeRecordAnnot contained +\ matchgroup=ocamlKeyChar start=":" +\ matchgroup=ocamlKeyChar end=";\|}\@=" +\ contains=@ocamlTypeExpr,ocamlComment,ocamlPpx +hi link ocamlTypeRecordAnnot ocamlTypeCatchAll + +" Polymorphic variant types +" NOTE: Carefully avoid catching "[@" here. +syn cluster ocamlTypeExpr add=ocamlTypeVariant +syn region ocamlTypeVariant contained +\ matchgroup=ocamlEncl start="\[>" start="\[<" start="\[@\@!" +\ matchgroup=ocamlEncl end="\]" +\ contains=ocamlTypeVariantKeyChar,ocamlTypeVariantConstr,ocamlTypeVariantAnnot,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeVariant ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypeVariantKeyChar +syn match ocamlTypeVariantKeyChar contained "|" +syn match ocamlTypeVariantKeyChar contained ">" +hi link ocamlTypeVariantKeyChar ocamlKeyChar +syn cluster ocamlTypeContained add=ocamlTypeVariantConstr +syn match ocamlTypeVariantConstr contained "`\w\(\w\|'\)*\>" +hi link ocamlTypeVariantConstr ocamlConstructor +syn cluster ocamlTypeContained add=ocamlTypeVariantAnnot +syn region ocamlTypeVariantAnnot contained +\ matchgroup=ocamlKeyword start="\" +\ matchgroup=ocamlKeyChar end="|\|>\|\]\@=" +\ contains=@ocamlTypeExpr,ocamlTypeAmp,ocamlComment,ocamlPpx +hi link ocamlTypeVariantAnnot ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypeAmp +syn match ocamlTypeAmp contained "&" +hi link ocamlTypeAmp ocamlTypeKeyChar + +" Sum type definition +syn cluster ocamlTypeContained add=ocamlTypeSumDecl +syn region ocamlTypeSumDecl contained +\ matchgroup=ocamlTypeSumBar start="|" +\ matchgroup=ocamlTypeSumConstr start="\<\u\(\w\|'\)*\>" +\ matchgroup=ocamlTypeSumConstr start="\" start="\" +\ matchgroup=ocamlTypeSumConstr start="(\_s*)" start="\[\_s*]" start="(\_s*::\_s*)" +\ matchgroup=NONE end="\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|)\|]\|}\|;\|;;\|=\)\@=" +\ matchgroup=NONE end="\(\\)\@=" +\ contains=ocamlTypeSumBar,ocamlTypeSumConstr,ocamlTypeSumAnnot,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeSumDecl ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypeSumBar +syn match ocamlTypeSumBar contained "|" +hi link ocamlTypeSumBar ocamlKeyChar +syn cluster ocamlTypeContained add=ocamlTypeSumConstr +syn match ocamlTypeSumConstr contained "\<\u\(\w\|'\)*\>" +syn match ocamlTypeSumConstr contained "\" +syn match ocamlTypeSumConstr contained "\" +syn match ocamlTypeSumConstr contained "(\_s*)" +syn match ocamlTypeSumConstr contained "\[\_s*]" +syn match ocamlTypeSumConstr contained "(\_s*::\_s*)" +hi link ocamlTypeSumConstr ocamlConstructor +syn cluster ocamlTypeContained add=ocamlTypeSumAnnot +syn region ocamlTypeSumAnnot contained +\ matchgroup=ocamlKeyword start="\" +\ matchgroup=ocamlKeyChar start=":" +\ matchgroup=NONE end="|\@=" +\ matchgroup=NONE end="\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|)\|]\|}\|;\|;;\)\@=" +\ matchgroup=NONE end="\(\\)\@=" +\ contains=@ocamlTypeExpr,ocamlTypeRecordDecl,ocamlComment,ocamlPpx +hi link ocamlTypeSumAnnot ocamlTypeCatchAll + +" Type context opened by “type” (type definition), “constraint” (type +" constraint) and “exception” (exception definition) +syn region ocamlTypeDef +\ matchgroup=ocamlKeyword start="\\(\_s\+\\)\?\|\\|\" +\ matchgroup=NONE end="\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|)\|]\|}\|;\|;;\)\@=" +\ contains=@ocamlTypeExpr,ocamlTypeEq,ocamlTypePrivate,ocamlTypeDefDots,ocamlTypeRecordDecl,ocamlTypeSumDecl,ocamlTypeDefAnd,ocamlComment,ocamlPpx +hi link ocamlTypeDef ocamlTypeCatchAll +syn cluster ocamlTypeContained add=ocamlTypePrivate +syn keyword ocamlTypePrivate contained private +hi link ocamlTypePrivate ocamlKeyword +syn cluster ocamlTypeContained add=ocamlTypeDefAnd +syn keyword ocamlTypeDefAnd contained and +hi link ocamlTypeDefAnd ocamlKeyword +syn cluster ocamlTypeContained add=ocamlTypeDefDots +syn match ocamlTypeDefDots contained "\.\." +hi link ocamlTypeDefDots ocamlKeyChar + +" When "exception" is preceded by "with", "|" or "(", that’s not an exception +" definition but an exception pattern; we simply highlight the keyword without +" starting a type context. +" NOTE: These rules must occur after that for "exception". +syn match ocamlKeyword "\"lc=4 +syn match ocamlKeyword "|\_s*exception\>"lc=1 +syn match ocamlKeyword "(\_s*exception\>"lc=1 + +" Type context opened by “:” (countless kinds of type annotations) and “:>” +" (type coercions) +syn region ocamlTypeAnnot matchgroup=ocamlKeyChar start=":\(>\|\_s*type\>\|[>:=]\@!\)" +\ matchgroup=NONE end="\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|)\|]\|}\|;\|;;\)\@=" +\ matchgroup=NONE end="\(;\|}\)\@=" +\ matchgroup=NONE end="\(=\|:>\)\@=" +\ contains=@ocamlTypeExpr,ocamlComment,ocamlPpx +hi link ocamlTypeAnnot ocamlTypeCatchAll + +" Type annotation that gives the return type of a `fun` keyword +" (the type context is ended by `->`) +syn cluster ocamlTypeContained add=ocamlFunTypeAnnot +syn region ocamlFunTypeAnnot contained containedin=ocamlFun +\ matchgroup=ocamlKeyChar start=":" +\ matchgroup=NONE end="\(->\)\@=" +\ contains=@ocamlTypeExpr,ocamlComment,ocamlPpx +hi link ocamlFunTypeAnnot ocamlTypeCatchAll + +" Module paths (including functors) in types. +" NOTE: This rule must occur after the rule for ocamlTypeSumDecl as it must take +" precedence over it (otherwise the module name would be mistakenly highlighted +" as a constructor). +" NOTE: Carefully avoid catching "(*" here. +syn cluster ocamlTypeExpr add=ocamlTypeModPath +syn match ocamlTypeModPath contained "\<\u\(\w\|'\)*\_s*\." +syn region ocamlTypeModPath contained transparent +\ matchgroup=ocamlModPath start="\<\u\(\w\|'\)*\_s*(\*\@!" +\ matchgroup=ocamlModPath end=")\_s*\." +\ contains=ocamlTypeDotlessModPath,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeModPath ocamlModPath +syn cluster ocamlTypeContained add=ocamlTypeDotlessModPath +syn match ocamlTypeDotlessModPath contained "\<\u\(\w\|'\)*\_s*\.\?" +syn region ocamlTypeDotlessModPath contained transparent +\ matchgroup=ocamlModPath start="\<\u\(\w\|'\)*\_s*(\*\@!" +\ matchgroup=ocamlModPath end=")\_s*\.\?" +\ contains=ocamlTypeDotlessModPath,ocamlTypeBlank,ocamlComment,ocamlPpx +hi link ocamlTypeDotlessModPath ocamlTypeModPath + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Synchronization syn sync minlines=50 @@ -306,27 +565,25 @@ hi def link ocamlBrackErr Error hi def link ocamlParenErr Error hi def link ocamlArrErr Error -hi def link ocamlCommentErr Error - hi def link ocamlCountErr Error hi def link ocamlDoErr Error hi def link ocamlDoneErr Error hi def link ocamlEndErr Error hi def link ocamlThenErr Error +hi def link ocamlKwErr Error hi def link ocamlCharErr Error hi def link ocamlErr Error hi def link ocamlComment Comment +hi def link ocamlShebang ocamlComment hi def link ocamlModPath Include hi def link ocamlObject Include hi def link ocamlModule Include hi def link ocamlModParam1 Include hi def link ocamlGenMod Include -hi def link ocamlModType Include -hi def link ocamlMPRestr3 Include hi def link ocamlFullMod Include hi def link ocamlFuncWith Include hi def link ocamlModParam Include @@ -339,10 +596,13 @@ hi def link ocamlStructEncl ocamlModule hi def link ocamlScript Include hi def link ocamlConstructor Constant +hi def link ocamlEmptyConstructor ocamlConstructor hi def link ocamlVal Keyword +hi def link ocamlModTypePre Keyword hi def link ocamlModPreRHS Keyword -hi def link ocamlMPRestr2 Keyword +hi def link ocamlFunctor Keyword +hi def link ocamlModTypeOf Keyword hi def link ocamlKeyword Keyword hi def link ocamlMethod Include hi def link ocamlArrow Keyword @@ -352,8 +612,6 @@ hi def link ocamlTopStop Keyword hi def link ocamlRefAssign ocamlKeyChar hi def link ocamlEqual ocamlKeyChar -hi def link ocamlStar ocamlInfixOp -hi def link ocamlAngle ocamlInfixOp hi def link ocamlCons ocamlInfixOp hi def link ocamlPrefixOp ocamlOperator @@ -377,7 +635,24 @@ hi def link ocamlQuotedStringDelim Identifier hi def link ocamlLabel Identifier -hi def link ocamlType Type +" Type linting groups that the user can customize: +" - ocamlTypeCatchAll: anything in a type context that is not caught by more +" specific rules (in principle, this should only match syntax errors) +" - ocamlTypeConstr: type constructors +" - ocamlTypeBuiltin: builtin type constructors (like int or list) +" - ocamlTypeVar: type variables ('a) +" - ocamlTypeAnyVar: wildcard (_) +" - ocamlTypeVariance: variance and injectivity indications (+'a, !'a) +" - ocamlTypeKeyChar: symbols such as -> and * +" Default values below mimick the behavior before the type linter was +" implemented, but now we can do better. :-) +hi def link ocamlTypeCatchAll Error +hi def link ocamlTypeConstr NONE +hi def link ocamlTypeBuiltin Type +hi def link ocamlTypeVar NONE +hi def link ocamlTypeAnyVar NONE +hi def link ocamlTypeVariance ocamlKeyChar +hi def link ocamlTypeKeyChar ocamlKeyChar hi def link ocamlTodo Todo diff --git a/runtime/syntax/opam.vim b/runtime/syntax/opam.vim index 9ac1d41ce7..da296627e5 100644 --- a/runtime/syntax/opam.vim +++ b/runtime/syntax/opam.vim @@ -1,5 +1,5 @@ " Vim syntax file -" Language: OPAM - OCaml package manager +" Language: opam - OCaml package manager " Maintainer: Markus Mottl " URL: https://github.com/ocaml/vim-ocaml " Last Change: @@ -11,20 +11,55 @@ endif " need %{vars}% " env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]] -syn keyword opamKeyword1 remove depends pin-depends depopts conflicts env packages patches version maintainer tags license homepage authors doc install author available name depexts substs synopsis description -syn match opamKeyword2 "\v(bug-reports|post-messages|ocaml-version|opam-version|dev-repo|build-test|build-doc|build)" +syn iskeyword a-z,A-Z,- +syn keyword opamKeyword1 author +syn keyword opamKeyword1 authors +syn keyword opamKeyword1 available +syn keyword opamKeyword1 bug-reports +syn keyword opamKeyword1 build +syn keyword opamKeyword1 build-env +syn keyword opamKeyword1 conflict-class +syn keyword opamKeyword1 conflicts +syn keyword opamKeyword1 depends +syn keyword opamKeyword1 depexts +syn keyword opamKeyword1 depopts +syn keyword opamKeyword1 description +syn keyword opamKeyword1 dev-repo +syn keyword opamKeyword1 doc +syn keyword opamKeyword1 extra-files +syn keyword opamKeyword1 features +syn keyword opamKeyword1 flags +syn keyword opamKeyword1 homepage +syn keyword opamKeyword1 install +syn keyword opamKeyword1 libraries +syn keyword opamKeyword1 license +syn keyword opamKeyword1 maintainer +syn keyword opamKeyword1 messages +syn keyword opamKeyword1 name +syn keyword opamKeyword1 opam-version +syn keyword opamKeyword1 patches +syn keyword opamKeyword1 pin-depends +syn keyword opamKeyword1 post-messages +syn keyword opamKeyword1 remove +syn keyword opamKeyword1 run-test +syn keyword opamKeyword1 setenv +syn keyword opamKeyword1 substs +syn keyword opamKeyword1 synopsis +syn keyword opamKeyword1 syntax +syn keyword opamKeyword1 tags +syn keyword opamKeyword1 version syn keyword opamTodo FIXME NOTE NOTES TODO XXX contained syn match opamComment "#.*$" contains=opamTodo,@Spell syn match opamOperator ">\|<\|=\|<=\|>=" -syn region opamInterpolate start=/%{/ end=/}%/ contained -syn region opamString start=/"/ end=/"/ contains=opamInterpolate -syn region opamSeq start=/\[/ end=/\]/ contains=ALLBUT,opamKeyword1,opamKeyword2 -syn region opamExp start=/{/ end=/}/ contains=ALLBUT,opamKeyword1,opamKeyword2 +syn match opamUnclosedInterpolate "%{[^ "]*" contained +syn match opamInterpolate "%{[^ "]\+}%" contained +syn region opamString start=/"/ end=/"/ contains=opamInterpolate,OpamUnclosedInterpolate +syn region opamSeq start=/\[/ end=/\]/ contains=ALLBUT,opamKeyword1 +syn region opamExp start=/{/ end=/}/ contains=ALLBUT,opamKeyword1 hi link opamKeyword1 Keyword -hi link opamKeyword2 Keyword hi link opamString String hi link opamExp Function @@ -32,6 +67,7 @@ hi link opamSeq Statement hi link opamOperator Operator hi link opamComment Comment hi link opamInterpolate Identifier +hi link opamUnclosedInterpolate Error let b:current_syntax = "opam" -- cgit From a0fd51c1e2db17ab21e2a2c907b232d05dfffc88 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 15 Jul 2024 20:02:22 +0200 Subject: vim-patch:1cc4cae: runtime(typst): Add typst runtime files closes: vim/vim#15234 https://github.com/vim/vim/commit/1cc4cae961a7b49608ef7bd56837cc723d49db4d Co-authored-by: Gregory Anders --- runtime/syntax/typst.vim | 472 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 472 insertions(+) create mode 100644 runtime/syntax/typst.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/typst.vim b/runtime/syntax/typst.vim new file mode 100644 index 0000000000..82fdadb3d5 --- /dev/null +++ b/runtime/syntax/typst.vim @@ -0,0 +1,472 @@ +" Vim syntax file +" Language: Typst +" Maintainer: Gregory Anders +" Last Change: 2024-07-14 +" Based on: https://github.com/kaarmu/typst.vim + +if exists('b:current_syntax') + finish +endif + +syntax sync fromstart +syntax spell toplevel + +" Common {{{1 +syntax cluster typstCommon + \ contains=@typstComment + +" Common > Comment {{{2 +syntax cluster typstComment + \ contains=typstCommentBlock,typstCommentLine +syntax match typstCommentBlock + \ #/\*\%(\_.\{-}\)\*/# + \ contains=typstCommentTodo,@Spell +syntax match typstCommentLine + \ #//.*# + \ contains=typstCommentTodo,@Spell +syntax keyword typstCommentTodo + \ contained + \ TODO FIXME XXX TBD + + +" Code {{{1 +syntax cluster typstCode + \ contains=@typstCommon + \ ,@typstCodeKeywords + \ ,@typstCodeConstants + \ ,@typstCodeIdentifiers + \ ,@typstCodeFunctions + \ ,@typstCodeParens + +" Code > Keywords {{{2 +syntax cluster typstCodeKeywords + \ contains=typstCodeConditional + \ ,typstCodeRepeat + \ ,typstCodeKeyword + \ ,typstCodeStatement +syntax keyword typstCodeConditional + \ contained + \ if else +syntax keyword typstCodeRepeat + \ contained + \ while for +syntax keyword typstCodeKeyword + \ contained + \ not in and or return +syntax region typstCodeStatement + \ contained + \ matchgroup=typstCodeStatementWord start=/\v(let|set|import|include)>/ + \ matchgroup=Noise end=/\v%(;|$)/ + \ contains=@typstCode +syntax region typstCodeStatement + \ contained + \ matchgroup=typstCodeStatementWord start=/show/ + \ matchgroup=Noise end=/\v%(:|$)/ keepend + \ contains=@typstCode + \ skipwhite nextgroup=@typstCode,typstCodeShowRocket +syntax match typstCodeShowRocket + \ contained + \ /.*=>/ + \ contains=@typstCode + \ skipwhite nextgroup=@typstCode + +" Code > Identifiers {{{2 +syntax cluster typstCodeIdentifiers + \ contains=typstCodeIdentifier + \ ,typstCodeFieldAccess +syntax match typstCodeIdentifier + \ contained + \ /\v\w\k*>(<%(let|set|show|import|include))@(<%(let|set|show|import|include))@ Functions {{{2 +syntax cluster typstCodeFunctions + \ contains=typstCodeFunction +syntax match typstCodeFunction + \ contained + \ /\v\w\k*>(<%(let|set|show|import|include))@ Constants {{{2 +syntax cluster typstCodeConstants + \ contains=typstCodeConstant + \ ,typstCodeNumberInteger + \ ,typstCodeNumberFloat + \ ,typstCodeNumberLength + \ ,typstCodeNumberAngle + \ ,typstCodeNumberRatio + \ ,typstCodeNumberFraction + \ ,typstCodeString + \ ,typstCodeLabel +syntax match typstCodeConstant + \ contained + \ /\v<%(none|auto|true|false)-@!>/ +syntax match typstCodeNumberInteger + \ contained + \ /\v<\d+>/ + +syntax match typstCodeNumberFloat + \ contained + \ /\v<\d+\.\d*>/ +syntax match typstCodeNumberLength + \ contained + \ /\v<\d+(\.\d*)?(pt|mm|cm|in|em)>/ +syntax match typstCodeNumberAngle + \ contained + \ /\v<\d+(\.\d*)?(deg|rad)>/ +syntax match typstCodeNumberRatio + \ contained + \ /\v<\d+(\.\d*)?\%/ +syntax match typstCodeNumberFraction + \ contained + \ /\v<\d+(\.\d*)?fr>/ +syntax region typstCodeString + \ contained + \ start=/"/ skip=/\v\\\\|\\"/ end=/"/ + \ contains=@Spell +syntax match typstCodeLabel + \ contained + \ /\v\<\K%(\k*-*)*\>/ + +" Code > Parens {{{2 +syntax cluster typstCodeParens + \ contains=typstCodeParen + \ ,typstCodeBrace + \ ,typstCodeBracket + \ ,typstCodeDollar + \ ,typstMarkupRawInline + \ ,typstMarkupRawBlock +syntax region typstCodeParen + \ contained + \ matchgroup=Noise start=/(/ end=/)/ + \ contains=@typstCode +syntax region typstCodeBrace + \ contained + \ matchgroup=Noise start=/{/ end=/}/ + \ contains=@typstCode +syntax region typstCodeBracket + \ contained + \ matchgroup=Noise start=/\[/ end=/\]/ + \ contains=@typstMarkup +syntax region typstCodeDollar + \ contained + \ matchgroup=Number start=/\\\@ Keywords {{{2 +syntax cluster typstHashtagKeywords + \ contains=typstHashtagConditional + \ ,typstHashtagRepeat + \ ,typstHashtagKeywords + \ ,typstHashtagStatement + +" syntax match typstHashtagControlFlowError +" \ /\v#%(if|while|for)>-@!.{-}$\_.{-}%(\{|\[|\()/ +syntax match typstHashtagControlFlow + \ /\v#%(if|while|for)>.{-}\ze%(\{|\[|\()/ + \ contains=typstHashtagConditional,typstHashtagRepeat + \ nextgroup=@typstCode +syntax region typstHashtagConditional + \ contained + \ start=/\v#if>/ end=/\v\ze(\{|\[)/ + \ contains=@typstCode +syntax region typstHashtagRepeat + \ contained + \ start=/\v#(while|for)>/ end=/\v\ze(\{|\[)/ + \ contains=@typstCode +syntax match typstHashtagKeyword + \ /\v#(return)>/ + \ skipwhite nextgroup=@typstCode +syntax region typstHashtagStatement + \ matchgroup=typstHashtagStatementWord start=/\v#(let|set|import|include)>/ + \ matchgroup=Noise end=/\v%(;|$)/ + \ contains=@typstCode +syntax region typstHashtagStatement + \ matchgroup=typstHashtagStatementWord start=/#show/ + \ matchgroup=Noise end=/\v%(:|$)/ keepend + \ contains=@typstCode + \ skipwhite nextgroup=@typstCode,typstCodeShowRocket + +" Hashtag > Constants {{{2 +syntax cluster typstHashtagConstants + \ contains=typstHashtagConstant +syntax match typstHashtagConstant + \ /\v#(none|auto|true|false)>/ + +" Hashtag > Identifiers {{{2 +syntax cluster typstHashtagIdentifiers + \ contains=typstHashtagIdentifier + \ ,typstHashtagFieldAccess +syntax match typstHashtagIdentifier + \ /\v#\w\k*>(<%(let|set|show|import|include))@(<%(let|set|show|import|include))@ Functions {{{2 +syntax cluster typstHashtagFunctions + \ contains=typstHashtagFunction +syntax match typstHashtagFunction + \ /\v#\w\k*>(<%(let|set|show|import|include))@ Parens {{{2 +syntax cluster typstHashtagParens + \ contains=typstHashtagParen + \ ,typstHashtagBrace + \ ,typstHashtagBracket + \ ,typstHashtagDollar +syntax region typstHashtagParen + \ matchgroup=Noise start=/#(/ end=/)/ + \ contains=@typstCode +syntax region typstHashtagBrace + \ matchgroup=Noise start=/#{/ end=/}/ + \ contains=@typstCode +syntax region typstHashtagBracket + \ matchgroup=Noise start=/#\[/ end=/\]/ + \ contains=@typstMarkup +syntax region typstHashtagDollar + \ matchgroup=Noise start=/#\$/ end=/\\\@ Text {{{2 +syntax cluster typstMarkupText + \ contains=typstMarkupRawInline + \ ,typstMarkupRawBlock + \ ,typstMarkupLabel + \ ,typstMarkupReference + \ ,typstMarkupUrl + \ ,typstMarkupHeading + \ ,typstMarkupBulletList + \ ,typstMarkupEnumList + \ ,typstMarkupTermList + \ ,typstMarkupBold + \ ,typstMarkupItalic + \ ,typstMarkupLinebreak + \ ,typstMarkupNonbreakingSpace + \ ,typstMarkupShy + \ ,typstMarkupDash + \ ,typstMarkupEllipsis + +" Raw Text +syntax match typstMarkupRawInline + \ /`.\{-}`/ +syntax region typstMarkupRawBlock + \ matchgroup=Macro start=/```\w*/ + \ matchgroup=Macro end=/```/ keepend +syntax region typstMarkupCodeBlockTypst + \ matchgroup=Macro start=/```typst/ + \ matchgroup=Macro end=/```/ contains=@typstCode keepend + \ concealends + +for s:name in get(g:, 'typst_embedded_languages', []) + let s:include = ['syntax include' + \ ,'@typstEmbedded_'..s:name + \ ,'syntax/'..s:name..'.vim'] + let s:rule = ['syn region' + \,s:name + \,'matchgroup=Macro' + \,'start=/```'..s:name..'\>/ end=/```/' + \,'contains=@typstEmbedded_'..s:name + \,'keepend' + \,'concealends'] + execute 'silent! ' .. join(s:include, ' ') + unlet! b:current_syntax + execute join(s:rule, ' ') +endfor + +" Label & Reference +syntax match typstMarkupLabel + \ /\v\<\K%(\k*-*)*\>/ +syntax match typstMarkupReference + \ /\v\@\K%(\k*-*)*/ + +" URL +syntax match typstMarkupUrl + \ #\v\w+://\S*# + +" Heading +syntax match typstMarkupHeading + \ /^\s*\zs=\{1,6}\s.*$/ + \ contains=typstMarkupLabel,@Spell + +" Lists +syntax match typstMarkupBulletList + \ /\v^\s*-\s+/ +syntax match typstMarkupEnumList + \ /\v^\s*(\+|\d+\.)\s+/ +syntax region typstMarkupTermList + \ oneline start=/\v^\s*\/\s/ end=/:/ + \ contains=@typstMarkup + +" Bold & Italic +syntax match typstMarkupBold + \ /\v(\w|\\)@1 Parens {{{2 +syntax cluster typstMarkupParens + \ contains=typstMarkupBracket + \ ,typstMarkupDollar +syntax region typstMarkupBracket + \ matchgroup=Noise start=/\[/ end=/\]/ + \ contains=@typstMarkup +syntax region typstMarkupDollar + \ matchgroup=Special start=/\\\@/ + \ contained +syntax region typstMathQuote + \ matchgroup=String start=/"/ skip=/\\"/ end=/"/ + \ contained + +" Math > Linked groups {{{2 +highlight default link typstMathIdentifier Identifier +highlight default link typstMathFunction Statement +highlight default link typstMathNumber Number +highlight default link typstMathSymbol Statement + +" Highlighting {{{1 + +" Highlighting > Linked groups {{{2 +highlight default link typstCommentBlock Comment +highlight default link typstCommentLine Comment +highlight default link typstCommentTodo Todo +highlight default link typstCodeConditional Conditional +highlight default link typstCodeRepeat Repeat +highlight default link typstCodeKeyword Keyword +highlight default link typstCodeConstant Constant +highlight default link typstCodeNumberInteger Number +highlight default link typstCodeNumberFloat Number +highlight default link typstCodeNumberLength Number +highlight default link typstCodeNumberAngle Number +highlight default link typstCodeNumberRatio Number +highlight default link typstCodeNumberFraction Number +highlight default link typstCodeString String +highlight default link typstCodeLabel Structure +highlight default link typstCodeStatementWord Statement +highlight default link typstCodeIdentifier Identifier +highlight default link typstCodeFieldAccess Identifier +highlight default link typstCodeFunction Function +highlight default link typstCodeParen Noise +highlight default link typstCodeBrace Noise +highlight default link typstCodeBracket Noise +highlight default link typstCodeDollar Noise +" highlight default link typstHashtagControlFlowError Error +highlight default link typstHashtagConditional Conditional +highlight default link typstHashtagRepeat Repeat +highlight default link typstHashtagKeyword Keyword +highlight default link typstHashtagConstant Constant +highlight default link typstHashtagStatementWord Statement +highlight default link typstHashtagIdentifier Identifier +highlight default link typstHashtagFieldAccess Identifier +highlight default link typstHashtagFunction Function +highlight default link typstHashtagParen Noise +highlight default link typstHashtagBrace Noise +highlight default link typstHashtagBracket Noise +highlight default link typstHashtagDollar Noise +highlight default link typstMarkupRawInline Macro +highlight default link typstMarkupRawBlock Macro +highlight default link typstMarkupLabel Structure +highlight default link typstMarkupReference Structure +highlight default link typstMarkupBulletList Structure +" highlight default link typstMarkupItalicError Error +" highlight default link typstMarkupBoldError Error +highlight default link typstMarkupEnumList Structure +highlight default link typstMarkupLinebreak Structure +highlight default link typstMarkupNonbreakingSpace Structure +highlight default link typstMarkupShy Structure +highlight default link typstMarkupDash Structure +highlight default link typstMarkupEllipsis Structure +highlight default link typstMarkupTermList Structure +highlight default link typstMarkupDollar Noise + +" Highlighting > Custom Styling {{{2 +highlight! Conceal ctermfg=NONE ctermbg=NONE guifg=NONE guibg=NONE + +highlight default typstMarkupHeading term=underline,bold cterm=underline,bold gui=underline,bold +highlight default typstMarkupUrl term=underline cterm=underline gui=underline +highlight default typstMarkupBold term=bold cterm=bold gui=bold +highlight default typstMarkupItalic term=italic cterm=italic gui=italic +highlight default typstMarkupBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic + +let b:current_syntax = 'typst' + +" }}}1 -- cgit From 61ea4665916909853cf74256a6b350a680f08565 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 16 Jul 2024 22:23:44 +0200 Subject: vim-patch:9.1.0592: runtime: filetype: Mediawiki files are not recognized Problem: filetype: Mediawiki files are not recognized Solution: detect "*.mw" and "*.wiki" as mediawiki filetype, include basic syntax and filetype plugins. (AvidSeeker) closes: vim/vim#15266 https://github.com/vim/vim/commit/b5844104ab1259e061e023ea6259e4eb002e7170 Co-authored-by: AvidSeeker --- runtime/syntax/mediawiki.vim | 292 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 runtime/syntax/mediawiki.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/mediawiki.vim b/runtime/syntax/mediawiki.vim new file mode 100644 index 0000000000..8ac30b93db --- /dev/null +++ b/runtime/syntax/mediawiki.vim @@ -0,0 +1,292 @@ +" mediawiki.vim (formerly named Wikipedia.vim) +" +" Vim syntax file +" Language: MediaWiki +" Maintainer: Avid Seeker +" Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim +" Last Change: 2024 Jul 14 +" Credits: [[User:Unforgettableid]] [[User:Aepd87]], [[User:Danny373]], [[User:Ingo Karkat]], et al. +" +" Published on Wikipedia in 2003-04 and declared authorless. +" +" Based on the HTML syntax file. Probably too closely based, in fact. +" There may well be name collisions everywhere, but ignorance is bliss, +" so they say. +" + +if exists("b:current_syntax") + finish +endif + +syntax case ignore +syntax spell toplevel + +" Mark illegal characters +sy match htmlError "[<>&]" + +" Tags +sy region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,@htmlPreproc +sy region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,@htmlPreproc +sy match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc +sy region htmlEndTag start=++ contains=htmlTagN,htmlTagError +sy region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster +sy match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster +sy match htmlTagN contained +]<"ms=s+1 + +" Allowed HTML tag names +sy keyword htmlTagName contained big blockquote br caption center cite code +sy keyword htmlTagName contained dd del div dl dt font hr ins li +sy keyword htmlTagName contained ol p pre rb rp rt ruby s small span strike sub +sy keyword htmlTagName contained sup table td th tr tt ul var +sy match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\)\>" +" Allowed Wiki tag names +sy keyword htmlTagName contained math nowiki references source syntaxhighlight + +" Allowed arg names +sy keyword htmlArg contained align lang dir width height nowrap bgcolor clear +sy keyword htmlArg contained noshade cite datetime size face color type start +sy keyword htmlArg contained value compact summary border frame rules +sy keyword htmlArg contained cellspacing cellpadding valign char charoff +sy keyword htmlArg contained colgroup col span abbr axis headers scope rowspan +sy keyword htmlArg contained colspan id class name style title + +" Special characters +sy match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" + +" Comments +sy region htmlComment start=++ contains=htmlCommentPart,htmlCommentError +sy match htmlCommentError contained "[^>+ + +if !exists("html_no_rendering") + sy cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,@htmlPreproc + + sy region htmlBold start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic + sy region htmlBold start="" end=""me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic + sy region htmlBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic + sy region htmlBoldItalic contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldItalicUnderline + sy region htmlBoldItalic contained start="" end=""me=e-5 contains=@htmlTop,htmlBoldItalicUnderline + sy region htmlBoldUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlBoldUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop + sy region htmlBoldItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic + + sy region htmlUnderline start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic + sy region htmlUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic + sy region htmlUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic + sy region htmlUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineItalicBold + sy region htmlUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop,htmlUnderlineItalicBold + sy region htmlUnderlineItalicBold contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlUnderlineItalicBold contained start="" end=""me=e-9 contains=@htmlTop + sy region htmlUnderlineBoldItalic contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlUnderlineBoldItalic contained start="" end=""me=e-5 contains=@htmlTop + + sy region htmlItalic start="" end=""me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline + sy region htmlItalic start="" end=""me=e-5 contains=@htmlTop + sy region htmlItalicBold contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicBoldUnderline + sy region htmlItalicBold contained start="" end=""me=e-9 contains=@htmlTop,htmlItalicBoldUnderline + sy region htmlItalicBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicUnderlineBold + sy region htmlItalicUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlItalicUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop + + sy region htmlH1 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH2 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH3 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH4 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH5 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH6 start="" end=""me=e-5 contains=@htmlTop +endif + + +" No htmlTop and wikiPre inside HTML preformatted areas, because +" MediaWiki renders everything in there literally (HTML tags and +" entities, too):
 tags work as the combination of  and
+" the standard HTML 
 tag: the content will preformatted, and it
+" will not be parsed, but shown as in the wikitext source.
+"
+" With wikiPre, indented lines would be rendered differently from
+" unindented lines.
+sy match htmlPreTag       /[^>]*>/         contains=htmlTag
+sy match htmlPreEndTag    /<\/pre>/       contains=htmlEndTag
+sy match wikiNowikiTag    //      contains=htmlTag
+sy match wikiNowikiEndTag /<\/nowiki>/    contains=htmlEndTag
+sy match wikiSourceTag    /]\+>/ contains=htmlTag
+sy match wikiSourceEndTag /<\/source>/    contains=htmlEndTag
+sy match wikiSyntaxHLTag    /]\+>/ contains=htmlTag
+sy match wikiSyntaxHLEndTag /<\/syntaxhighlight>/    contains=htmlEndTag
+
+" Note: Cannot use 'start="
"rs=e', so still have the 
 tag
+" highlighted correctly via separate sy-match. Unfortunately, this will
+" also highlight 
 tags inside the preformatted region.
+sy region htmlPre    start="[^>]*>"                 end="<\/pre>"me=e-6    contains=htmlPreTag
+sy region wikiNowiki start=""              end="<\/nowiki>"me=e-9 contains=wikiNowikiTag
+sy region wikiSource start="]\+>"         keepend end="<\/source>"me=e-9 contains=wikiSourceTag
+sy region wikiSyntaxHL start="]\+>" keepend end="<\/syntaxhighlight>"me=e-18 contains=wikiSyntaxHLTag
+
+sy include @TeX syntax/tex.vim
+unlet b:current_syntax
+sy region wikiTeX matchgroup=htmlTag start="" end="<\/math>"  contains=@texMathZoneGroup,wikiNowiki,wikiNowikiEndTag
+sy region wikiRef matchgroup=htmlTag start=""  end="<\/ref>"   contains=wikiNowiki,wikiNowikiEndTag
+
+sy cluster wikiText contains=wikiLink,wikiTemplate,wikiNowiki,wikiNowikiEndTag,wikiItalic,wikiBold,wikiBoldAndItalic
+
+" Tables
+sy cluster wikiTableFormat contains=wikiTemplate,htmlString,htmlArg,htmlValue
+sy region wikiTable matchgroup=wikiTableSeparator start="{|" end="|}" contains=wikiTableHeaderLine,wikiTableCaptionLine,wikiTableNewRow,wikiTableHeadingCell,wikiTableNormalCell,@wikiText
+sy match  wikiTableSeparator /^!/ contained
+sy match  wikiTableSeparator /^|/ contained
+sy match  wikiTableSeparator /^|[+-]/ contained
+sy match  wikiTableSeparator /||/ contained
+sy match  wikiTableSeparator /!!/ contained
+sy match  wikiTableFormatEnd /[!|]/ contained
+sy match  wikiTableHeadingCell /\(^!\|!!\)\([^!|]*|\)\?.*/ contains=wikiTableSeparator,@wikiText,wikiTableHeadingFormat
+" Require at least one '=' in the format, to avoid spurious matches (e.g.
+" the | in [[foo|bar]] might be taken as the final |, indicating the beginning
+" of the cell). The same is done for wikiTableNormalFormat below.
+sy match  wikiTableHeadingFormat /\%(^!\|!!\)[^!|]\+=[^!|]\+\([!|]\)\(\1\)\@!/me=e-1 contains=@wikiTableFormat,wikiTableSeparator nextgroup=wikiTableFormatEnd
+sy match  wikiTableNormalCell /\(^|\|||\)\([^|]*|\)\?.*/ contains=wikiTableSeparator,@wikiText,wikiTableNormalFormat
+sy match  wikiTableNormalFormat /\(^|\|||\)[^|]\+=[^|]\+||\@!/me=e-1 contains=@wikiTableFormat,wikiTableSeparator nextgroup=wikiTableFormatEnd
+sy match  wikiTableHeaderLine /\(^{|\)\@<=.*$/ contained contains=@wikiTableFormat
+sy match  wikiTableCaptionLine /^|+.*$/ contained contains=wikiTableSeparator,@wikiText
+sy match  wikiTableNewRow /^|-.*$/ contained contains=wikiTableSeparator,@wikiTableFormat
+
+sy cluster wikiTop contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag
+
+sy region wikiItalic        start=+'\@\[\]]\+/hs=s+2 contained
+sy region wikiTemplate start="{{" end="}}" keepend extend contains=wikiNowiki,wikiNowikiEndTag,wikiTemplateName,wikiTemplateParam,wikiTemplate,wikiLink
+sy region wikiTemplateParam start="{{{\s*\d" end="}}}" extend contains=wikiTemplateName
+
+sy match wikiParaFormatChar /^[\:|\*|;|#]\+/
+sy match wikiParaFormatChar /^-----*/
+sy match wikiPre            /^\ .*$/         contains=wikiNowiki,wikiNowikiEndTag
+
+" HTML highlighting
+
+hi def link htmlTag            Function
+hi def link htmlEndTag         Identifier
+hi def link htmlArg            Type
+hi def link htmlTagName        htmlStatement
+hi def link htmlSpecialTagName Exception
+hi def link htmlValue          String
+hi def link htmlSpecialChar    Special
+
+if !exists("html_no_rendering")
+  hi def link htmlTitle Title
+  hi def link htmlH1    htmlTitle
+  hi def link htmlH2    htmlTitle
+  hi def link htmlH3    htmlTitle
+  hi def link htmlH4    htmlTitle
+  hi def link htmlH5    htmlTitle
+  hi def link htmlH6    htmlTitle
+
+  hi def link htmlPreProc          PreProc
+  hi def link htmlHead             htmlPreProc
+  hi def link htmlPreProcAttrName  htmlPreProc
+  hi def link htmlPreStmt          htmlPreProc
+
+  hi def link htmlSpecial          Special
+  hi def link htmlCssDefinition    htmlSpecial
+  hi def link htmlEvent            htmlSpecial
+  hi def link htmlSpecialChar      htmlSpecial
+
+  hi def link htmlComment          Comment
+  hi def link htmlCommentPart      htmlComment
+  hi def link htmlCssStyleComment  htmlComment
+
+  hi def link htmlString           String
+  hi def link htmlPreAttr          htmlString
+  hi def link htmlValue            htmlString
+
+  hi def link htmlError            Error
+  hi def link htmlBadArg           htmlError
+  hi def link htmlBadTag           htmlError
+  hi def link htmlCommentError     htmlError
+  hi def link htmlPreError         htmlError
+  hi def link htmlPreProcAttrError htmlError
+  hi def link htmlTagError         htmlError
+
+  hi def link htmlStatement        Statement
+
+  hi def link htmlConstant         Constant
+
+  hi def link htmlBoldItalicUnderline htmlBoldUnderlineItalic
+  hi def link htmlUnderlineItalicBold htmlBoldUnderlineItalic
+  hi def link htmlUnderlineBoldItalic htmlBoldUnderlineItalic
+  hi def link htmlItalicBoldUnderline htmlBoldUnderlineItalic
+  hi def link htmlItalicUnderlineBold htmlBoldUnderlineItalic
+
+  hi def link htmlItalicBold          htmlBoldItalic
+  hi def link htmlItalicUnderline     htmlUnderlineItalic
+  hi def link htmlUnderlineBold       htmlBoldUnderline
+
+  hi def link htmlLink Underlined
+
+  if !exists("html_style_rendering")
+    hi def htmlBold                term=bold                  cterm=bold                  gui=bold
+    hi def htmlBoldUnderline       term=bold,underline        cterm=bold,underline        gui=bold,underline
+    hi def htmlBoldItalic          term=bold,italic           cterm=bold,italic           gui=bold,italic
+    hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
+    hi def htmlUnderline           term=underline             cterm=underline             gui=underline
+    hi def htmlUnderlineItalic     term=italic,underline      cterm=italic,underline      gui=italic,underline
+    hi def htmlItalic              term=italic                cterm=italic                gui=italic
+  endif
+endif
+
+" Wiki highlighting
+
+hi def link wikiItalic        htmlItalic
+hi def link wikiBold          htmlBold
+hi def link wikiBoldItalic    htmlBoldItalic
+hi def link wikiItalicBold    htmlBoldItalic
+hi def link wikiBoldAndItalic htmlBoldItalic
+
+hi def link wikiH1 htmlTitle
+hi def link wikiH2 htmlTitle
+hi def link wikiH3 htmlTitle
+hi def link wikiH4 htmlTitle
+hi def link wikiH5 htmlTitle
+hi def link wikiH6 htmlTitle
+
+hi def link wikiLink           htmlLink
+hi def link wikiTemplate       htmlSpecial
+hi def link wikiTemplateParam  htmlSpecial
+hi def link wikiTemplateName   Type
+hi def link wikiParaFormatChar htmlSpecial
+hi def link wikiPre            htmlConstant
+hi def link wikiRef            htmlComment
+
+hi def link htmlPre            wikiPre
+hi def link wikiSource         wikiPre
+hi def link wikiSyntaxHL       wikiPre
+
+hi def link wikiTableSeparator Statement
+hi def link wikiTableFormatEnd wikiTableSeparator
+hi def link wikiTableHeadingCell htmlBold
+
+let b:current_syntax = "mediawiki"
-- 
cgit 


From 8e590cae83c321445a598fcd87bb31b6187402f7 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Tue, 16 Jul 2024 22:29:39 +0200
Subject: vim-patch:9.1.0593: filetype: Asymptote files are not recognized

Problem:  filetype: Asymptote files are not recognized
Solution: detect '*.asy' files as asy filetype, include
          ftplugin and syntax plugin (AvidSeeker).

Reference: https://asymptote.sourceforge.io/

closes: vim/vim#15252

https://github.com/vim/vim/commit/3088ef094da721dac8c0363a6c9e14eaf9313929

Co-authored-by: AvidSeeker 
---
 runtime/syntax/asy.vim | 243 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 243 insertions(+)
 create mode 100644 runtime/syntax/asy.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/asy.vim b/runtime/syntax/asy.vim
new file mode 100644
index 0000000000..ed2bf712f5
--- /dev/null
+++ b/runtime/syntax/asy.vim
@@ -0,0 +1,243 @@
+" Vim syntax file
+" Language:     Asymptote
+" Maintainer:   Avid Seeker 
+"               Andy Hammerlindl
+" Last Change:  2022 Jan 05
+
+" Hacked together from Bram Moolenaar's C syntax file, and Claudio Fleiner's
+" Java syntax file.
+
+if exists("b:current_syntax")
+  finish
+endif
+
+" useful C/C++/Java keywords
+syn keyword     asyStatement     break return continue unravel
+syn keyword     asyConditional   if else
+syn keyword     asyRepeat        while for do
+syn keyword     asyExternal      access from import include
+syn keyword     asyOperator      new operator
+
+" basic asymptote keywords
+syn keyword     asyConstant      VERSION
+syn keyword     asyConstant      true false default infinity inf nan
+syn keyword     asyConstant      null nullframe nullpath nullpen
+syn keyword     asyConstant      intMin intMax realMin realMax
+syn keyword     asyConstant      realEpsilon realDigits
+syn keyword     asyPathSpec      and cycle controls tension atleast curl
+syn keyword     asyStorageClass  static public restricted private explicit
+syn keyword     asyStructure     struct typedef
+syn keyword     asyType          void bool bool3 int real string file
+syn keyword     asyType          pair triple transform guide path pen frame
+syn keyword     asyType          picture
+
+" module specific keywords
+if exists("asy_syn_plain")
+  syn keyword   asyConstant      currentpicture currentpen defaultpen
+  syn keyword   asyConstant      inch inches cm mm bp pt up down right left
+  syn keyword   asyConstant      E NE N NW W SW S SE
+  syn keyword   asyConstant      ENE NNE NNW WNW WSW SSW SSE ESE
+  syn keyword   asyConstant      I pi twopi
+  syn keyword   asyConstant      CCW CW
+  syn keyword   asyConstant      undefined sqrtEpsilon Align mantissaBits
+  syn keyword   asyConstant      identity zeroTransform invert
+  syn keyword   asyConstant      stdin stdout
+  syn keyword   asyConstant      unitsquare unitcircle circleprecision
+  syn keyword   asyConstant      solid dotted Dotted dashed dashdotted
+  syn keyword   asyConstant      longdashed longdashdotted
+  syn keyword   asyConstant      squarecap roundcap extendcap
+  syn keyword   asyConstant      miterjoin roundjoin beveljoin
+  syn keyword   asyConstant      zerowinding evenodd basealign nobasealign
+  syn keyword   asyConstant      black white gray red green blue Cyan Magenta
+  syn keyword   asyConstant      Yellow Black cyan magenta yellow palered
+  syn keyword   asyConstant      palegreen paleblue palecyan palemagenta
+  syn keyword   asyConstant      paleyellow palegray lightred lightgreen
+  syn keyword   asyConstant      lightblue lightcyan lightmagenta lightyellow
+  syn keyword   asyConstant      lightgray mediumred mediumgreen mediumblue
+  syn keyword   asyConstant      mediumcyan mediummagenta mediumyellow
+  syn keyword   asyConstant      mediumgray heavyred heavygreen heavyblue
+  syn keyword   asyConstant      heavycyan heavymagenta lightolive heavygray
+  syn keyword   asyConstant      deepred deepgreen deepblue deepcyan
+  syn keyword   asyConstant      deepmagenta deepyellow deepgray darkred
+  syn keyword   asyConstant      darkgreen darkblue darkcyan darkmagenta
+  syn keyword   asyConstant      darkolive darkgray orange fuchsia chartreuse
+  syn keyword   asyConstant      springgreen purple royalblue salmon brown
+  syn keyword   asyConstant      olive darkbrown pink palegrey lightgrey
+  syn keyword   asyConstant      mediumgrey grey heavygrey deepgrey darkgrey
+
+  if exists("asy_syn_texcolors")
+    syn keyword asyConstant      GreenYellow Yellow Goldenrod Dandelion
+    syn keyword asyConstant      Apricot Peach Melon YellowOrange Orange
+    syn keyword asyConstant      BurntOrange Bittersweet RedOrange Mahogany
+    syn keyword asyConstant      Maroon BrickRed Red OrangeRed RubineRed
+    syn keyword asyConstant      WildStrawberry Salmon CarnationPink Magenta
+    syn keyword asyConstant      VioletRed Rhodamine Mulberry RedViolet
+    syn keyword asyConstant      Fuchsia Lavender Thistle Orchid DarkOrchid
+    syn keyword asyConstant      Purple Plum Violet RoyalPurple BlueViolet
+    syn keyword asyConstant      Periwinkle CadetBlue CornflowerBlue
+    syn keyword asyConstant      MidnightBlue NavyBlue RoyalBlue Blue
+    syn keyword asyConstant      Cerulean Cyan ProcessBlue SkyBlue Turquoise
+    syn keyword asyConstant      TealBlue Aquamarine BlueGreen Emerald
+    syn keyword asyConstant      JungleGreen SeaGreen Green ForestGreen
+    syn keyword asyConstant      PineGreen LimeGreen YellowGreen SpringGreen
+    syn keyword asyConstant      OliveGreen RawSienna Sepia Brown Tan Gray
+    syn keyword asyConstant      Black White
+  endif
+
+  if exists("asy_syn_x11colors")
+    syn keyword asyConstant      AliceBlue AntiqueWhite Aqua Aquamarine Azure
+    syn keyword asyConstant      Beige Bisque Black BlanchedAlmond Blue
+    syn keyword asyConstant      BlueViolet Brown BurlyWood CadetBlue
+    syn keyword asyConstant      Chartreuse Chocolate Coral CornflowerBlue
+    syn keyword asyConstant      Cornsilk Crimson Cyan DarkBlue DarkCyan
+    syn keyword asyConstant      DarkGoldenrod DarkGray DarkGreen DarkKhaki
+    syn keyword asyConstant      DarkMagenta DarkOliveGreen DarkOrange
+    syn keyword asyConstant      DarkOrchid DarkRed DarkSalmon DarkSeaGreen
+    syn keyword asyConstant      DarkSlateBlue DarkSlateGray DarkTurquoise
+    syn keyword asyConstant      DarkViolet DeepPink DeepSkyBlue DimGray
+    syn keyword asyConstant      DodgerBlue FireBrick FloralWhite ForestGreen
+    syn keyword asyConstant      Fuchsia Gainsboro GhostWhite Gold Goldenrod
+    syn keyword asyConstant      Gray Green GreenYellow Honeydew HotPink
+    syn keyword asyConstant      IndianRed Indigo Ivory Khaki Lavender
+    syn keyword asyConstant      LavenderBlush LawnGreen LemonChiffon
+    syn keyword asyConstant      LightBlue LightCoral LightCyan
+    syn keyword asyConstant      LightGoldenrodYellow LightGreen LightGrey
+    syn keyword asyConstant      LightPink LightSalmon LightSeaGreen
+    syn keyword asyConstant      LightSkyBlue LightSlateGray LightSteelBlue
+    syn keyword asyConstant      LightYellow Lime LimeGreen Linen Magenta
+    syn keyword asyConstant      Maroon MediumAquamarine MediumBlue
+    syn keyword asyConstant      MediumOrchid MediumPurple MediumSeaGreen
+    syn keyword asyConstant      MediumSlateBlue MediumSpringGreen
+    syn keyword asyConstant      MediumTurquoise MediumVioletRed MidnightBlue
+    syn keyword asyConstant      MintCream MistyRose Moccasin NavajoWhite
+    syn keyword asyConstant      Navy OldLace Olive OliveDrab Orange
+    syn keyword asyConstant      OrangeRed Orchid PaleGoldenrod PaleGreen
+    syn keyword asyConstant      PaleTurquoise PaleVioletRed PapayaWhip
+    syn keyword asyConstant      PeachPuff Peru Pink Plum PowderBlue Purple
+    syn keyword asyConstant      Red RosyBrown RoyalBlue SaddleBrown Salmon
+    syn keyword asyConstant      SandyBrown SeaGreen Seashell Sienna Silver
+    syn keyword asyConstant      SkyBlue SlateBlue SlateGray Snow SpringGreen
+    syn keyword asyConstant      SteelBlue Tan Teal Thistle Tomato Turquoise
+    syn keyword asyConstant      Violet Wheat White WhiteSmoke Yellow
+    syn keyword asyConstant      YellowGreen
+  endif
+
+  if exists("asy_syn_three")
+    syn keyword asyType          path3 guide3 transform3
+    syn keyword asyType          projection light material patch surface tube
+    syn keyword asyConstant      currentprojection currentlight defaultrender
+    syn keyword asyConstant      identity4 O X Y Z
+    syn keyword asyConstant      nolight nullpens
+    syn keyword asyConstant      unitsphere unithemisphere unitplane octant1
+    syn keyword asyConstant      unitcone unitsolidcone unitcube unitcylinder
+    syn keyword asyConstant      unitdisk unittube
+  endif
+endif
+
+
+" string constants
+syn region asyCString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=asyCSpecial
+syn match  asyCSpecial display contained +\\\(['"?\\abfnrtv]\|\o\{1,3}\)+
+syn match  asyCSpecial display contained +\\\(x[0-9A-F]\{1,2\}\|$\)+
+" double quoted strings only special character is \"
+syn region asyString   start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=asySpecial
+syn match  asySpecial  display contained +\(\\\)\@1
Date: Tue, 16 Jul 2024 22:32:00 +0200
Subject: vim-patch:3698fbb: runtime(tsv): include simple syntax plugin

fixes: vim/vim#15271

https://github.com/vim/vim/commit/3698fbbd7c35590dcc4708677d6c38f9009cf9a3

Co-authored-by: Christian Brabandt 
---
 runtime/syntax/tsv.vim | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 runtime/syntax/tsv.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/tsv.vim b/runtime/syntax/tsv.vim
new file mode 100644
index 0000000000..f0dd9f717d
--- /dev/null
+++ b/runtime/syntax/tsv.vim
@@ -0,0 +1,12 @@
+" Vim filetype plugin file
+" Language:	Tab separated values (TSV)
+" Last Change:	2024 Jul 16
+" This runtime file is looking for a new maintainer.
+
+if exists('b:current_syntax')
+  finish
+endif
+
+let b:csv_delimiter = '\t'  " enforce tab delimiter
+runtime! syntax/csv.vim
+let b:current_syntax = 'tsv'
-- 
cgit 


From 167d0e5a6cf801bfb9b56477ba914e4f5337fe56 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Thu, 18 Jul 2024 09:08:47 +0800
Subject: vim-patch:d65e58f: runtime(vim): Update base-syntax, match types in
 Vim9 variable declarations (#29780)

Match types in Vim9 variable declarations.

Match Vim9 boolean and null literals. These are not matched in all
contexts yet.

related: vim/vim#15277

https://github.com/vim/vim/commit/d65e58f6f930f769cae869aeedf00192a242c5cc

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 128 ++++++++++++++++++++++++++++---------------------
 1 file changed, 73 insertions(+), 55 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 4262636496..2d3e8beed5 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -69,7 +69,11 @@ syn case match
 
 " Special Vim Highlighting (not automatic) {{{1
 
-" Set up folding commands for this syntax highlighting file {{{2
+" Set up commands for this syntax highlighting file {{{2
+
+com! -nargs=* Vim9 execute  s:vim9script ? "" : "contained"
+com! -nargs=* VimL execute  s:vim9script ? "contained" : ""
+
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[afhHlmpPrt]'
  if g:vimsyn_folding =~# 'a'
   com! -nargs=* VimFolda  fold
@@ -152,6 +156,14 @@ else
  let s:vimsyn_maxlines= 60
 endif
 
+" Nulls {{{2
+" =====
+Vim9 syn keyword  vim9Null	null null_blob null_channel null_class null_dict null_function null_job null_list null_object null_partial null_string
+
+" Booleans {{{2
+" ========
+Vim9 syn keyword vim9Boolean	true false
+
 " Numbers {{{2
 " =======
 syn case ignore
@@ -165,7 +177,8 @@ syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate
+syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vim9CmdList	contains=vim9Const,vim9Final,vim9For,vim9Var
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand	"\<\%(\h\w*\|[23]mat\%[ch]\)\>"	contains=vimCommand
 syn match vimVar	      contained	"\<\h[a-zA-Z0-9#_]*\>"
@@ -176,7 +189,8 @@ syn match vimVar        	"\s\zs&t_k;"
 syn match vimFBVar      contained   "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
 syn keyword vimCommand  contained	in
 
-syn cluster vimExprList contains=vimEnvvar,vimFunc,vimFuncVar,vimNumber,vimOper,vimOperParen,vimLetRegister,vimString,vimVar
+syn cluster vimExprList	contains=vimEnvvar,vimFunc,vimNumber,vimOper,vimOperParen,vimLetRegister,vimString,vimVar,@vim9ExprList
+syn cluster vim9ExprList	contains=vim9Boolean,vim9Null
 
 " Insertions And Appends: insert append {{{2
 "   (buftype != nofile test avoids having append, change, insert show up in the command window)
@@ -230,8 +244,8 @@ syn keyword vimAugroupKey	contained aug[roup]  skipwhite nextgroup=vimAugroupBan
 
 " Operators: {{{2
 " =========
-syn cluster	vimOperGroup	contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,@vimContinue,vim9Comment,vimVar
-syn match	vimOper	"||\|&&\|[-+*/%.!]"				skipwhite nextgroup=vimString,vimSpecFile
+syn cluster	vimOperGroup	contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,@vimContinue,vim9Comment,vimVar,vimBoolean,vimNull
+syn match	vimOper	"||\|&&\|[-+*/%.!]"			skipwhite nextgroup=vimString,vimSpecFile
 syn match	vimOper	"\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\|!\~#\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
 syn match	vimOper	"\(\"			skipwhite nextgroup=vimString,vimSpecFile
 syn region	vimOperParen 	matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup
@@ -246,8 +260,8 @@ syn cluster	vimFuncList	contains=vimFuncBang,vimFunctionError,vimFuncKey,vimFunc
 syn cluster	vimDefList	contains=vimFuncBang,vimFunctionError,vimDefKey,vimFuncSID,Tag
 
 syn cluster	vimFuncBodyCommon	contains=@vimCmdList,vimCmplxRepeat,vimContinue,vimCtrlChar,vimDef,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimLetHereDoc,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst,vimFuncFold
-syn cluster	vimFuncBodyList	contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert
-syn cluster	vimDefBodyList	contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment
+syn cluster	vimFuncBodyList	contains=@vimFuncBodyCommon,vimComment,vimLineComment,vimFuncVar,vimInsert,vimConst,vimLet
+syn cluster	vimDefBodyList	contains=@vimFuncBodyCommon,vim9Comment,vim9LineComment,vim9Const,vim9Final,vim9Var,vim9Null,vim9Boolean,vim9For
 
 syn region	vimFuncPattern	contained		matchgroup=vimOper start="/" end="$" contains=@vimSubstList
 syn match	vimFunction	"\"	skipwhite nextgroup=vimCmdSep,vimComment,vimFuncPattern contains=vimFuncKey
@@ -267,7 +281,7 @@ syn keyword	vimFuncKey	contained	fu[nction]
 syn keyword	vimDefKey	contained	def
 
 syn region	vimFuncParams	contained	matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError	contains=vimFuncParam,@vimContinue
-syn region	vimDefParams	contained	matchgroup=Delimiter start="("		   end=")" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError	contains=vimDefParam,vim9Comment
+syn region	vimDefParams	contained	matchgroup=Delimiter start="("		   end=")" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError	contains=vimDefParam,vim9Comment,vimFuncParamEquals
 syn match	vimFuncParam	contained	"\<\h\w*\>\|\.\.\."	skipwhite nextgroup=vimFuncParamEquals
 syn match	vimDefParam	contained	"\<\h\w*\>"		skipwhite nextgroup=vimParamType,vimFuncParamEquals
 
@@ -291,9 +305,9 @@ syn match	vimFuncBlank contained	"\s\+"
 
 " Types: {{{2
 " =====
-" vimTypes : new for vim9
+
 syn region	vimReturnType	contained	start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimCommentError contains=vimTypeSep transparent
-syn match	vimParamType	contained	":\s\+\a"			skipwhite skipnl nextgroup=vimFuncParamEquals   	        contains=vimTypeSep,@vimType
+syn match	vimParamType	contained	":\s"	skipwhite skipnl nextgroup=@vimType contains=vimTypeSep
 
 syn match	vimTypeSep	contained	":\s\@=" skipwhite nextgroup=@vimType
 syn keyword	vimType	contained	any blob bool channel float job number string void
@@ -369,35 +383,23 @@ if get(g:, "vimsyn_comment_strings", 1)
 endif
 
 if s:vim9script
-  syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString contained
-  syn match	vimComment	+\"	skipwhite nextgroup=vimTypeSep,vimLetHereDoc
+syn region	vim9VariableList	contained	start="\[" end="]" contains=vim9Variable,@vimContinue
 
 " For: {{{2
 " ===
-syn keyword	vimFor	for	skipwhite nextgroup=vimVar,vimVarList
+if s:vim9script
+  syn keyword	vim9For	for	skipwhite nextgroup=vim9Variable,vim9VariableList
+else
+  syn keyword	vimFor	for	skipwhite nextgroup=vimVar,vimVarList
+endif
 
 " Abbreviations: {{{2
 " =============
@@ -830,13 +842,9 @@ syn match	vimCtrlChar	"[--]"
 
 " Beginners - Patterns that involve ^ {{{2
 " =========
-if s:vim9script
-  syn region	vim9LineComment	start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
-  syn region	vimLineComment	start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle contained
-else
-  syn region	vimLineComment	start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle
-  syn region	vim9LineComment	start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle contained
-endif
+Vim9 syn region	vim9LineComment	start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
+VimL syn region	vimLineComment	start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle
+
 syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
 syn match	vim9CommentTitle	'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup
 
@@ -1083,7 +1091,6 @@ if !exists("skip_vim_syntax_inits")
   hi def link vimBufnrWarn	vimWarn
  endif
 
- hi def link vim9Vim9ScriptArg	Special
  hi def link vimAbb	vimCommand
  hi def link vimAddress	vimMark
  hi def link vimAugroupBang	vimBang
@@ -1102,11 +1109,8 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimCommand	Statement
  hi def link vimComment	Comment
  hi def link vimCommentError	vimError
- hi def link vim9Comment	Comment
- hi def link vim9CommentError	vimError
  hi def link vimCommentString	vimString
  hi def link vimCommentTitle	PreProc
- hi def link vim9CommentTitle	PreProc
  hi def link vimCondHL	vimCommand
  hi def link vimConst	vimCommand
  hi def link vimContinue	Special
@@ -1174,7 +1178,6 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimLetHereDocStop	Special
  hi def link vimLetRegister	Special
  hi def link vimLineComment	vimComment
- hi def link vim9LineComment	vimComment
  hi def link vimMapBang	vimBang
  hi def link vimMapModKey	vimFuncSID
  hi def link vimMapMod	vimBracket
@@ -1219,7 +1222,6 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimSetMod	vimOption
  hi def link vimSetSep	Statement
  hi def link vimSetString	vimString
- hi def link vim9Vim9Script	vimCommand
  hi def link vimShebang	PreProc
  hi def link vimSleep	vimCommand
  hi def link vimSleepArg	Constant
@@ -1281,6 +1283,20 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimVar	Identifier
  hi def link vimWarn	WarningMsg
 
+ hi def link vim9Boolean	Boolean
+ hi def link vim9Comment	Comment
+ hi def link vim9CommentError	vimError
+ hi def link vim9CommentTitle	PreProc
+ hi def link vim9Const	vimCommand
+ hi def link vim9Final	vimCommand
+ hi def link vim9For	vimCommand
+ hi def link vim9LineComment	vimComment
+ hi def link vim9Null	Constant
+ hi def link vim9Var	vimCommand
+ hi def link vim9Variable	vimVar
+ hi def link vim9Vim9Script	vimCommand
+ hi def link vim9Vim9ScriptArg	Special
+
  hi def link nvimAutoEvent	vimAutoEvent
  hi def link nvimHLGroup	vimHLGroup
 endif
@@ -1290,6 +1306,8 @@ let b:current_syntax = "vim"
 
 " ---------------------------------------------------------------------
 " Cleanup: {{{1
+delc Vim9
+delc VimL
 delc VimFolda
 delc VimFoldf
 delc VimFoldh
-- 
cgit 


From f69cfc6712df31813ba9d5f14abf351f346a619e Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 17 Jul 2024 21:39:13 +0200
Subject: vim-patch:1724ddb: runtime(sdc): update syntax to SDC-standard 2.1

Looking into the current standard for Synopsis Design Constraints (SDC)
from their [Technology Access
Program](https://www.synopsys.com/community/interoperability-programs/tap-in.html),
one can see that the current state of the sdc-syntax file is very
outdated as well as short in coverage of keywords.

This commit pursues to add all the missing keywords from the current
standard (Rev. 2.1).

closes: vim/vim#15281

https://github.com/vim/vim/commit/1724ddbe3a8750e862504ade5b2780b8791d67a0

Co-authored-by: daniel-s-w <59746710+daniel-s-w@users.noreply.github.com>
---
 runtime/syntax/sdc.vim | 46 +++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 5 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/sdc.vim b/runtime/syntax/sdc.vim
index dbfa35eeb6..ae2aae5f07 100644
--- a/runtime/syntax/sdc.vim
+++ b/runtime/syntax/sdc.vim
@@ -1,9 +1,10 @@
 " Vim syntax file
 " Language:     SDC - Synopsys Design Constraints
 " Maintainer:   Maurizio Tranchero - maurizio.tranchero@gmail.com
-" Last Change:  Thu Mar  25 17:35:16 CET 2009
 " Credits:      based on TCL Vim syntax file
 " Version:	0.3
+" Last Change:  Thu Mar  25 17:35:16 CET 2009
+" 2024 Jul 17 by Vim Project (update to SDC 2.1)
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -13,16 +14,48 @@ endif
 " Read the TCL syntax to start with
 runtime! syntax/tcl.vim
 
-" SDC-specific keywords
+" TCL extension related to SDC and available from some vendors
+" (not defined in SDC standard!)
 syn keyword sdcCollections	foreach_in_collection
-syn keyword sdcObjectsQuery	get_clocks get_ports
 syn keyword sdcObjectsInfo	get_point_info get_node_info get_path_info
 syn keyword sdcObjectsInfo	get_timing_paths set_attribute
-syn keyword sdcConstraints	set_false_path
+
+" SDC rev. 2.1 specific keywords
+syn keyword sdcObjectsQuery	get_clocks get_ports get_cells
+syn keyword sdcObjectsQuery	get_pins get_nets all_inputs
+syn keyword sdcObjectsQuery	all_outputs all_registers all_clocks
+syn keyword sdcObjectsQuery	get_libs get_lib_cells get_lib_pins
+
+syn keyword sdcConstraints	set_false_path set_clock_groups set_sense
+syn keyword sdcConstraints	set_propagated_clock set_clock_gating_check
+syn keyword sdcConstraints	set_ideal_latency set_ideal_network
+syn keyword sdcConstraints	set_ideal_transistion set_max_time_borrow
+syn keyword sdcConstraints	set_data_check group_path set_max_transition
+syn keyword sdcConstraints	set_max_fanout set_driving_cell
+syn keyword sdcConstraints	set_port_fanout_number set_multi_cycle_path
+syn keyword sdcConstraints	set_disable_timing set_min_pulse_width
+
 syn keyword sdcNonIdealities	set_min_delay set_max_delay
 syn keyword sdcNonIdealities	set_input_delay set_output_delay
 syn keyword sdcNonIdealities	set_load set_min_capacitance set_max_capacitance
+syn keyword sdcNonIdealities	set_clock_latency set_clock_transition set_clock_uncertainty
+syn keyword sdcNonIdealities	set_resistance set_timing_derate set_drive
+syn keyword sdcNonIdealities	set_input_transition set_fanout_load
+
 syn keyword sdcCreateOperations	create_clock create_timing_netlist update_timing_netlist
+syn keyword sdcCreateOperations	create_generated_clock
+
+syn keyword sdcPowerArea	set_max_area create_voltage_area
+syn keyword sdcPowerArea	set_level_shifter_threshold set_max_dynamic_power
+syn keyword sdcPowerArea	set_level_shifter_strategy set_max_leakage_power
+
+syn keyword sdcModeConfig	set_case_analysis set_logic_dc
+syn keyword sdcModeConfig	set_logic_zero set_logic_one
+
+syn keyword sdcMiscCommmands	sdc_version set_wire_load_selection_group
+syn keyword sdcMiscCommmands	set_units set_wire_load_mode set_wire_load_model
+syn keyword sdcMiscCommmands	set_wire_load_min_block_size set_operating_conditions
+syn keyword sdcMiscCommmands	current_design
 
 " command flags highlighting
 syn match sdcFlags		"[[:space:]]-[[:alpha:]_]*\>"
@@ -31,9 +64,12 @@ syn match sdcFlags		"[[:space:]]-[[:alpha:]_]*\>"
 hi def link sdcCollections      Repeat
 hi def link sdcObjectsInfo      Operator
 hi def link sdcCreateOperations	Operator
-hi def link sdcObjectsQuery	Operator
+hi def link sdcObjectsQuery	Function
 hi def link sdcConstraints	Operator
 hi def link sdcNonIdealities	Operator
+hi def link sdcPowerArea	Operator
+hi def link sdcModeConfig	Operator
+hi def link sdcMiscCommmands	Operator
 hi def link sdcFlags		Special
 
 let b:current_syntax = "sdc"
-- 
cgit 


From adef830f83a9a861e28ca0def6308a708d7fb731 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Fri, 19 Jul 2024 12:16:20 +0800
Subject: vim-patch:99984fc: runtime(vim): Update base-syntax, improve :map
 highlighting (#29795)

Match :map ( RHS properly.

Only match ! after :map, :noremap, :unmap and :mapclear.

closes: vim/vim#15297

https://github.com/vim/vim/commit/99984fc58abf8dd5dac76c80635a724a94824e69

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 2d3e8beed5..1c6aa72448 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -177,7 +177,7 @@ syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
 syn cluster vim9CmdList	contains=vim9Const,vim9Final,vim9For,vim9Var
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand	"\<\%(\h\w*\|[23]mat\%[ch]\)\>"	contains=vimCommand
@@ -210,6 +210,10 @@ syn match   vimBehave	"\"	nextgroup=vimBehaveBang,vimBehaveModel,vi
 syn match   vimBehaveBang	contained	"\a\@1<=!" nextgroup=vimBehaveModel skipwhite
 syn keyword vimBehaveModel	contained	mswin	xterm
 
+" Call {{{2
+" ====
+syn match vimCall	"\"	skipwhite nextgroup=vimFunc
+
 " Exception Handling {{{2
 syn keyword	vimThrow	th[row]	skipwhite nextgroup=@vimExprList
 syn keyword	vimCatch	cat[ch]	skipwhite nextgroup=vimCatchPattern
@@ -568,15 +572,17 @@ syn region	vimExecute	matchgroup=vimCommand start="\" skip=+\\|\|\
 
 " Maps: {{{2
 " ====
-syn match	vimMap		"\\ze\s*(\@!" 	    skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match	vimMap		"\"	skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn keyword	vimMap	no[remap]	skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
 " GEN_SYN_VIM: vimCommand mapclear, START_STR='syn keyword vimMap', END_STR='skipwhite nextgroup=vimMapMod'
 syn keyword vimMap cmapc[lear] imapc[lear] lmapc[lear] nmapc[lear] omapc[lear] smapc[lear] tmapc[lear] vmapc[lear] xmapc[lear] skipwhite nextgroup=vimMapMod
-syn keyword	vimMap mapc[lear]	skipwhite nextgroup=vimMapBang,vimMapMod
-" GEN_SYN_VIM: vimCommand unmap, START_STR='syn keyword vimUnmap', END_STR='skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs'
-syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] tunma[p] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn keyword	vimMap	mapc[lear]	skipwhite nextgroup=vimMapBang,vimMapMod
+" GEN_SYN_VIM: vimCommand unmap, START_STR='syn keyword vimUnmap', END_STR='skipwhite nextgroup=vimMapMod,vimMapLhs'
+syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] tunma[p] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapMod,vimMapLhs
+syn keyword	vimUnmap	unm[ap]	skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+
 syn match	vimMapLhs	contained	"\%(.\|\S\)\+"		contains=vimCtrlChar,vimNotation skipwhite        nextgroup=vimMapRhs
 syn match	vimMapLhs	contained	"\%(.\|\S\)\+\ze\s*$"	contains=vimCtrlChar,vimNotation skipwhite skipnl nextgroup=vimMapRhsContinue
 syn match	vimMapBang	contained	"\a\@1<=!"		skipwhite nextgroup=vimMapMod,vimMapLhs
@@ -643,6 +649,8 @@ syn match	vimFunc              	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\
 syn match	vimUserFunc	contained        	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\"	contains=vimNotation
 syn keyword	vimFuncEcho	contained      	ec ech echo
 
+syn match	vimMap	"\\%([(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
 
@@ -1104,6 +1112,7 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimBehaveModel	vimBehave
  hi def link vimBehave	vimCommand
  hi def link vimBracket	Delimiter
+ hi def link vimCall	vimCommand
  hi def link vimCatch	vimCommand
  hi def link vimCmplxRepeat	SpecialChar
  hi def link vimCommand	Statement
-- 
cgit 


From 5fc25ecc7a383a4bed2199774ed2e26022456ca3 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sat, 20 Jul 2024 12:31:42 +0200
Subject: vim-patch:4aa6b52: runtime(kconfig): Update syntax script and remove
 syn sync

fixes: vim/vim#15306

https://github.com/vim/vim/commit/4aa6b52e82871fe3a607756de609b9c14feb4e04

Co-authored-by: Christian Brabandt 
---
 runtime/syntax/kconfig.vim | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/kconfig.vim b/runtime/syntax/kconfig.vim
index c7a305b73c..0aecc00060 100644
--- a/runtime/syntax/kconfig.vim
+++ b/runtime/syntax/kconfig.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Maintainer:           Christian Brabandt 
 " Previous Maintainer:  Nikolai Weibull 
-" Latest Revision:      2015-05-29
+" Latest Revision:      2024-07-19
 " License:              Vim (see :h license)
 " Repository:		https://github.com/chrisbra/vim-kconfig
 
@@ -715,8 +715,6 @@ syn region  kconfigHelpText
       \ skip='^$'
       \ end='^\z1\@!'
 
-syn sync    match kconfigSyncHelp     grouphere kconfigHelpText 'help\|---help---'
-
 hi def link kconfigTodo         Todo
 hi def link kconfigComment      Comment
 hi def link kconfigKeyword      Keyword
-- 
cgit 


From a5d5b9f36b2fca6b1400d73c230b257f53de4ae5 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sun, 21 Jul 2024 11:10:05 +0200
Subject: vim-patch:aa49512: runtime(yaml): Fix flow mapping key detection

fixes: vim/vim#15196
closes: vim/vim#15313

https://github.com/vim/vim/commit/aa495124f80812b9c8c1942e6c4f9ce2242ea01f

Co-authored-by: itchyny 
---
 runtime/syntax/yaml.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 6ec806a4cb..e992bc02e6 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -129,7 +129,7 @@ syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' c
 execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
 execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'
 
-execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\%(\s\+'.s:ns_plain_in.'\)*\ze\s*:/ contained '.
+execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\%(\s\+'.s:ns_plain_in.'\)*\ze\s*:\%(\s\|$\)/ contained '.
             \'nextgroup=yamlFlowMappingDelimiter skipwhite'
 syn match yamlFlowMappingKeyStart      /?/ contained nextgroup=@yamlFlowNode skipwhite
 syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlFlowMappingDelimiter skipwhite
-- 
cgit 


From e1b7fa2a3a2ad6e91128e20203e226200d9d9bef Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sun, 21 Jul 2024 11:10:32 +0200
Subject: vim-patch:6e37575: runtime(mysql): update syntax script

Problem:

- `syn region ...`s in syntax/mysql.vim match function names inaccurately.
- no syntax rules for mysql window function.
- coarse highlight definition in syntax/mysql.vim.

Solution:

- add `\<` before the function name for accuracy.
- add syntax rules for mysql window function.
- enhance the highlight definition.

closes: vim/vim#15311

https://github.com/vim/vim/commit/6e37575760022be047cad0e1cf1e30c18fab21ad

Co-authored-by: Yinzuo Jiang 
---
 runtime/syntax/mysql.vim | 314 +++++++++++++++++++++++++----------------------
 1 file changed, 169 insertions(+), 145 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim
index 8bd7b6459a..49b53313c9 100644
--- a/runtime/syntax/mysql.vim
+++ b/runtime/syntax/mysql.vim
@@ -1,10 +1,13 @@
 " Vim syntax file
 " Language:     mysql
 " Maintainer:   Kenneth J. Pronovici 
-" Last Change:  $LastChangedDate: 2016-04-11 10:31:04 -0500 (Mon, 11 Apr 2016) $
 " Filenames:    *.mysql
-" URL:          ftp://cedar-solutions.com/software/mysql.vim
-" Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
+" URL:          ftp://cedar-solutions.com/software/mysql.vim (https://github.com/pronovic/vim-syntax/blob/master/mysql.vim)
+" Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23 and have been updated
+"               in July 2024 with the docs for version 8.4
+" Last Change:  2016 Apr 11
+"  2024-07-21:  update MySQL functions as of MySQL 8.4 (by Vim Project)
+" 
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -92,23 +95,23 @@ syn keyword mysqlType            tinytext mediumtext longtext text
 syn keyword mysqlType            tinyblob mediumblob longblob blob
 syn region mysqlType             start="float\W" end="."me=s-1
 syn region mysqlType             start="float$" end="."me=s-1
-syn region mysqlType             start="float(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType             start="\
Date: Mon, 22 Jul 2024 17:28:05 -0500
Subject: vim-patch:9.1.0610: filetype: OpenGL Shading Language files are not
 detected (#29831)

Problem:  filetype: OpenGL Shading Language files are not detected
Solution: detect various file extensions as GLSL filetype, include
          indent and syntax script, do no longer recognize '*.comp'
          as Mason filetype (Gregory Anders)

closes: vim/vim#15317

https://github.com/vim/vim/commit/e4b991ed36f96dd01c6d75e46a04fd1a99180e58
---
 runtime/syntax/glsl.vim | 752 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 752 insertions(+)
 create mode 100644 runtime/syntax/glsl.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/glsl.vim b/runtime/syntax/glsl.vim
new file mode 100644
index 0000000000..06ffcba625
--- /dev/null
+++ b/runtime/syntax/glsl.vim
@@ -0,0 +1,752 @@
+" Language: OpenGL Shading Language
+" Maintainer: Gregory Anders 
+" Last Modified: 2024 Jul 21
+" Upstream: https://github.com/tikhomirov/vim-glsl
+
+if exists('b:current_syntax')
+  finish
+endif
+
+" Statements
+syn keyword glslConditional if else switch case default
+syn keyword glslRepeat      for while do
+syn keyword glslStatement   discard return break continue
+
+" Comments
+syn keyword glslTodo     contained TODO FIXME XXX NOTE
+syn region  glslCommentL start="//" skip="\\$" end="$" keepend contains=glslTodo,@Spell
+syn region  glslComment  matchgroup=glslCommentStart start="/\*" end="\*/" extend contains=glslTodo,@Spell
+
+" Preprocessor
+syn region  glslPreCondit       start="^\s*#\s*\(if\|ifdef\|ifndef\|else\|elif\|endif\)" skip="\\$" end="$" keepend
+syn region  glslDefine          start="^\s*#\s*\(define\|undef\)" skip="\\$" end="$" keepend
+syn keyword glslTokenConcat     ##
+syn keyword glslPredefinedMacro __LINE__ __FILE__ __VERSION__ GL_ES
+syn region  glslPreProc         start="^\s*#\s*\(error\|pragma\|extension\|version\|line\)" skip="\\$" end="$" keepend
+syn region  glslInclude         start="^\s*#\s*include" skip="\\$" end="$" keepend
+
+" Folding Blocks
+syn region glslCurlyBlock start="{" end="}" transparent fold
+syn region glslParenBlock start="(" end=")" transparent fold
+
+" Boolean Constants
+syn keyword glslBoolean true false
+
+" Integer Numbers
+syn match glslDecimalInt display "\<\(0\|[1-9]\d*\)[uU]\?"
+syn match glslOctalInt   display "\<0\o\+[uU]\?"
+syn match glslHexInt     display "\<0[xX]\x\+[uU]\?"
+
+" Float Numbers
+syn match glslFloat display "\<\d\+\.\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\="
+syn match glslFloat display "\<\.\d\+\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\="
+syn match glslFloat display "\<\d\+[eE][+-]\=\d\+\(lf\|LF\|f\|F\)\="
+syn match glslFloat display "\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=\(lf\|LF\|f\|F\)\="
+
+" Swizzles
+syn match glslSwizzle display /\.[xyzw]\{1,4\}\>/
+syn match glslSwizzle display /\.[rgba]\{1,4\}\>/
+syn match glslSwizzle display /\.[stpq]\{1,4\}\>/
+
+" Structure
+syn keyword glslStructure struct nextgroup=glslIdentifier skipwhite skipempty
+
+syn match glslIdentifier contains=glslIdentifierPrime "\%([a-zA-Z_]\)\%([a-zA-Z0-9_]\)*" display contained
+
+" Types
+syn keyword glslType accelerationStructureEXT
+syn keyword glslType atomic_uint
+syn keyword glslType bool
+syn keyword glslType bvec2
+syn keyword glslType bvec3
+syn keyword glslType bvec4
+syn keyword glslType dmat2
+syn keyword glslType dmat2x2
+syn keyword glslType dmat2x3
+syn keyword glslType dmat2x4
+syn keyword glslType dmat3
+syn keyword glslType dmat3x2
+syn keyword glslType dmat3x3
+syn keyword glslType dmat3x4
+syn keyword glslType dmat4
+syn keyword glslType dmat4x2
+syn keyword glslType dmat4x3
+syn keyword glslType dmat4x4
+syn keyword glslType double
+syn keyword glslType dvec2
+syn keyword glslType dvec3
+syn keyword glslType dvec4
+syn keyword glslType float
+syn keyword glslType iimage1D
+syn keyword glslType iimage1DArray
+syn keyword glslType iimage2D
+syn keyword glslType iimage2DArray
+syn keyword glslType iimage2DMS
+syn keyword glslType iimage2DMSArray
+syn keyword glslType iimage2DRect
+syn keyword glslType iimage3D
+syn keyword glslType iimageBuffer
+syn keyword glslType iimageCube
+syn keyword glslType iimageCubeArray
+syn keyword glslType image1D
+syn keyword glslType image1DArray
+syn keyword glslType image2D
+syn keyword glslType image2DArray
+syn keyword glslType image2DMS
+syn keyword glslType image2DMSArray
+syn keyword glslType image2DRect
+syn keyword glslType image3D
+syn keyword glslType imageBuffer
+syn keyword glslType imageCube
+syn keyword glslType imageCubeArray
+syn keyword glslType int
+syn keyword glslType isampler1D
+syn keyword glslType isampler1DArray
+syn keyword glslType isampler2D
+syn keyword glslType isampler2DArray
+syn keyword glslType isampler2DMS
+syn keyword glslType isampler2DMSArray
+syn keyword glslType isampler2DRect
+syn keyword glslType isampler3D
+syn keyword glslType isamplerBuffer
+syn keyword glslType isamplerCube
+syn keyword glslType isamplerCubeArray
+syn keyword glslType ivec2
+syn keyword glslType ivec3
+syn keyword glslType ivec4
+syn keyword glslType mat2
+syn keyword glslType mat2x2
+syn keyword glslType mat2x3
+syn keyword glslType mat2x4
+syn keyword glslType mat3
+syn keyword glslType mat3x2
+syn keyword glslType mat3x3
+syn keyword glslType mat3x4
+syn keyword glslType mat4
+syn keyword glslType mat4x2
+syn keyword glslType mat4x3
+syn keyword glslType mat4x4
+syn keyword glslType rayQueryEXT
+syn keyword glslType sampler1D
+syn keyword glslType sampler1DArray
+syn keyword glslType sampler1DArrayShadow
+syn keyword glslType sampler1DShadow
+syn keyword glslType sampler2D
+syn keyword glslType sampler2DArray
+syn keyword glslType sampler2DArrayShadow
+syn keyword glslType sampler2DMS
+syn keyword glslType sampler2DMSArray
+syn keyword glslType sampler2DRect
+syn keyword glslType sampler2DRectShadow
+syn keyword glslType sampler2DShadow
+syn keyword glslType sampler3D
+syn keyword glslType samplerBuffer
+syn keyword glslType samplerCube
+syn keyword glslType samplerCubeArray
+syn keyword glslType samplerCubeArrayShadow
+syn keyword glslType samplerCubeShadow
+syn keyword glslType uimage1D
+syn keyword glslType uimage1DArray
+syn keyword glslType uimage2D
+syn keyword glslType uimage2DArray
+syn keyword glslType uimage2DMS
+syn keyword glslType uimage2DMSArray
+syn keyword glslType uimage2DRect
+syn keyword glslType uimage3D
+syn keyword glslType uimageBuffer
+syn keyword glslType uimageCube
+syn keyword glslType uimageCubeArray
+syn keyword glslType uint
+syn keyword glslType usampler1D
+syn keyword glslType usampler1DArray
+syn keyword glslType usampler2D
+syn keyword glslType usampler2DArray
+syn keyword glslType usampler2DMS
+syn keyword glslType usampler2DMSArray
+syn keyword glslType usampler2DRect
+syn keyword glslType usampler3D
+syn keyword glslType usamplerBuffer
+syn keyword glslType usamplerCube
+syn keyword glslType usamplerCubeArray
+syn keyword glslType uvec2
+syn keyword glslType uvec3
+syn keyword glslType uvec4
+syn keyword glslType vec2
+syn keyword glslType vec3
+syn keyword glslType vec4
+syn keyword glslType void
+
+" Qualifiers
+syn keyword glslQualifier align
+syn keyword glslQualifier attribute
+syn keyword glslQualifier binding
+syn keyword glslQualifier buffer
+syn keyword glslQualifier callableDataEXT
+syn keyword glslQualifier callableDataInEXT
+syn keyword glslQualifier ccw
+syn keyword glslQualifier centroid
+syn keyword glslQualifier centroid varying
+syn keyword glslQualifier coherent
+syn keyword glslQualifier column_major
+syn keyword glslQualifier const
+syn keyword glslQualifier cw
+syn keyword glslQualifier depth_any
+syn keyword glslQualifier depth_greater
+syn keyword glslQualifier depth_less
+syn keyword glslQualifier depth_unchanged
+syn keyword glslQualifier early_fragment_tests
+syn keyword glslQualifier equal_spacing
+syn keyword glslQualifier flat
+syn keyword glslQualifier fractional_even_spacing
+syn keyword glslQualifier fractional_odd_spacing
+syn keyword glslQualifier highp
+syn keyword glslQualifier hitAttributeEXT
+syn keyword glslQualifier in
+syn keyword glslQualifier index
+syn keyword glslQualifier inout
+syn keyword glslQualifier invariant
+syn keyword glslQualifier invocations
+syn keyword glslQualifier isolines
+syn keyword glslQualifier layout
+syn keyword glslQualifier line_strip
+syn keyword glslQualifier lines
+syn keyword glslQualifier lines_adjacency
+syn keyword glslQualifier local_size_x
+syn keyword glslQualifier local_size_y
+syn keyword glslQualifier local_size_z
+syn keyword glslQualifier location
+syn keyword glslQualifier lowp
+syn keyword glslQualifier max_vertices
+syn keyword glslQualifier mediump
+syn keyword glslQualifier nonuniformEXT
+syn keyword glslQualifier noperspective
+syn keyword glslQualifier offset
+syn keyword glslQualifier origin_upper_left
+syn keyword glslQualifier out
+syn keyword glslQualifier packed
+syn keyword glslQualifier patch
+syn keyword glslQualifier pixel_center_integer
+syn keyword glslQualifier point_mode
+syn keyword glslQualifier points
+syn keyword glslQualifier precise
+syn keyword glslQualifier precision
+syn keyword glslQualifier quads
+syn keyword glslQualifier r11f_g11f_b10f
+syn keyword glslQualifier r16
+syn keyword glslQualifier r16_snorm
+syn keyword glslQualifier r16f
+syn keyword glslQualifier r16i
+syn keyword glslQualifier r16ui
+syn keyword glslQualifier r32f
+syn keyword glslQualifier r32i
+syn keyword glslQualifier r32ui
+syn keyword glslQualifier r8
+syn keyword glslQualifier r8_snorm
+syn keyword glslQualifier r8i
+syn keyword glslQualifier r8ui
+syn keyword glslQualifier rayPayloadEXT
+syn keyword glslQualifier rayPayloadInEXT
+syn keyword glslQualifier readonly
+syn keyword glslQualifier restrict
+syn keyword glslQualifier rg16
+syn keyword glslQualifier rg16_snorm
+syn keyword glslQualifier rg16f
+syn keyword glslQualifier rg16i
+syn keyword glslQualifier rg16ui
+syn keyword glslQualifier rg32f
+syn keyword glslQualifier rg32i
+syn keyword glslQualifier rg32ui
+syn keyword glslQualifier rg8
+syn keyword glslQualifier rg8_snorm
+syn keyword glslQualifier rg8i
+syn keyword glslQualifier rg8ui
+syn keyword glslQualifier rgb10_a2
+syn keyword glslQualifier rgb10_a2ui
+syn keyword glslQualifier rgba16
+syn keyword glslQualifier rgba16_snorm
+syn keyword glslQualifier rgba16f
+syn keyword glslQualifier rgba16i
+syn keyword glslQualifier rgba16ui
+syn keyword glslQualifier rgba32f
+syn keyword glslQualifier rgba32i
+syn keyword glslQualifier rgba32ui
+syn keyword glslQualifier rgba8
+syn keyword glslQualifier rgba8_snorm
+syn keyword glslQualifier rgba8i
+syn keyword glslQualifier rgba8ui
+syn keyword glslQualifier row_major
+syn keyword glslQualifier sample
+syn keyword glslQualifier shaderRecordEXT
+syn keyword glslQualifier shared
+syn keyword glslQualifier smooth
+syn keyword glslQualifier std140
+syn keyword glslQualifier std430
+syn keyword glslQualifier stream
+syn keyword glslQualifier triangle_strip
+syn keyword glslQualifier triangles
+syn keyword glslQualifier triangles_adjacency
+syn keyword glslQualifier uniform
+syn keyword glslQualifier varying
+syn keyword glslQualifier vertices
+syn keyword glslQualifier volatile
+syn keyword glslQualifier writeonly
+syn keyword glslQualifier xfb_buffer
+syn keyword glslQualifier xfb_offset
+syn keyword glslQualifier xfb_stride
+
+" Built-in Constants
+syn keyword glslBuiltinConstant gl_CullDistance
+syn keyword glslBuiltinConstant gl_HitKindBackFacingTriangleEXT
+syn keyword glslBuiltinConstant gl_HitKindFrontFacingTriangleEXT
+syn keyword glslBuiltinConstant gl_MaxAtomicCounterBindings
+syn keyword glslBuiltinConstant gl_MaxAtomicCounterBufferSize
+syn keyword glslBuiltinConstant gl_MaxClipDistances
+syn keyword glslBuiltinConstant gl_MaxClipPlanes
+syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxCombinedAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxCombinedClipAndCullDistances
+syn keyword glslBuiltinConstant gl_MaxCombinedImageUniforms
+syn keyword glslBuiltinConstant gl_MaxCombinedImageUnitsAndFragmentOutputs
+syn keyword glslBuiltinConstant gl_MaxCombinedShaderOutputResources
+syn keyword glslBuiltinConstant gl_MaxCombinedTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxComputeAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxComputeImageUniforms
+syn keyword glslBuiltinConstant gl_MaxComputeTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxComputeUniformComponents
+syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupCount
+syn keyword glslBuiltinConstant gl_MaxComputeWorkGroupSize
+syn keyword glslBuiltinConstant gl_MaxCullDistances
+syn keyword glslBuiltinConstant gl_MaxDrawBuffers
+syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxFragmentAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxFragmentImageUniforms
+syn keyword glslBuiltinConstant gl_MaxFragmentInputComponents
+syn keyword glslBuiltinConstant gl_MaxFragmentInputVectors
+syn keyword glslBuiltinConstant gl_MaxFragmentUniformComponents
+syn keyword glslBuiltinConstant gl_MaxFragmentUniformVectors
+syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxGeometryAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxGeometryImageUniforms
+syn keyword glslBuiltinConstant gl_MaxGeometryInputComponents
+syn keyword glslBuiltinConstant gl_MaxGeometryOutputComponents
+syn keyword glslBuiltinConstant gl_MaxGeometryOutputVertices
+syn keyword glslBuiltinConstant gl_MaxGeometryTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxGeometryTotalOutputComponents
+syn keyword glslBuiltinConstant gl_MaxGeometryUniformComponents
+syn keyword glslBuiltinConstant gl_MaxGeometryVaryingComponents
+syn keyword glslBuiltinConstant gl_MaxImageSamples
+syn keyword glslBuiltinConstant gl_MaxImageUnits
+syn keyword glslBuiltinConstant gl_MaxLights
+syn keyword glslBuiltinConstant gl_MaxPatchVertices
+syn keyword glslBuiltinConstant gl_MaxProgramTexelOffset
+syn keyword glslBuiltinConstant gl_MaxSamples
+syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxTessControlAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxTessControlImageUniforms
+syn keyword glslBuiltinConstant gl_MaxTessControlInputComponents
+syn keyword glslBuiltinConstant gl_MaxTessControlOutputComponents
+syn keyword glslBuiltinConstant gl_MaxTessControlTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxTessControlTotalOutputComponents
+syn keyword glslBuiltinConstant gl_MaxTessControlUniformComponents
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationImageUniforms
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationInputComponents
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationOutputComponents
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxTessEvaluationUniformComponents
+syn keyword glslBuiltinConstant gl_MaxTessGenLevel
+syn keyword glslBuiltinConstant gl_MaxTessPatchComponents
+syn keyword glslBuiltinConstant gl_MaxTextureCoords
+syn keyword glslBuiltinConstant gl_MaxTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxTextureUnits
+syn keyword glslBuiltinConstant gl_MaxTransformFeedbackBuffers
+syn keyword glslBuiltinConstant gl_MaxTransformFeedbackInterleavedComponents
+syn keyword glslBuiltinConstant gl_MaxVaryingComponents
+syn keyword glslBuiltinConstant gl_MaxVaryingFloats
+syn keyword glslBuiltinConstant gl_MaxVaryingVectors
+syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounterBuffers
+syn keyword glslBuiltinConstant gl_MaxVertexAtomicCounters
+syn keyword glslBuiltinConstant gl_MaxVertexAttribs
+syn keyword glslBuiltinConstant gl_MaxVertexImageUniforms
+syn keyword glslBuiltinConstant gl_MaxVertexOutputComponents
+syn keyword glslBuiltinConstant gl_MaxVertexOutputVectors
+syn keyword glslBuiltinConstant gl_MaxVertexTextureImageUnits
+syn keyword glslBuiltinConstant gl_MaxVertexUniformComponents
+syn keyword glslBuiltinConstant gl_MaxVertexUniformVectors
+syn keyword glslBuiltinConstant gl_MaxViewports
+syn keyword glslBuiltinConstant gl_MinProgramTexelOffset
+syn keyword glslBuiltinConstant gl_RayFlagsCullBackFacingTrianglesEXT
+syn keyword glslBuiltinConstant gl_RayFlagsCullFrontFacingTrianglesEXT
+syn keyword glslBuiltinConstant gl_RayFlagsCullNoOpaqueEXT
+syn keyword glslBuiltinConstant gl_RayFlagsCullOpaqueEXT
+syn keyword glslBuiltinConstant gl_RayFlagsNoOpaqueEXT
+syn keyword glslBuiltinConstant gl_RayFlagsNoneEXT
+syn keyword glslBuiltinConstant gl_RayFlagsOpaqueEXT
+syn keyword glslBuiltinConstant gl_RayFlagsSkipClosestHitShaderEXT
+syn keyword glslBuiltinConstant gl_RayFlagsTerminateOnFirstHitEXT
+syn keyword glslBuiltinConstant gl_RayQueryCandidateIntersectionAABBEXT
+syn keyword glslBuiltinConstant gl_RayQueryCandidateIntersectionTriangleEXT
+syn keyword glslBuiltinConstant gl_RayQueryCommittedIntersectionGeneratedEXT
+syn keyword glslBuiltinConstant gl_RayQueryCommittedIntersectionNoneEXT
+syn keyword glslBuiltinConstant gl_RayQueryCommittedIntersectionTriangleEXT
+
+" Built-in Variables
+syn keyword glslBuiltinVariable gl_BackColor
+syn keyword glslBuiltinVariable gl_BackLightModelProduct
+syn keyword glslBuiltinVariable gl_BackLightProduct
+syn keyword glslBuiltinVariable gl_BackLightProduct
+syn keyword glslBuiltinVariable gl_BackMaterial
+syn keyword glslBuiltinVariable gl_BackSecondaryColor
+syn keyword glslBuiltinVariable gl_ClipDistance
+syn keyword glslBuiltinVariable gl_ClipPlane
+syn keyword glslBuiltinVariable gl_ClipVertex
+syn keyword glslBuiltinVariable gl_Color
+syn keyword glslBuiltinVariable gl_DepthRange
+syn keyword glslBuiltinVariable gl_EyePlaneQ
+syn keyword glslBuiltinVariable gl_EyePlaneR
+syn keyword glslBuiltinVariable gl_EyePlaneS
+syn keyword glslBuiltinVariable gl_EyePlaneT
+syn keyword glslBuiltinVariable gl_Fog
+syn keyword glslBuiltinVariable gl_FogCoord
+syn keyword glslBuiltinVariable gl_FogFragCoord
+syn keyword glslBuiltinVariable gl_FragColor
+syn keyword glslBuiltinVariable gl_FragCoord
+syn keyword glslBuiltinVariable gl_FragData
+syn keyword glslBuiltinVariable gl_FragDepth
+syn keyword glslBuiltinVariable gl_FrontColor
+syn keyword glslBuiltinVariable gl_FrontFacing
+syn keyword glslBuiltinVariable gl_FrontLightModelProduct
+syn keyword glslBuiltinVariable gl_FrontLightProduct
+syn keyword glslBuiltinVariable gl_FrontMaterial
+syn keyword glslBuiltinVariable gl_FrontSecondaryColor
+syn keyword glslBuiltinVariable gl_GeometryIndexEXT
+syn keyword glslBuiltinVariable gl_GlobalInvocationID
+syn keyword glslBuiltinVariable gl_HelperInvocation
+syn keyword glslBuiltinVariable gl_HitKindEXT
+syn keyword glslBuiltinVariable gl_HitTEXT
+syn keyword glslBuiltinVariable gl_IncomingRayFlagsEXT
+syn keyword glslBuiltinVariable gl_InstanceCustomIndexEXT
+syn keyword glslBuiltinVariable gl_InstanceID
+syn keyword glslBuiltinVariable gl_InstanceID
+syn keyword glslBuiltinVariable gl_InvocationID
+syn keyword glslBuiltinVariable gl_LaunchIDEXT
+syn keyword glslBuiltinVariable gl_LaunchSizeEXT
+syn keyword glslBuiltinVariable gl_Layer
+syn keyword glslBuiltinVariable gl_LightModel
+syn keyword glslBuiltinVariable gl_LightSource
+syn keyword glslBuiltinVariable gl_LocalInvocationID
+syn keyword glslBuiltinVariable gl_LocalInvocationIndex
+syn keyword glslBuiltinVariable gl_ModelViewMatrix
+syn keyword glslBuiltinVariable gl_ModelViewMatrixInverse
+syn keyword glslBuiltinVariable gl_ModelViewMatrixInverseTranspose
+syn keyword glslBuiltinVariable gl_ModelViewMatrixTranspose
+syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrix
+syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverse
+syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixInverseTranspose
+syn keyword glslBuiltinVariable gl_ModelViewProjectionMatrixTranspose
+syn keyword glslBuiltinVariable gl_MultiTexCoord0
+syn keyword glslBuiltinVariable gl_MultiTexCoord1
+syn keyword glslBuiltinVariable gl_MultiTexCoord2
+syn keyword glslBuiltinVariable gl_MultiTexCoord3
+syn keyword glslBuiltinVariable gl_MultiTexCoord4
+syn keyword glslBuiltinVariable gl_MultiTexCoord5
+syn keyword glslBuiltinVariable gl_MultiTexCoord6
+syn keyword glslBuiltinVariable gl_MultiTexCoord7
+syn keyword glslBuiltinVariable gl_Normal
+syn keyword glslBuiltinVariable gl_NormalMatrix
+syn keyword glslBuiltinVariable gl_NormalScale
+syn keyword glslBuiltinVariable gl_NumSamples
+syn keyword glslBuiltinVariable gl_NumWorkGroups
+syn keyword glslBuiltinVariable gl_ObjectPlaneQ
+syn keyword glslBuiltinVariable gl_ObjectPlaneR
+syn keyword glslBuiltinVariable gl_ObjectPlaneS
+syn keyword glslBuiltinVariable gl_ObjectPlaneT
+syn keyword glslBuiltinVariable gl_ObjectRayDirectionEXT
+syn keyword glslBuiltinVariable gl_ObjectRayOriginEXT
+syn keyword glslBuiltinVariable gl_ObjectToWorld3x4EXT
+syn keyword glslBuiltinVariable gl_ObjectToWorldEXT
+syn keyword glslBuiltinVariable gl_PatchVerticesIn
+syn keyword glslBuiltinVariable gl_Point
+syn keyword glslBuiltinVariable gl_PointCoord
+syn keyword glslBuiltinVariable gl_PointSize
+syn keyword glslBuiltinVariable gl_Position
+syn keyword glslBuiltinVariable gl_PrimitiveID
+syn keyword glslBuiltinVariable gl_PrimitiveID
+syn keyword glslBuiltinVariable gl_PrimitiveIDIn
+syn keyword glslBuiltinVariable gl_ProjectionMatrix
+syn keyword glslBuiltinVariable gl_ProjectionMatrixInverse
+syn keyword glslBuiltinVariable gl_ProjectionMatrixInverseTranspose
+syn keyword glslBuiltinVariable gl_ProjectionMatrixTranspose
+syn keyword glslBuiltinVariable gl_RayTmaxEXT
+syn keyword glslBuiltinVariable gl_RayTminEXT
+syn keyword glslBuiltinVariable gl_SampleID
+syn keyword glslBuiltinVariable gl_SampleMask
+syn keyword glslBuiltinVariable gl_SampleMaskIn
+syn keyword glslBuiltinVariable gl_SamplePosition
+syn keyword glslBuiltinVariable gl_SecondaryColor
+syn keyword glslBuiltinVariable gl_TessCoord
+syn keyword glslBuiltinVariable gl_TessLevelInner
+syn keyword glslBuiltinVariable gl_TessLevelOuter
+syn keyword glslBuiltinVariable gl_TexCoord
+syn keyword glslBuiltinVariable gl_TextureEnvColor
+syn keyword glslBuiltinVariable gl_TextureMatrix
+syn keyword glslBuiltinVariable gl_TextureMatrixInverse
+syn keyword glslBuiltinVariable gl_TextureMatrixInverseTranspose
+syn keyword glslBuiltinVariable gl_TextureMatrixTranspose
+syn keyword glslBuiltinVariable gl_Vertex
+syn keyword glslBuiltinVariable gl_VertexID
+syn keyword glslBuiltinVariable gl_VertexIndex
+syn keyword glslBuiltinVariable gl_ViewportIndex
+syn keyword glslBuiltinVariable gl_WorkGroupID
+syn keyword glslBuiltinVariable gl_WorkGroupSize
+syn keyword glslBuiltinVariable gl_WorldRayDirectionEXT
+syn keyword glslBuiltinVariable gl_WorldRayOriginEXT
+syn keyword glslBuiltinVariable gl_WorldToObject3x4EXT
+syn keyword glslBuiltinVariable gl_WorldToObjectEXT
+syn keyword glslBuiltinVariable gl_in
+syn keyword glslBuiltinVariable gl_out
+
+" Built-in Functions
+syn keyword glslBuiltinFunction EmitStreamVertex
+syn keyword glslBuiltinFunction EmitVertex
+syn keyword glslBuiltinFunction EndPrimitive
+syn keyword glslBuiltinFunction EndStreamPrimitive
+syn keyword glslBuiltinFunction abs
+syn keyword glslBuiltinFunction acos
+syn keyword glslBuiltinFunction acosh
+syn keyword glslBuiltinFunction all
+syn keyword glslBuiltinFunction any
+syn keyword glslBuiltinFunction asin
+syn keyword glslBuiltinFunction asinh
+syn keyword glslBuiltinFunction atan
+syn keyword glslBuiltinFunction atanh
+syn keyword glslBuiltinFunction atomicAdd
+syn keyword glslBuiltinFunction atomicAnd
+syn keyword glslBuiltinFunction atomicCompSwap
+syn keyword glslBuiltinFunction atomicCounter
+syn keyword glslBuiltinFunction atomicCounterDecrement
+syn keyword glslBuiltinFunction atomicCounterIncrement
+syn keyword glslBuiltinFunction atomicExchange
+syn keyword glslBuiltinFunction atomicMax
+syn keyword glslBuiltinFunction atomicMin
+syn keyword glslBuiltinFunction atomicOr
+syn keyword glslBuiltinFunction atomicXor
+syn keyword glslBuiltinFunction barrier
+syn keyword glslBuiltinFunction bitCount
+syn keyword glslBuiltinFunction bitfieldExtract
+syn keyword glslBuiltinFunction bitfieldInsert
+syn keyword glslBuiltinFunction bitfieldReverse
+syn keyword glslBuiltinFunction ceil
+syn keyword glslBuiltinFunction clamp
+syn keyword glslBuiltinFunction cos
+syn keyword glslBuiltinFunction cosh
+syn keyword glslBuiltinFunction cross
+syn keyword glslBuiltinFunction dFdx
+syn keyword glslBuiltinFunction dFdxCoarse
+syn keyword glslBuiltinFunction dFdxFine
+syn keyword glslBuiltinFunction dFdy
+syn keyword glslBuiltinFunction dFdyCoarse
+syn keyword glslBuiltinFunction dFdyFine
+syn keyword glslBuiltinFunction degrees
+syn keyword glslBuiltinFunction determinant
+syn keyword glslBuiltinFunction distance
+syn keyword glslBuiltinFunction dot
+syn keyword glslBuiltinFunction equal
+syn keyword glslBuiltinFunction executeCallableEXT
+syn keyword glslBuiltinFunction exp
+syn keyword glslBuiltinFunction exp2
+syn keyword glslBuiltinFunction faceforward
+syn keyword glslBuiltinFunction findLSB
+syn keyword glslBuiltinFunction findMSB
+syn keyword glslBuiltinFunction floatBitsToInt
+syn keyword glslBuiltinFunction floatBitsToUint
+syn keyword glslBuiltinFunction floor
+syn keyword glslBuiltinFunction fma
+syn keyword glslBuiltinFunction fract
+syn keyword glslBuiltinFunction frexp
+syn keyword glslBuiltinFunction ftransform
+syn keyword glslBuiltinFunction fwidth
+syn keyword glslBuiltinFunction fwidthCoarse
+syn keyword glslBuiltinFunction fwidthFine
+syn keyword glslBuiltinFunction greaterThan
+syn keyword glslBuiltinFunction greaterThanEqual
+syn keyword glslBuiltinFunction groupMemoryBarrier
+syn keyword glslBuiltinFunction ignoreIntersectionEXT
+syn keyword glslBuiltinFunction imageAtomicAdd
+syn keyword glslBuiltinFunction imageAtomicAnd
+syn keyword glslBuiltinFunction imageAtomicCompSwap
+syn keyword glslBuiltinFunction imageAtomicExchange
+syn keyword glslBuiltinFunction imageAtomicMax
+syn keyword glslBuiltinFunction imageAtomicMin
+syn keyword glslBuiltinFunction imageAtomicOr
+syn keyword glslBuiltinFunction imageAtomicXor
+syn keyword glslBuiltinFunction imageLoad
+syn keyword glslBuiltinFunction imageSize
+syn keyword glslBuiltinFunction imageStore
+syn keyword glslBuiltinFunction imulExtended
+syn keyword glslBuiltinFunction intBitsToFloat
+syn keyword glslBuiltinFunction interpolateAtCentroid
+syn keyword glslBuiltinFunction interpolateAtOffset
+syn keyword glslBuiltinFunction interpolateAtSample
+syn keyword glslBuiltinFunction inverse
+syn keyword glslBuiltinFunction inversesqrt
+syn keyword glslBuiltinFunction isinf
+syn keyword glslBuiltinFunction isnan
+syn keyword glslBuiltinFunction ldexp
+syn keyword glslBuiltinFunction length
+syn keyword glslBuiltinFunction lessThan
+syn keyword glslBuiltinFunction lessThanEqual
+syn keyword glslBuiltinFunction log
+syn keyword glslBuiltinFunction log2
+syn keyword glslBuiltinFunction matrixCompMult
+syn keyword glslBuiltinFunction max
+syn keyword glslBuiltinFunction memoryBarrier
+syn keyword glslBuiltinFunction memoryBarrierAtomicCounter
+syn keyword glslBuiltinFunction memoryBarrierBuffer
+syn keyword glslBuiltinFunction memoryBarrierImage
+syn keyword glslBuiltinFunction memoryBarrierShared
+syn keyword glslBuiltinFunction min
+syn keyword glslBuiltinFunction mix
+syn keyword glslBuiltinFunction mod
+syn keyword glslBuiltinFunction modf
+syn keyword glslBuiltinFunction noise1
+syn keyword glslBuiltinFunction noise2
+syn keyword glslBuiltinFunction noise3
+syn keyword glslBuiltinFunction noise4
+syn keyword glslBuiltinFunction normalize
+syn keyword glslBuiltinFunction not
+syn keyword glslBuiltinFunction notEqual
+syn keyword glslBuiltinFunction outerProduct
+syn keyword glslBuiltinFunction packDouble2x32
+syn keyword glslBuiltinFunction packHalf2x16
+syn keyword glslBuiltinFunction packSnorm2x16
+syn keyword glslBuiltinFunction packSnorm4x8
+syn keyword glslBuiltinFunction packUnorm2x16
+syn keyword glslBuiltinFunction packUnorm4x8
+syn keyword glslBuiltinFunction pow
+syn keyword glslBuiltinFunction radians
+syn keyword glslBuiltinFunction rayQueryConfirmIntersectionEXT
+syn keyword glslBuiltinFunction rayQueryGenerateIntersectionEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionBarycentricsEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionCandidateAABBOpaqueEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionFrontFaceEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionGeometryIndexEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionInstanceCustomIndexEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionInstanceIdEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionObjectRayDirectionEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionObjectRayOriginEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionObjectToWorldEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionPrimitiveIndexEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionTEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionTypeEXT
+syn keyword glslBuiltinFunction rayQueryGetIntersectionWorldToObjectEXT
+syn keyword glslBuiltinFunction rayQueryGetRayFlagsEXT
+syn keyword glslBuiltinFunction rayQueryGetRayTMinEXT
+syn keyword glslBuiltinFunction rayQueryGetWorldRayDirectionEXT
+syn keyword glslBuiltinFunction rayQueryGetWorldRayOriginEXT
+syn keyword glslBuiltinFunction rayQueryInitializeEXT
+syn keyword glslBuiltinFunction rayQueryProceedEXT
+syn keyword glslBuiltinFunction rayQueryTerminateEXT
+syn keyword glslBuiltinFunction reflect
+syn keyword glslBuiltinFunction refract
+syn keyword glslBuiltinFunction reportIntersectionEXT
+syn keyword glslBuiltinFunction round
+syn keyword glslBuiltinFunction roundEven
+syn keyword glslBuiltinFunction shadow1D
+syn keyword glslBuiltinFunction shadow1DLod
+syn keyword glslBuiltinFunction shadow1DProj
+syn keyword glslBuiltinFunction shadow1DProjLod
+syn keyword glslBuiltinFunction shadow2D
+syn keyword glslBuiltinFunction shadow2DLod
+syn keyword glslBuiltinFunction shadow2DProj
+syn keyword glslBuiltinFunction shadow2DProjLod
+syn keyword glslBuiltinFunction sign
+syn keyword glslBuiltinFunction sin
+syn keyword glslBuiltinFunction sinh
+syn keyword glslBuiltinFunction smoothstep
+syn keyword glslBuiltinFunction sqrt
+syn keyword glslBuiltinFunction step
+syn keyword glslBuiltinFunction tan
+syn keyword glslBuiltinFunction tanh
+syn keyword glslBuiltinFunction terminateRayEXT
+syn keyword glslBuiltinFunction texelFetch
+syn keyword glslBuiltinFunction texelFetchOffset
+syn keyword glslBuiltinFunction texture
+syn keyword glslBuiltinFunction texture1D
+syn keyword glslBuiltinFunction texture1DLod
+syn keyword glslBuiltinFunction texture1DProj
+syn keyword glslBuiltinFunction texture1DProjLod
+syn keyword glslBuiltinFunction texture2D
+syn keyword glslBuiltinFunction texture2DLod
+syn keyword glslBuiltinFunction texture2DProj
+syn keyword glslBuiltinFunction texture2DProjLod
+syn keyword glslBuiltinFunction texture3D
+syn keyword glslBuiltinFunction texture3DLod
+syn keyword glslBuiltinFunction texture3DProj
+syn keyword glslBuiltinFunction texture3DProjLod
+syn keyword glslBuiltinFunction textureCube
+syn keyword glslBuiltinFunction textureCubeLod
+syn keyword glslBuiltinFunction textureGather
+syn keyword glslBuiltinFunction textureGatherOffset
+syn keyword glslBuiltinFunction textureGatherOffsets
+syn keyword glslBuiltinFunction textureGrad
+syn keyword glslBuiltinFunction textureGradOffset
+syn keyword glslBuiltinFunction textureLod
+syn keyword glslBuiltinFunction textureLodOffset
+syn keyword glslBuiltinFunction textureOffset
+syn keyword glslBuiltinFunction textureProj
+syn keyword glslBuiltinFunction textureProjGrad
+syn keyword glslBuiltinFunction textureProjGradOffset
+syn keyword glslBuiltinFunction textureProjLod
+syn keyword glslBuiltinFunction textureProjLodOffset
+syn keyword glslBuiltinFunction textureProjOffset
+syn keyword glslBuiltinFunction textureQueryLevels
+syn keyword glslBuiltinFunction textureQueryLod
+syn keyword glslBuiltinFunction textureSize
+syn keyword glslBuiltinFunction traceRayEXT
+syn keyword glslBuiltinFunction transpose
+syn keyword glslBuiltinFunction trunc
+syn keyword glslBuiltinFunction uaddCarry
+syn keyword glslBuiltinFunction uintBitsToFloat
+syn keyword glslBuiltinFunction umulExtended
+syn keyword glslBuiltinFunction unpackDouble2x32
+syn keyword glslBuiltinFunction unpackHalf2x16
+syn keyword glslBuiltinFunction unpackSnorm2x16
+syn keyword glslBuiltinFunction unpackSnorm4x8
+syn keyword glslBuiltinFunction unpackUnorm2x16
+syn keyword glslBuiltinFunction unpackUnorm4x8
+syn keyword glslBuiltinFunction usubBorrow
+
+hi def link glslConditional     Conditional
+hi def link glslRepeat          Repeat
+hi def link glslStatement       Statement
+hi def link glslTodo            Todo
+hi def link glslCommentL        glslComment
+hi def link glslCommentStart    glslComment
+hi def link glslComment         Comment
+hi def link glslPreCondit       PreCondit
+hi def link glslDefine          Define
+hi def link glslTokenConcat     glslPreProc
+hi def link glslPredefinedMacro Macro
+hi def link glslPreProc         PreProc
+hi def link glslInclude         Include
+hi def link glslBoolean         Boolean
+hi def link glslDecimalInt      glslInteger
+hi def link glslOctalInt        glslInteger
+hi def link glslHexInt          glslInteger
+hi def link glslInteger         Number
+hi def link glslFloat           Float
+hi def link glslIdentifierPrime glslIdentifier
+hi def link glslIdentifier      Identifier
+hi def link glslStructure       Structure
+hi def link glslType            Type
+hi def link glslQualifier       StorageClass
+hi def link glslBuiltinConstant Constant
+hi def link glslBuiltinFunction Function
+hi def link glslBuiltinVariable Identifier
+hi def link glslSwizzle         Identifier
+
+let b:current_syntax = 'glsl'
-- 
cgit 


From 0cdeb06db0062951f2f2d2998510e2fff7e0faee Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Thu, 25 Jul 2024 09:55:59 +0800
Subject: vim-patch:ddbb6fe: runtime(vim): Update base-syntax, improve :set
 highlighting (#29850)

- Match bang, "all" and "termcap" options, and trailing command
  separator "|".
- Highlight set assignment operators.
- Match multiline :set and multiline option values.
- Mention the newer "0o" octal prefix at :help :set=.

closes: vim/vim#15329

https://github.com/vim/vim/commit/ddbb6fe2d0344e93436c5602b7a06169f49a9b52

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 1c6aa72448..8dd72d76e5 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -36,8 +36,8 @@ syn keyword vimOnlyOption contained	nobiosk nobioskey noconsk noconskey nocp noc
 " Invertible setting variants
 syn keyword vimOnlyOption contained	invbiosk invbioskey invconsk invconskey invcp invcompatible invguipty invmacatsui invsn invshortname invta invtextauto invtx invtextmode invtf invttyfast invtbi invttybuiltin invwiv invweirdinvert
 " termcap codes (which can also be set) {{{2
-" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption contained', END_STR=''
-syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b t_8u
+" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption contained', END_STR='skipwhite nextgroup=vimSetEqual,vimSetMod'
+syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b t_8u t_xo skipwhite nextgroup=vimSetEqual,vimSetMod
 " term key codes
 syn keyword vimOption contained	t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku
 syn match   vimTermOption contained	"t_%1"
@@ -497,11 +497,15 @@ syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
 syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
-syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,@vimComment,vimSetString,vimSetMod
-syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$"	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar
-syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar
+syn match	vimSet		"\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimSetRegion
+syn region	vimSetRegion	contained	start="\S" skip=+\\\\\|\\|\|\n\s*\\\|\n\s*["#]\\ + matchgroup=vimCmdSep end="|" end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=@vimComment,@vimContinue,vimErrSetting,vimOption,vimSetAll,vimSetTermcap
+syn region	vimSetEqual	contained	matchgroup=vimOper start="[=:]\|[-+^]=" skip=+\\\\\|\\|\|\\\s\|\n\s*\\\|\n\s*["#]\\ \|^\s*\\\|^\s*["#]\\ + matchgroup=vimCmdSep end="|" end="\ze\s" end="$" contains=@vimContinue,vimCtrlChar,vimEnvvar,vimNotation,vimSetSep
+syn match	vimSetBang	contained	"\a\@1<=!" skipwhite nextgroup=vimSetAll,vimSetTermcap
+syn keyword	vimSetAll	contained	all nextgroup=vimSetMod
+syn keyword	vimSetTermcap	contained	termcap
+syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
 syn match	vimSetSep	contained	"[,:]"
-syn match	vimSetMod	contained	"&vim\=\|[!&?<]\|all&"
+syn match	vimSetMod	contained	"\a\@1<=\%(&vim\=\|[!&?<]\)"
 
 " Variable Declarations: {{{2
 " =====================
@@ -1228,9 +1232,13 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimSearchDelim	Statement
  hi def link vimSearch	vimString
  hi def link vimSep	Delimiter
+ hi def link vimSet	vimCommand
+ hi def link vimSetAll	vimOption
+ hi def link vimSetBang	vimBang
  hi def link vimSetMod	vimOption
- hi def link vimSetSep	Statement
+ hi def link vimSetSep	vimSep
  hi def link vimSetString	vimString
+ hi def link vimSetTermcap	vimOption
  hi def link vimShebang	PreProc
  hi def link vimSleep	vimCommand
  hi def link vimSleepArg	Constant
-- 
cgit 


From 108d2bf74bc02eaed74beae5589d7116936aefa5 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Thu, 25 Jul 2024 09:26:13 +0200
Subject: vim-patch:e73e5b8: runtime(java): Optionally highlight the :: token
 for method references

This token will be highlighted, similar to the arrow of
lambda expressions, whenever "g:java_highlight_functions" is
defined.

Also:

- Improve the recognition of _switch-case_ labels
  (D-Cysteine).
- Remove insignificant empty statements in syntax test
  files.

closes: vim/vim#15322

References:
https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.13
https://github.com/fleiner/vim/pull/1

https://github.com/vim/vim/commit/e73e5b889b52675a9ea58cf154235c7f25d107d5

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Co-authored-by: D-Cysteine <54219287+D-Cysteine@users.noreply.github.com>
---
 runtime/syntax/java.vim | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 4beeaad224..9c4964db71 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Jun 22
+" Last Change:		2024 Jul 23
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -260,7 +260,7 @@ if exists("java_space_errors")
   endif
 endif
 
-exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '\%(\\)\@' . s:ff.Peek('7', '') . '" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause
 syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline
 " Consider grouped _default_ _case_ labels, i.e.
@@ -497,8 +497,12 @@ syn match   javaParenError	 "\]"
 
 hi def link javaParenError	javaError
 
-" Lambda expressions (JLS-17, §15.27).
+" Lambda expressions (JLS-17, §15.27) and method references (JLS-17,
+" §15.13).
 if exists("java_highlight_functions")
+  syn match javaMethodRef ":::\@!"
+  hi def link javaMethodRef javaFuncDef
+
   if exists("java_highlight_signature")
     let s:ff.LambdaDef = s:ff.LeftConstant
   else
-- 
cgit 


From a2840d0117efeb95a45b511a25cc1d826c525a17 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Fri, 26 Jul 2024 00:35:37 +0200
Subject: vim-patch:d5cc8ee: runtime(progress): Update maintainer info

The Progress syntax file was last updated eight years ago, and the header
information twelve years ago. Attempts to contact the last known maintainer at
the email address listed in the file header (with the spam-prevention characters
removed) produced a delivery failure notification stating that the address did
not exist.

I intend to submit some minor improvements to this file. Per [1], I will assume
maintainership of it for the time being.

related: vim/vim#15339

[1]: https://groups.google.com/g/vim_dev/c/I3pOKIOgM4A/m/pekGQB_lBwAJ

https://github.com/vim/vim/commit/d5cc8ee0fa3e952492aed0c2f7e97586a0a87ab7

Co-authored-by: Daniel Smith 
---
 runtime/syntax/progress.vim | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/progress.vim b/runtime/syntax/progress.vim
index 5e7cfef299..2227fbec2a 100644
--- a/runtime/syntax/progress.vim
+++ b/runtime/syntax/progress.vim
@@ -3,7 +3,8 @@
 " Filename extensions:	*.p (collides with Pascal),
 "			*.i (collides with assembler)
 "			*.w (collides with cweb)
-" Maintainer:		Philip Uren		 Remove SPAXY spam block
+" Maintainer:           Daniel Smith 
+" Previous Maintainer:  Philip Uren  Remove SPAXY spam block
 " Contributors:         Matthew Stickney	
 " 			Chris Ruprecht		
 "			Mikhail Kuperblum	
-- 
cgit 


From bb185d63ab86e305e35603297a88c0ec8fba27ae Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Fri, 26 Jul 2024 00:35:47 +0200
Subject: vim-patch:4d68054: runtime(progress): Add single-line comment syntax

Progress OpenEdge 11.6 added a new C-like single-line comment syntax; such
comments begin with `//` and proceed to the end of the line.

Add a new syntax group `ProgressLineComment` to implement highlighting for this
syntax. Rename the existing group from `ProgressComment` to
`ProgressBlockComment`, and introduce a cluster named `ProgressComment` to
encapsulate both.

closes: vim/vim#15339

https://github.com/vim/vim/commit/4d68054c1e49b937a1aa9567196b97b36fe99c27

Co-authored-by: Daniel Smith 
---
 runtime/syntax/progress.vim | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/progress.vim b/runtime/syntax/progress.vim
index 2227fbec2a..4b8f61287c 100644
--- a/runtime/syntax/progress.vim
+++ b/runtime/syntax/progress.vim
@@ -9,8 +9,7 @@
 " 			Chris Ruprecht		
 "			Mikhail Kuperblum	
 "			John Florian		
-" Version:              13
-" Last Change:		Nov 11 2012
+" Last Change:		Jul 23 2024
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -117,8 +116,10 @@ syn match ProgressShowTab "\t"
 " If you don't like white space on the end of lines, uncomment this:
 " syn match   ProgressSpaceError "\s\+$"
 
-syn region ProgressComment		start="/\*"  end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug,@Spell
-syn region ProgressInclude		start="^[ 	]*[{]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
+syn region ProgressBlockComment	start="/\*"  end="\*/" contains=ProgressBlockComment,ProgressTodo,ProgressDebug,@Spell
+syn match  ProgressLineComment		"//.*$" contains=ProgressTodo,ProgressDebug,@Spell
+syn cluster ProgressComment		contains=ProgressBlockComment,ProgressLineComment
+syn region ProgressInclude		start="^[ 	]*[{]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,@ProgressComment
 syn region ProgressPreProc		start="&" end="\>" contained
 
 " This next line works reasonably well.
@@ -282,6 +283,8 @@ syn sync lines=800
 hi def link ProgressByte		Number
 hi def link ProgressCase		Repeat
 hi def link ProgressComment		Comment
+hi def link ProgressBlockComment	ProgressComment
+hi def link ProgressLineComment	ProgressComment
 hi def link ProgressConditional	Conditional
 hi def link ProgressDebug		Debug
 hi def link ProgressDo		Repeat
-- 
cgit 


From 60967cd9aac545a5a5f17070d39121d4070e2298 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Sat, 27 Jul 2024 16:48:29 +0800
Subject: vim-patch:9.1.0616: filetype: Make syntax highlighting off for MS
 Makefiles (#29874)

Problem:  filetype: Make syntax highlighting off for MS Makefiles
Solution: Try to detect MS Makefiles and adjust syntax rules to it.
          (Ken Takata)

Highlighting of variable expansion in Microsoft Makefile can be broken.
E.g.:
https://github.com/vim/vim/blob/2979cfc2627d76a9c09cad46a1647dcd4aa73f5f/src/Make_mvc.mak#L1331

Don't use backslash as escape characters if `make_microsoft` is set.
Also fix that `make_no_comments` was not considered if `make_microsoft`
was set.

Also add description for `make_microsoft` and `make_no_comments` to the
documentation and include a very simple filetype test

closes: vim/vim#15341

https://github.com/vim/vim/commit/eb4b903c9b238ebcc1d14cfcb207129b4931a33d

Co-authored-by: Ken Takata 
---
 runtime/syntax/make.vim | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/make.vim b/runtime/syntax/make.vim
index b4573044ca..d3ddf78291 100644
--- a/runtime/syntax/make.vim
+++ b/runtime/syntax/make.vim
@@ -28,8 +28,13 @@ syn match makePreCondit "^!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\
 syn case match
 
 " identifiers
-syn region makeIdent	start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent
-syn region makeIdent	start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent
+if exists("b:make_microsoft") || exists("make_microsoft")
+  syn region makeIdent	start="\$(" end=")" contains=makeStatement,makeIdent
+  syn region makeIdent	start="\${" end="}" contains=makeStatement,makeIdent
+else
+  syn region makeIdent	start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent
+  syn region makeIdent	start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent
+endif
 syn match makeIdent	"\$\$\w*"
 syn match makeIdent	"\$[^({]"
 syn match makeIdent	"^ *[^:#= \t]*\s*[:+?!*]="me=e-2
@@ -78,11 +83,13 @@ syn match makeOverride	"^ *override\>"
 syn match makeStatement contained "(\(abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|file\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|guile\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|subst\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
 
 " Comment
-if exists("make_microsoft")
-   syn match  makeComment "#.*" contains=@Spell,makeTodo
-elseif !exists("make_no_comments")
-   syn region  makeComment	start="#" end="^$" end="[^\\]$" keepend contains=@Spell,makeTodo
-   syn match   makeComment	"#$" contains=@Spell
+if !exists("make_no_comments")
+  if exists("b:make_microsoft") || exists("make_microsoft")
+    syn match   makeComment	"#.*" contains=@Spell,makeTodo
+  else
+    syn region  makeComment	start="#" end="^$" end="[^\\]$" keepend contains=@Spell,makeTodo
+    syn match   makeComment	"#$" contains=@Spell
+  endif
 endif
 syn keyword makeTodo TODO FIXME XXX contained
 
-- 
cgit 


From 8168b228e0f6b917344f2735608314ef81606358 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sun, 28 Jul 2024 17:08:55 +0200
Subject: vim-patch:4c45425: runtime(debcopyright): Add support for
 Files-Included in syntax script

Full support (including for components) was finished with this commit:
https://salsa.debian.org/debian/devscripts/-/commit/ee90dad7712a7db1e9541b405e065a08d29d62f8

closes: vim/vim#15374

https://github.com/vim/vim/commit/4c45425c10a94382a435239e8f63c6b1ca55d4e4

Co-authored-by: josch 
---
 runtime/syntax/debcopyright.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/debcopyright.vim b/runtime/syntax/debcopyright.vim
index 6f76b5c868..cb9e8965de 100644
--- a/runtime/syntax/debcopyright.vim
+++ b/runtime/syntax/debcopyright.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:    Debian copyright file
 " Maintainer:  Debian Vim Maintainers
-" Last Change: 2023 Jan 16
+" Last Change: 2024 Jul 28
 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcopyright.vim
 
 " Standard syntax initialization
@@ -15,7 +15,7 @@ set cpo&vim
 syn case match
 
 syn match debcopyrightUrl       "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
-syn match debcopyrightKey       "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\|Files-Excluded\%(-[-a-zA-Z0-9]\+\)\=\): *"
+syn match debcopyrightKey       "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\|Files-\%(Excluded\|Included\)\%(-[-a-zA-Z0-9]\+\)\=\): *"
 syn match debcopyrightEmail     "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
 syn match debcopyrightEmail     "<.\{-}>"
 syn match debcopyrightComment   "^#.*$" contains=@Spell
-- 
cgit 


From 1b5a394ffd4bb638ec9cbbb5e4d12d11225389cf Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Mon, 29 Jul 2024 21:19:24 +0200
Subject: vim-patch:011f222: runtime(thrift): add ftplugin, indent and syntax
 scripts

Problem: Apache Thrift files misses ftplugin, indent and syntax scripts

Solution:
- add ftplugin and indent scripts
- add thrift indent test
- port the syntax script from apache/thrift (Apache License 2)

Reference:
https://diwakergupta.github.io/thrift-missing-guide/#_language_reference

closes: vim/vim#15387

https://github.com/vim/vim/commit/011f2223e5df68f45a382f6a9dff6eaf5ecac346

Co-authored-by: Yinzuo Jiang 
---
 runtime/syntax/thrift.vim | 74 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)
 create mode 100644 runtime/syntax/thrift.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/thrift.vim b/runtime/syntax/thrift.vim
new file mode 100644
index 0000000000..502e98852a
--- /dev/null
+++ b/runtime/syntax/thrift.vim
@@ -0,0 +1,74 @@
+" Vim syntax file
+" Language: Thrift
+" Original Author: Martin Smith 
+" Maintainer: Yinzuo Jiang 
+" Last Change: 2024/07/29
+" https://github.com/apache/thrift/blob/master/contrib/thrift.vim
+"
+" Licensed to the Apache Software Foundation (ASF) under one
+" or more contributor license agreements. See the NOTICE file
+" distributed with this work for additional information
+" regarding copyright ownership. The ASF licenses this file
+" to you under the Apache License, Version 2.0 (the
+" "License"); you may not use this file except in compliance
+" with the License. You may obtain a copy of the License at
+"
+"   http://www.apache.org/licenses/LICENSE-2.0
+"
+" Unless required by applicable law or agreed to in writing,
+" software distributed under the License is distributed on an
+" "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+" KIND, either express or implied. See the License for the
+" specific language governing permissions and limitations
+" under the License.
+"
+
+if exists("b:current_syntax")
+  finish
+endif
+
+" Todo
+syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained
+
+" Comments
+syn match thriftComment "#.*" contains=thriftTodo
+syn region thriftComment start="/\*" end="\*/" contains=thriftTodo
+syn match thriftComment "//.\{-}\(?>\|$\)\@="
+
+" String
+syn region thriftStringDouble matchgroup=None start=+"+  end=+"+
+
+" Number
+syn match thriftNumber "-\=\<\d\+\>" contained
+
+" Keywords
+syn keyword thriftKeyword namespace
+syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs
+syn keyword thriftKeyword include cpp_include cpp_type const optional required
+syn keyword thriftBasicTypes void bool byte i8 i16 i32 i64 double string binary
+syn keyword thriftStructure map list set struct typedef exception enum throws union
+
+" Special
+syn match thriftSpecial "\d\+:"
+
+" Structure
+syn keyword thriftStructure service oneway extends
+"async"         { return tok_async;         }
+"exception"     { return tok_xception;      }
+"extends"       { return tok_extends;       }
+"throws"        { return tok_throws;        }
+"service"       { return tok_service;       }
+"enum"          { return tok_enum;          }
+"const"         { return tok_const;         }
+
+hi def link thriftComment Comment
+hi def link thriftKeyword Special
+hi def link thriftBasicTypes Type
+hi def link thriftStructure StorageClass
+hi def link thriftTodo Todo
+hi def link thriftString String
+hi def link thriftNumber Number
+hi def link thriftSpecial Special
+hi def link thriftStructure Structure
+
+let b:current_syntax = "thrift"
-- 
cgit 


From 1dd2bf926d14297e979509dbb731825a32f649b9 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Tue, 30 Jul 2024 21:41:08 +0200
Subject: vim-patch:df9f67e: runtime(html): update syntax script to sync by 250
 minlines by default

closes: vim/vim#14071

https://github.com/vim/vim/commit/df9f67e10d214e0124f2141f59593529801307a4

Co-authored-by: Christian Brabandt 
---
 runtime/syntax/html.vim | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index d067dde83c..ca7c7f1cdd 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -4,6 +4,7 @@
 " Previous Maintainers: Jorge Maldonado Ventura 
 "			Claudio Fleiner 
 " Last Change:		2023 Nov 28
+" 2024 Jul 30 by Vim Project: increase syn-sync-minlines to 250
 
 " See :help html.vim for some comments and a description of the options
 
@@ -320,7 +321,7 @@ if main_syntax == "html"
   syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
   syn sync match htmlHighlight groupthere javaScript "
Date: Wed, 31 Jul 2024 22:44:22 +0200
Subject: vim-patch:56e8ed6: runtime(kivy): Updated maintainer info for syntax
 script

closes: vim/vim#15405

https://github.com/vim/vim/commit/56e8ed61629cebf737f637d843b9f4a397fbcc72

Co-authored-by: Corey Prophitt 
---
 runtime/syntax/kivy.vim | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/kivy.vim b/runtime/syntax/kivy.vim
index 76e3576e78..d4bccfc147 100644
--- a/runtime/syntax/kivy.vim
+++ b/runtime/syntax/kivy.vim
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:    Kivy
-" Maintainer:  Corey Prophitt 
-" Last Change: Jul 6th, 2024
+" Maintainer:  Corey Prophitt 
+" Last Change: Jul 31st, 2024
 " Version:     1
-" URL:         http://kivy.org/
+" URL:         https://kivy.org/
 
 if exists("b:current_syntax")
     finish
@@ -13,7 +13,7 @@ endif
 syn include @pyth $VIMRUNTIME/syntax/python.vim
 
 " Kivy language rules can be found here
-"   http://kivy.org/docs/guide/lang.html
+"   https://kivy.org/doc/stable/guide/lang.html
 
 " Define Kivy syntax
 syn match kivyPreProc   /#:.*/
-- 
cgit 


From a70371ff0066c27a78e2f9df84e29b7d52d7cf84 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 31 Jul 2024 22:57:22 +0200
Subject: vim-patch:3749dff: runtime(java): Tidy up the documentation for
 "ft-java-syntax"

- Reword a few sentences and reformat a few paragraphs.
- Supply absent capitalisation and punctuation.
- Make listed highlighting groups and code stand out.
- Prefix all Java-related global variables with "g:".
- Add spaces around each variable assignment operator.
- Acknowledge that some Javadoc variables are maintained in
  the HTML syntax file.

Also, move the overridable _default_ HTML group links before
the HTML syntax file inclusion in order to implement the
documented diverged settings.

related: vim/vim#15399

https://github.com/vim/vim/commit/3749dff093d8c3ba0cd34cebf42bd4d3d93afe26

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 9c4964db71..a63ae0216a 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Jul 23
+" Last Change:		2024 Jul 30
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -309,6 +309,12 @@ hi def link javaCommentError javaError
 hi def link javaCommentStart javaComment
 
 if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
+  " The overridable "html*" default links must be defined _before_ the
+  " inclusion of the same default links from "html.vim".
+  hi def link htmlComment	Special
+  hi def link htmlCommentPart	Special
+  hi def link htmlArg		Type
+  hi def link htmlString	String
   syntax case ignore
 
   " Include HTML syntax coloring for Javadoc comments.
@@ -601,10 +607,6 @@ hi def link javaCommentStar		javaComment
 hi def link javaType			Type
 hi def link javaExternal		Include
 
-hi def link htmlComment		Special
-hi def link htmlCommentPart		Special
-hi def link htmlArg			Type
-hi def link htmlString			String
 hi def link javaSpaceError		Error
 
 if s:module_info_cur_buf
-- 
cgit 


From 13a4e612318c70e8f52f6fa6545ed40c8d0f1b2b Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 31 Jul 2024 22:59:55 +0200
Subject: vim-patch:9aabcef: runtime(java): Tidy up the syntax file

- Prefix all global variables with "g:".
- Add spaces around each variable assignment operator.
- Remove extraneous whitespace characters.
- Remove a spurious _serializable_ Java keyword (since v1.1,
  java.io.Serializable and java.io.Externalizable interfaces
  provide an API for object serialization; see vim-6-0j).
- Normalise the syntax definition argument order by making
  _contained_ the first argument of each such definition.
- Normalise the argument tabulation for highlighting group
  definitions.

Reference:
https://web.archive.org/web/20010821025330/java.sun.com/docs/books/jls/first_edition/html/1.1Update.html

related: vim/vim#15399

https://github.com/vim/vim/commit/9aabcef1c8f61a7d4f2facf6a510ab6d4f2d52f3

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 188 ++++++++++++++++++++++++------------------------
 1 file changed, 94 insertions(+), 94 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index a63ae0216a..bd867b2974 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -8,12 +8,12 @@
 " Please check :help java.vim for comments on some of the options available.
 
 " quit when a syntax file was already loaded
-if !exists("main_syntax")
+if !exists("g:main_syntax")
   if exists("b:current_syntax")
     finish
   endif
   " we define it here so that included files can test for it
-  let main_syntax='java'
+  let g:main_syntax = 'java'
 endif
 
 let s:cpo_save = &cpo
@@ -87,18 +87,18 @@ syn match   javaOperator	"\\%(\s*(\)\@!"
 " if necessary, on the line before that (h: \@<=), trying to match
 " neither a method reference nor a qualified method invocation.
 try
-  syn match   javaOperator	"\%(\%(::\|\.\)[[:space:]\n]*\)\@80"
+  syn match  javaOperator	"\%(\%(::\|\.\)[[:space:]\n]*\)\@80"
   let s:ff.Peek = s:ff.LeftConstant
 catch /\"
+  syn match  javaOperator	"\%(\%(::\|\.\)[[:space:]\n]*\)\@"
   let s:ff.Peek = s:ff.RightConstant
 endtry
 
 syn keyword javaType		boolean char byte short int long float double
 syn keyword javaType		void
 syn keyword javaStatement	return
-syn keyword javaStorageClass	static synchronized transient volatile strictfp serializable
+syn keyword javaStorageClass	static synchronized transient volatile strictfp
 syn keyword javaExceptions	throw try catch finally
 syn keyword javaAssert		assert
 syn keyword javaMethodDecl	throws
@@ -113,7 +113,7 @@ syn match   javaAnnotation	"@\%(\K\k*\.\)*\K\k*\>"
 syn region  javaAnnotation	transparent matchgroup=javaAnnotationStart start=/@\%(\K\k*\.\)*\K\k*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=javaAnnotation,javaParenT,javaBlock,javaString,javaBoolean,javaNumber,javaTypedef,javaComment,javaLineComment
 syn match   javaClassDecl	"@interface\>"
 syn keyword javaBranch		break continue nextgroup=javaUserLabelRef skipwhite
-syn match   javaUserLabelRef	"\k\+" contained
+syn match   javaUserLabelRef	contained "\k\+"
 syn match   javaVarArg		"\.\.\."
 syn keyword javaScopeDecl	public protected private
 syn keyword javaConceptKind	abstract final
@@ -139,7 +139,7 @@ else
   let [s:ff.Engine, s:ff.UpperCase, s:ff.LowerCase] = repeat([s:ff.RightConstant], 3)
 endif
 
-if exists("java_highlight_signature")
+if exists("g:java_highlight_signature")
   let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.LeftConstant], 3)
 else
   let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.RightConstant], 3)
@@ -156,7 +156,7 @@ endif
 "
 " Note that false positives may elsewhere occur whenever an identifier
 " is butted against a less-than operator.  Cf. (X"	" See javaDebug.
 
-  if !exists("java_highlight_generics")
+  if !exists("g:java_highlight_generics")
     " The non-interface parameterised names of java.lang members.
     exec 'syn match javaC_JavaLang "\%(\"'
     syn keyword javaC_JavaLang Class InheritableThreadLocal ThreadLocal Enum ClassValue
@@ -229,10 +229,10 @@ if exists("java_highlight_all")  || exists("java_highlight_java")  || exists("ja
   hi def link javaC_Java javaC_
   hi def link javaE_Java javaE_
   hi def link javaX_Java javaX_
-  hi def link javaX_		     javaExceptions
-  hi def link javaR_		     javaExceptions
-  hi def link javaE_		     javaExceptions
-  hi def link javaC_		     javaConstant
+  hi def link javaX_ javaExceptions
+  hi def link javaR_ javaExceptions
+  hi def link javaE_ javaExceptions
+  hi def link javaC_ javaConstant
 
   syn keyword javaLangObject getClass notify notifyAll wait
 
@@ -251,12 +251,12 @@ if filereadable(expand(":p:h") . "/javaid.vim")
   source :p:h/javaid.vim
 endif
 
-if exists("java_space_errors")
-  if !exists("java_no_trail_space_error")
-    syn match	javaSpaceError	"\s\+$"
+if exists("g:java_space_errors")
+  if !exists("g:java_no_trail_space_error")
+    syn match javaSpaceError "\s\+$"
   endif
-  if !exists("java_no_tab_space_error")
-    syn match	javaSpaceError	" \+\t"me=e-1
+  if !exists("g:java_no_tab_space_error")
+    syn match javaSpaceError " \+\t"me=e-1
   endif
 endif
 
@@ -280,12 +280,12 @@ hi def link javaLabelNumber	javaNumber
 hi def link javaLabelCastType	javaType
 
 " Comments
-syn keyword javaTodo		 contained TODO FIXME XXX
+syn keyword javaTodo		contained TODO FIXME XXX
 
-if exists("java_comment_strings")
-  syn region  javaCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell
-  syn region  javaCommentString    contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell,javaSpecialError,javaTextBlockError
-  syn region  javaComment2String   contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell
+if exists("g:java_comment_strings")
+  syn region  javaCommentString	contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell
+  syn region  javaCommentString	contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell,javaSpecialError,javaTextBlockError
+  syn region  javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell
   syn match   javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar
   syn match   javaCommentCharacter contained "'\\''" contains=javaSpecialChar
   syn match   javaCommentCharacter contained "'[^\\]'"
@@ -293,9 +293,9 @@ if exists("java_comment_strings")
   syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber,javaStrTempl
 endif
 
-syn region  javaComment		 matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell fold
-syn match   javaCommentStar	 contained "^\s*\*[^/]"me=e-1
-syn match   javaCommentStar	 contained "^\s*\*$"
+syn region  javaComment		matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell fold
+syn match   javaCommentStar	contained "^\s*\*[^/]"me=e-1
+syn match   javaCommentStar	contained "^\s*\*$"
 syn match   javaLineComment	"//.*" contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell
 syn match   javaCommentMarkupTag contained "@\%(end\|highlight\|link\|replace\|start\)\>" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
 syn match   javaCommentMarkupTagAttr contained "\" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
@@ -308,7 +308,7 @@ syn match   javaCommentError contained "/\*"me=e-1 display
 hi def link javaCommentError javaError
 hi def link javaCommentStart javaComment
 
-if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
+if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
   " The overridable "html*" default links must be defined _before_ the
   " inclusion of the same default links from "html.vim".
   hi def link htmlComment	Special
@@ -349,42 +349,42 @@ if !exists("java_ignore_javadoc") && main_syntax != 'jsp'
 endif
 
 " match the special comment /**/
-syn match   javaComment		 "/\*\*/"
+syn match   javaComment		"/\*\*/"
 
 " Strings and constants
-syn match   javaSpecialError	 contained "\\."
+syn match   javaSpecialError	contained "\\."
 syn match   javaSpecialCharError contained "[^']"
 " Escape Sequences (JLS-17, §3.10.7):
-syn match   javaSpecialChar	 contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)"
+syn match   javaSpecialChar	contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)"
 syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
 syn region  javaString		start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell
 syn match   javaTextBlockError	+"""\s*"""+
-syn region  javaStrTemplEmbExp	 contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP
+syn region  javaStrTemplEmbExp	contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP
 exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
 exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
-syn match   javaCharacter	 "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
-syn match   javaCharacter	 "'\\''" contains=javaSpecialChar
-syn match   javaCharacter	 "'[^\\]'"
+syn match   javaCharacter	"'[^']*'" contains=javaSpecialChar,javaSpecialCharError
+syn match   javaCharacter	"'\\''" contains=javaSpecialChar
+syn match   javaCharacter	"'[^\\]'"
 " Integer literals (JLS-17, §3.10.1):
-syn keyword javaNumber		 0 0l 0L
-syn match   javaNumber		 "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>"
+syn keyword javaNumber		0 0l 0L
+syn match   javaNumber		"\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>"
 " Decimal floating-point literals (JLS-17, §3.10.2):
 " Against "\<\d\+\>\.":
-syn match   javaNumber		 "\<\d\%(_*\d\)*\."
-syn match   javaNumber		 "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>"
-syn match   javaNumber		 "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
-syn match   javaNumber		 "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>"
+syn match   javaNumber		"\<\d\%(_*\d\)*\."
+syn match   javaNumber		"\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>"
+syn match   javaNumber		"\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
+syn match   javaNumber		"\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>"
 " Hexadecimal floating-point literals (JLS-17, §3.10.2):
-syn match   javaNumber		 "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
+syn match   javaNumber		"\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
 
 " Unicode characters
 syn match   javaSpecial "\\u\x\x\x\x"
 
 " Method declarations (JLS-17, §8.4.3, §8.4.4, §9.4).
-if exists("java_highlight_functions")
+if exists("g:java_highlight_functions")
   syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaGenerics,javaType,javaVarArg,javaComment,javaLineComment
 
-  if exists("java_highlight_signature")
+  if exists("g:java_highlight_signature")
     syn keyword javaParamModifier contained final
     syn cluster javaFuncParams add=javaParamModifier
     hi def link javaParamModifier javaConceptKind
@@ -393,8 +393,8 @@ if exists("java_highlight_functions")
     syn cluster javaFuncParams add=javaScopeDecl,javaConceptKind,javaStorageClass,javaExternal
   endif
 
-  if java_highlight_functions =~# '^indent[1-8]\=$'
-    let s:last = java_highlight_functions[-1 :]
+  if g:java_highlight_functions =~# '^indent[1-8]\=$'
+    let s:last = g:java_highlight_functions[-1 :]
     let s:indent = s:last != 't' ? repeat("\x20", s:last) : "\t"
     " Try to not match other type members, initialiser blocks, enum
     " constants (JLS-17, §8.9.1), and constructors (JLS-17, §8.1.7):
@@ -430,10 +430,10 @@ if exists("java_highlight_functions")
   endif
 endif
 
-if exists("java_highlight_debug")
+if exists("g:java_highlight_debug")
   " Strings and constants
   syn match   javaDebugSpecial		contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)"
-  syn region  javaDebugString		contained start=+"+  end=+"+  contains=javaDebugSpecial
+  syn region  javaDebugString		contained start=+"+ end=+"+ contains=javaDebugSpecial
   syn region  javaDebugString		contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugSpecial,javaDebugTextBlockError
   " The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\,
   " share one colour by default. Do not conflate unrelated parens.
@@ -453,7 +453,7 @@ if exists("java_highlight_debug")
   syn match   javaDebugNumber		contained "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>"
   syn keyword javaDebugBoolean		contained true false
   syn keyword javaDebugType		contained null this super
-  syn region javaDebugParen  start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen
+  syn region  javaDebugParen		contained start=+(+ end=+)+ contains=javaDebug.*,javaDebugParen
 
   " To make this work, define the highlighting for these groups.
   syn match javaDebug "\
Date: Wed, 31 Jul 2024 23:00:22 +0200
Subject: vim-patch:77b87c3: runtime(java): Cluster optional group definitions
 and their group links

And keep non-optional group links at the end of the file.

related: vim/vim#15399

https://github.com/vim/vim/commit/77b87c30d93dc2049a41c4ea5884f26612d7cd58

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 110 +++++++++++++++++++++++-------------------------
 1 file changed, 52 insertions(+), 58 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index bd867b2974..0ed8194594 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -65,7 +65,6 @@ syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"
 
 " use separate name so that it can be deleted in javacc.vim
 syn match   javaError2 "#\|=<"
-hi def link javaError2 javaError
 
 " Keywords (JLS-17, §3.9):
 syn keyword javaExternal	native package
@@ -121,15 +120,6 @@ syn match   javaConceptKind	"\"
 syn match   javaConceptKind	"\\%(\s*(\)\@!"
 syn match   javaConceptKind	"\\%(\s*\%(:\|->\)\)\@!"
 
-" Note that a "module-info" file will be recognised with an arbitrary
-" file extension (or no extension at all) so that more than one such
-" declaration for the same Java module can be maintained for modular
-" testing in a project without attendant confusion for IDEs, with the
-" ".java\=" extension used for a production version and an arbitrary
-" extension used for a testing version.
-let s:module_info_cur_buf = fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!'
-lockvar s:module_info_cur_buf
-
 if !(v:version < 704)
   " Request the new regexp engine for [:upper:] and [:lower:].
   let [s:ff.Engine, s:ff.UpperCase, s:ff.LowerCase] = repeat([s:ff.LeftConstant], 3)
@@ -145,11 +135,21 @@ else
   let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.RightConstant], 3)
 endif
 
-" Java modules (since Java 9, for "module-info.java" file).
-if s:module_info_cur_buf
+" Java module declarations (JLS-17, §7.7).
+"
+" Note that a "module-info" file will be recognised with an arbitrary
+" file extension (or no extension at all) so that more than one such
+" declaration for the same Java module can be maintained for modular
+" testing in a project without attendant confusion for IDEs, with the
+" ".java\=" extension used for a production version and an arbitrary
+" extension used for a testing version.
+if fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!'
   syn keyword javaModuleStorageClass	module transitive
   syn keyword javaModuleStmt		open requires exports opens uses provides
   syn keyword javaModuleExternal	to with
+  hi def link javaModuleStorageClass	StorageClass
+  hi def link javaModuleStmt		Statement
+  hi def link javaModuleExternal	Include
 endif
 
 " Fancy parameterised types (JLS-17, §4.5).
@@ -172,8 +172,8 @@ if exists("g:java_highlight_generics")
 
   unlet s:ctx
   hi def link javaWildcardBound	Question
-  hi def link javaGenericsC1	javaFuncDef
-  hi def link javaGenericsC2	javaType
+  hi def link javaGenericsC1	Function
+  hi def link javaGenericsC2	Type
 endif
 
 if exists("g:java_highlight_java_lang_ids")
@@ -258,6 +258,7 @@ if exists("g:java_space_errors")
   if !exists("g:java_no_tab_space_error")
     syn match javaSpaceError " \+\t"me=e-1
   endif
+  hi def link javaSpaceError Error
 endif
 
 exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef
 syn match   javaLabelNumber	contained "\<0\>[lL]\@!"
 syn match   javaLabelNumber	contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!"
-hi def link javaLabelDefault	javaLabel
-hi def link javaLabelVarType	javaOperator
-hi def link javaLabelNumber	javaNumber
-hi def link javaLabelCastType	javaType
 
 " Comments
 syn keyword javaTodo		contained TODO FIXME XXX
@@ -299,14 +296,8 @@ syn match   javaCommentStar	contained "^\s*\*$"
 syn match   javaLineComment	"//.*" contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell
 syn match   javaCommentMarkupTag contained "@\%(end\|highlight\|link\|replace\|start\)\>" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
 syn match   javaCommentMarkupTagAttr contained "\" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite
-exec 'syn region javaCommentMarkupTagAttr contained transparent matchgroup=htmlArg start=/\<\%(re\%(gex\|gion\|placement\)\|substring\|t\%(arget\|ype\)\)\%(\s*=\)\@=/ matchgroup=htmlString end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.-]\|\k\)\+\)/ nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite oneline'
-hi def link javaCommentMarkupTagAttr htmlArg
-hi def link javaCommentString javaString
-hi def link javaComment2String javaString
-hi def link javaCommentCharacter javaCharacter
+exec 'syn region javaCommentMarkupTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(re\%(gex\|gion\|placement\)\|substring\|t\%(arget\|ype\)\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.-]\|\k\)\+\)/ nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite oneline'
 syn match   javaCommentError contained "/\*"me=e-1 display
-hi def link javaCommentError javaError
-hi def link javaCommentStart javaComment
 
 if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
   " The overridable "html*" default links must be defined _before_ the
@@ -341,11 +332,18 @@ if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
   syn match  javaDocSeeTagParam	contained @"\_[^"]\+"\|\|\%(\k\|\.\)*\%(#\k\+\%((\_[^)]*)\)\=\)\=@ contains=@javaHtml extend
   syn region javaCodeSkipBlock	contained transparent start="{\%(@code\>\)\@!" end="}" contains=javaCodeSkipBlock,javaDocCodeTag
   syn region javaDocCodeTag	contained start="{@code\>" end="}" contains=javaDocCodeTag,javaCodeSkipBlock
-  exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=htmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=htmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl'
+  exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl'
   syn region javaSnippetSkipBlock contained transparent start="{\%(@snippet\>\)\@!" end="}" contains=javaSnippetSkipBlock,javaDocSnippetTag,javaCommentMarkupTag
   syn region javaDocSnippetTag	contained start="{@snippet\>" end="}" contains=javaDocSnippetTag,javaSnippetSkipBlock,javaDocSnippetTagAttr,javaCommentMarkupTag
 
   syntax case match
+  hi def link javaDocComment		Comment
+  hi def link javaCommentTitle		SpecialComment
+  hi def link javaDocTags		Special
+  hi def link javaDocCodeTag		Special
+  hi def link javaDocSnippetTag		Special
+  hi def link javaDocSeeTagParam	Function
+  hi def link javaDocParam		Function
 endif
 
 " match the special comment /**/
@@ -385,9 +383,7 @@ if exists("g:java_highlight_functions")
   syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaGenerics,javaType,javaVarArg,javaComment,javaLineComment
 
   if exists("g:java_highlight_signature")
-    syn keyword javaParamModifier contained final
     syn cluster javaFuncParams add=javaParamModifier
-    hi def link javaParamModifier javaConceptKind
     hi def link javaFuncDefStart javaFuncDef
   else
     syn cluster javaFuncParams add=javaScopeDecl,javaConceptKind,javaStorageClass,javaExternal
@@ -501,13 +497,10 @@ syn region  javaParenT1 contained transparent matchgroup=javaParen1 start="\[" e
 syn region  javaParenT2 contained transparent matchgroup=javaParen2 start="\[" end="\]" contains=@javaTop,javaParenT
 syn match   javaParenError "\]"
 
-hi def link javaParenError javaError
-
 " Lambda expressions (JLS-17, §15.27) and method reference expressions
 " (JLS-17, §15.13).
 if exists("g:java_highlight_functions")
   syn match javaMethodRef ":::\@!"
-  hi def link javaMethodRef javaFuncDef
 
   if exists("g:java_highlight_signature")
     let s:ff.LambdaDef = s:ff.LeftConstant
@@ -534,9 +527,13 @@ if exists("g:java_highlight_functions")
   exec 'syn ' . s:ff.LambdaDef('region javaLambdaDef transparent start=/', 'match javaLambdaDef "') . '\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '\)\)\@=/ matchgroup=javaLambdaDefStart end=/\z1/', '[[:space:]\n]*->"')
 
   syn keyword javaParamModifier contained final
-  hi def link javaParamModifier javaConceptKind
   syn keyword javaLambdaVarType contained var
-  hi def link javaLambdaVarType javaOperator
+  hi def link javaParamModifier		javaConceptKind
+  hi def link javaLambdaVarType		javaOperator
+  hi def link javaLambdaDef		javaFuncDef
+  hi def link javaLambdaDefStart	javaFuncDef
+  hi def link javaMethodRef		javaFuncDef
+  hi def link javaFuncDef		Function
 endif
 
 " The @javaTop cluster comprises non-contained Java syntax groups.
@@ -556,14 +553,8 @@ endif
 exec "syn sync ccomment javaComment minlines=" . g:java_minlines
 
 " The default highlighting.
-hi def link javaLambdaDef		Function
-hi def link javaLambdaDefStart		Function
-hi def link javaFuncDef			Function
 hi def link javaVarArg			Function
 hi def link javaBranch			Conditional
-hi def link javaUserLabelRef		javaUserLabel
-hi def link javaLabel			Label
-hi def link javaUserLabel		Label
 hi def link javaConditional		Conditional
 hi def link javaRepeat			Repeat
 hi def link javaExceptions		Exception
@@ -584,36 +575,39 @@ hi def link javaCharacter		Character
 hi def link javaSpecialChar		SpecialChar
 hi def link javaNumber			Number
 hi def link javaError			Error
+hi def link javaError2			javaError
 hi def link javaTextBlockError		Error
+hi def link javaParenError		javaError
 hi def link javaStatement		Statement
 hi def link javaOperator		Operator
-hi def link javaComment			Comment
-hi def link javaDocComment		Comment
-hi def link javaLineComment		Comment
 hi def link javaConstant		Constant
 hi def link javaTypedef			Typedef
 hi def link javaTodo			Todo
 hi def link javaAnnotation		PreProc
 hi def link javaAnnotationStart		javaAnnotation
-
-hi def link javaCommentTitle		SpecialComment
-hi def link javaDocTags			Special
-hi def link javaDocCodeTag		Special
-hi def link javaDocSnippetTag		Special
-hi def link javaDocParam		Function
-hi def link javaDocSeeTagParam		Function
-hi def link javaCommentStar		javaComment
-
 hi def link javaType			Type
 hi def link javaExternal		Include
 
-hi def link javaSpaceError		Error
+hi def link javaUserLabel		Label
+hi def link javaUserLabelRef		javaUserLabel
+hi def link javaLabel			Label
+hi def link javaLabelDefault		javaLabel
+hi def link javaLabelVarType		javaOperator
+hi def link javaLabelNumber		javaNumber
+hi def link javaLabelCastType		javaType
+
+hi def link javaComment			Comment
+hi def link javaCommentStar		javaComment
+hi def link javaLineComment		Comment
+hi def link javaCommentMarkupTagAttr	javaHtmlArg
+hi def link javaCommentString		javaString
+hi def link javaComment2String		javaString
+hi def link javaCommentCharacter	javaCharacter
+hi def link javaCommentError		javaError
+hi def link javaCommentStart		javaComment
 
-if s:module_info_cur_buf
-  hi def link javaModuleStorageClass	StorageClass
-  hi def link javaModuleStmt		Statement
-  hi def link javaModuleExternal	Include
-endif
+hi def link javaHtmlArg			Type
+hi def link javaHtmlString		String
 
 let b:current_syntax = "java"
 
@@ -623,7 +617,7 @@ endif
 
 let b:spell_options = "contained"
 let &cpo = s:cpo_save
-unlet s:module_info_cur_buf s:ff s:cpo_save
+unlet s:ff s:cpo_save
 
 " See ":help vim9-mix".
 if !has("vim9script")
-- 
cgit 


From e7f8349a2eec01dda531d93fecb8df920b042d9f Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Fri, 2 Aug 2024 20:13:17 +0200
Subject: vim-patch:9.1.0655: filetype: goaccess config file not recognized

Problem:  filetype: goaccess config file not recognized
Solution: detect 'goaccess.conf' as goaccess filetype, also
          include a basic syntax and ftplugin (Adam Monsen)

Add syntax highlighting for GoAccess configuration file.

GoAccess is a real-time web log analyzer and interactive viewer that
runs in a terminal in *nix systems or through your browser.

GoAccess home page: https://goaccess.io

closes: vim/vim#15414

https://github.com/vim/vim/commit/0aa65b48fbe64e18a767b207802483026baecb5d

Co-authored-by: Adam Monsen 
---
 runtime/syntax/goaccess.vim | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 runtime/syntax/goaccess.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/goaccess.vim b/runtime/syntax/goaccess.vim
new file mode 100644
index 0000000000..4ca8f6d921
--- /dev/null
+++ b/runtime/syntax/goaccess.vim
@@ -0,0 +1,34 @@
+" Vim syntax file
+" Language: GoAccess configuration
+" Maintainer: Adam Monsen 
+" Last Change: 2024 Aug 1
+" Remark: see https://goaccess.io/man#configuration
+"
+" The GoAccess configuration file syntax is line-separated settings. Settings
+" are space-separated key value pairs. Comments are any line starting with a
+" hash mark.
+" Example: https://github.com/allinurl/goaccess/blob/master/config/goaccess.conf
+"
+" This syntax definition supports todo/fixme highlighting in comments, and
+" special (Keyword) highlighting if a setting's value is 'true' or 'false'.
+"
+" TODO: a value is required, so use extreme highlighting (e.g. bright red
+" background) if a setting is missing a value.
+
+if exists("b:current_syntax")
+  finish
+endif
+
+syn match goaccessSettingName '^[a-z-]\+' nextgroup=goaccessSettingValue
+syn match goaccessSettingValue '\s\+.\+$' contains=goaccessKeyword
+syn match goaccessComment "^#.*$" contains=goaccessTodo,@Spell
+syn keyword goaccessTodo TODO FIXME contained
+syn keyword goaccessKeyword true false contained
+
+hi def link goaccessSettingName Type
+hi def link goaccessSettingValue String
+hi def link goaccessComment Comment
+hi def link goaccessTodo Todo
+hi def link goaccessKeyword Keyword
+
+let b:current_syntax = "goaccess"
-- 
cgit 


From 615f7bbff06c0585aacce542fac4bc823070ebee Mon Sep 17 00:00:00 2001
From: tobil4sk 
Date: Wed, 14 Aug 2024 23:43:34 +0100
Subject: vim-patch:ea76096: runtime(javascript): fix a few issues with syntax
 higlighting (#30049)

It addresses the following issues:

- Fix highlight of let and var javascript keywords

  According to runtime/doc/syntax.txt, Identifier is for variable names.
  let/var are not variable names, they are keywords

- Add highlighting for "from" keyword in javascript

- Fix highlight of function keyword in javascript

  According to docs, Function is for function names, so the function
  keyword should just be Keyword.

- Fix highlight of static keyword in javascript

  According to vim docs: StorageClass static, register, volatile, etc.

closes: vim/vim#15480

https://github.com/vim/vim/commit/ea76096fa98ac26c23703bffdc4d9b3dc8a94d7e
---
 runtime/syntax/javascript.vim | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/javascript.vim b/runtime/syntax/javascript.vim
index e3b4cdf703..c73f5d7097 100644
--- a/runtime/syntax/javascript.vim
+++ b/runtime/syntax/javascript.vim
@@ -10,6 +10,7 @@
 " Last Change:	2022 Jun 09
 " 		2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
 " 		2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)
+" 		2024 Aug 14: fix a few stylistic issues (#15480)
 
 " tuning parameters:
 " unlet javaScript_fold
@@ -59,14 +60,15 @@ syn keyword javaScriptType		Array Boolean Date Function Number Object String Reg
 syn keyword javaScriptStatement		return with await yield
 syn keyword javaScriptBoolean		true false
 syn keyword javaScriptNull		null undefined
-syn keyword javaScriptIdentifier	arguments this var let
+syn keyword javaScriptIdentifier	arguments this
 syn keyword javaScriptLabel		case default
 syn keyword javaScriptException		try catch finally throw
 syn keyword javaScriptMessage		alert confirm prompt status
 syn keyword javaScriptGlobal		self window top parent
 syn keyword javaScriptMember		document event location 
 syn keyword javaScriptDeprecated	escape unescape
-syn keyword javaScriptReserved		abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile async
+syn keyword javaScriptReserved		abstract boolean byte char class const debugger double enum export extends final float from goto implements import int interface let long native package private protected public short super synchronized throws transient var volatile async
+syn keyword javaScriptModifier  static
 
 syn cluster  javaScriptEmbededExpr	contains=javaScriptBoolean,javaScriptNull,javaScriptIdentifier,javaScriptStringD,javaScriptStringS,javaScriptStringT
 
@@ -110,7 +112,7 @@ hi def link javaScriptBranch		Conditional
 hi def link javaScriptOperator		Operator
 hi def link javaScriptType			Type
 hi def link javaScriptStatement		Statement
-hi def link javaScriptFunction		Function
+hi def link javaScriptFunction		Keyword
 hi def link javaScriptBraces		Function
 hi def link javaScriptError		Error
 hi def link javaScrParenError		javaScriptError
@@ -126,6 +128,7 @@ hi def link javaScriptGlobal		Keyword
 hi def link javaScriptMember		Keyword
 hi def link javaScriptDeprecated		Exception 
 hi def link javaScriptReserved		Keyword
+hi def link javaScriptModifier		StorageClass
 hi def link javaScriptDebug		Debug
 hi def link javaScriptConstant		Label
 hi def link javaScriptEmbed		Special
-- 
cgit 


From 172cc23d88585dd7520726c2ebbba4ed7639e348 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Sat, 17 Aug 2024 07:09:39 +0800
Subject: vim-patch:d164f2a: runtime(vim): Update base-syntax, improve
 :let-heredoc highlighting (#30069)

The end marker must appear on line of its own without any trailing
whitespace.

Whitespace is incorrectly allowed before all end markers.  Limiting this
only to heredocs where "trim" was specified, and with the correct
indent, is currently an intractable problem given that contained syntax
groups (in this case :let) cannot be limited to start patterns.

Highlight interpolated expressions when "eval" is specified.

cloess: vim/vim#15511

https://github.com/vim/vim/commit/d164f2a521f8e52e587727657fb1c19e9a25f32a

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 8dd72d76e5..57516dfa61 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -433,11 +433,12 @@ syn match	vimEscape	contained	"\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1
 syn match	vimEscape	contained	"\\<" contains=vimNotation
 syn match	vimEscape	contained	"\\<\*[^>]*>\=>"
 
-syn region	vimString	oneline start=+$'+ skip=+''+ end=+'+ contains=vimStringInterpolationBrace,vimStringInterpolationExpr
-syn region	vimString	oneline start=+$"+ end=+"+ contains=@vimStringGroup,vimStringInterpolationBrace,vimStringInterpolationExpr
+syn region	vimString	oneline start=+$'+ skip=+''+ end=+'+ contains=@vimStringInterpolation
+syn region	vimString	oneline start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation
 syn region	vimStringInterpolationExpr  oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
 syn match	vimStringInterpolationBrace contained "{{"
 syn match	vimStringInterpolationBrace contained "}}"
+syn cluster	vimStringInterpolation contains=vimStringInterpolationExpr,vimStringInterpolationBrace
 
 " Substitutions: {{{2
 " =============
@@ -517,7 +518,13 @@ VimL syn keyword	vimUnlet	unl[et]		skipwhite nextgroup=vimUnletBang,vimUnletVars
 syn match	vimUnletBang	contained	"!"	skipwhite nextgroup=vimUnletVars
 syn region	vimUnletVars	contained	start="$\I\|\h" skip="\n\s*\\" end="$" end="|" contains=vimVar,vimEnvvar,vimContinue,vimString,vimNumber
 
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*\%(trim\s\+\%(eval\s\+\)\=\|eval\s\+\%(trim\s\+\)\=\)\=\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' extend
+" Note: This incorrectly matches end markers with leading whitespace even if
+"       "trim" was not specified.  Matching :let indent for "trim" indented
+"       end markers would require a contained :let that cannot be restricted
+"       to the start pattern.  A common internal testing use of heredocs is to
+"       specify code blocks where :let commonly appears in the heredoc text.
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*\%(trim\s\+\)\=\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\s*\z1$' extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*\%(\%(trim\s\+\)\=eval\s\+\|eval\s\+\%(trim\s\+\)\=\)\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1$' contains=@vimStringInterpolation extend
 
 Vim9 syn keyword	vim9Const	const	skipwhite nextgroup=vim9Variable,vim9VariableList
 Vim9 syn keyword	vim9Final	final	skipwhite nextgroup=vim9Variable,vim9VariableList
-- 
cgit 


From 78fb387f87deb153cfef243a390e9a55370c35a5 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sat, 17 Aug 2024 11:34:55 +0200
Subject: vim-patch:11c92be: runtime(dosbatch): Add syn-sync to syntax file

Closing parentheses were often highlighted as errors.
Add a syntax sync command to reduce the error.

Also fix that `defined` was not highlighted as an operator inside
parentheses.  E.g.:
```
if defined foo (
    if defined bar (
        ...
    )
)
```
The first `defined` was highlighted but the second one was not.

related: vim/vim#15453

https://github.com/vim/vim/commit/11c92be8974f04ab12ff3f9cd89a692bbd6c46d9

Co-authored-by: Ken Takata 
---
 runtime/syntax/dosbatch.vim | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim
index 55601996ad..761fac0dc2 100644
--- a/runtime/syntax/dosbatch.vim
+++ b/runtime/syntax/dosbatch.vim
@@ -3,6 +3,7 @@
 " Maintainer:	Mike Williams 
 " Filenames:    *.bat
 " Last Change:	3rd February 2024
+" 2024 Aug 14 by Vim Project: improve syntax (#15453)
 "
 " Options Flags:
 " dosbatch_cmdextversion	- 1 = Windows NT, 2 = Windows 2000 [default]
@@ -45,7 +46,7 @@ syn match dosbatchString	"\|]\|\^\@<=[)>|]\)*"lc=4 contains=dosbatchV
 syn match dosbatchEchoOperator  "\
Date: Sat, 17 Aug 2024 11:35:15 +0200
Subject: vim-patch:a1dc649: runtime(dosbatch): Show %%i as an argument in
 syntax file

Inside batch files, for-variables must be written as %%i, not %i.

closes: vim/vim#15453

https://github.com/vim/vim/commit/a1dc64956f36cb921d556910c5356bb6b91ba5b9

Co-authored-by: Ken Takata 
---
 runtime/syntax/dosbatch.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim
index 761fac0dc2..0c3e99be3b 100644
--- a/runtime/syntax/dosbatch.vim
+++ b/runtime/syntax/dosbatch.vim
@@ -75,7 +75,7 @@ syn match dosbatchSet		"\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatc
 
 " Args to bat files and for loops, etc
 syn match dosbatchArgument	"%\(\d\|\*\)"
-syn match dosbatchArgument	"%[a-z]\>"
+syn match dosbatchArgument	"%%[a-z]\>"
 if dosbatch_cmdextversion == 1
   syn match dosbatchArgument	"%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
 else
-- 
cgit 


From 8c405d9b34b575c0d479d04dbfeb38f24c93287e Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Thu, 22 Aug 2024 21:24:33 +0200
Subject: vim-patch:0e9fd77: runtime(htmlangular): add html syntax highlighting

fixes: vim/vim#15459
closes: vim/vim#15552

https://github.com/vim/vim/commit/0e9fd7755d23477a1cf3a101c301155ba0bc1e2c

Co-authored-by: Dennis van den Berg 
---
 runtime/syntax/htmlangular.vim | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 runtime/syntax/htmlangular.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/htmlangular.vim b/runtime/syntax/htmlangular.vim
new file mode 100644
index 0000000000..021e61f9b1
--- /dev/null
+++ b/runtime/syntax/htmlangular.vim
@@ -0,0 +1,18 @@
+" Vim syntax file
+" Language: Angular HTML template
+" Maintainer: Dennis van den Berg 
+" Last Change: 2024 Aug 22
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+if !exists("main_syntax")
+  let main_syntax = 'html'
+endif
+
+runtime! syntax/html.vim
+unlet b:current_syntax
+
+let b:current_syntax = "htmlangular"
-- 
cgit 


From 3b32869ced32821fb58f0a7c08094105be7bdaf0 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Thu, 22 Aug 2024 21:25:51 +0200
Subject: vim-patch:2750b83: runtime(java): Make the bundled &foldtext function
 optional

- Obtain and pass through translated messages with this
  function.
- If "g:java_foldtext_show_first_or_second_line" is defined,
  assign this function to &foldtext.

closes: vim/vim#15549

https://github.com/vim/vim/commit/2750b83fa1a917c13d0cae3e791493720dcaadaa

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 64 ++++++++++++++++++++++++++++++++-----------------
 1 file changed, 42 insertions(+), 22 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 0ed8194594..51ef8395b9 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Jul 30
+" Last Change:		2024 Aug 22
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -39,17 +39,27 @@ else
   endfunction
 endif
 
-function! JavaSyntaxFoldTextExpr() abort
-  return getline(v:foldstart) !~ '/\*\+\s*$'
-    \ ? foldtext()
-    \ : printf('+-%s%3d lines: ',
-	  \ v:folddashes,
-	  \ (v:foldend - v:foldstart + 1)) .
-	\ getline(v:foldstart + 1)
-endfunction
+if exists("g:java_foldtext_show_first_or_second_line")
+  function! s:LazyPrefix(prefix, dashes, count) abort
+    return empty(a:prefix)
+      \ ? printf('+-%s%3d lines: ', a:dashes, a:count)
+      \ : a:prefix
+  endfunction
+
+  function! JavaSyntaxFoldTextExpr() abort
+    " Piggyback on NGETTEXT.
+    let summary = foldtext()
+    return getline(v:foldstart) !~ '/\*\+\s*$'
+      \ ? summary
+      \ : s:LazyPrefix(matchstr(summary, '^+-\+\s*\d\+\s.\{-1,}:\s'),
+			\ v:folddashes,
+			\ (v:foldend - v:foldstart + 1)) .
+	  \ getline(v:foldstart + 1)
+  endfunction
 
-" E120 for "fdt=s:JavaSyntaxFoldTextExpr()" before v8.2.3900.
-setlocal foldtext=JavaSyntaxFoldTextExpr()
+  " E120 for "fdt=s:JavaSyntaxFoldTextExpr()" before v8.2.3900.
+  setlocal foldtext=JavaSyntaxFoldTextExpr()
+endif
 
 " Admit the ASCII dollar sign to keyword characters (JLS-17, §3.8):
 try
@@ -624,15 +634,25 @@ if !has("vim9script")
   finish
 endif
 
-def! s:JavaSyntaxFoldTextExpr(): string
-  return getline(v:foldstart) !~ '/\*\+\s*$'
-    ? foldtext()
-    : printf('+-%s%3d lines: ',
-	  v:folddashes,
-	  (v:foldend - v:foldstart + 1)) ..
-	getline(v:foldstart + 1)
-enddef
-
-setlocal foldtext=s:JavaSyntaxFoldTextExpr()
-delfunction! g:JavaSyntaxFoldTextExpr
+if exists("g:java_foldtext_show_first_or_second_line")
+  def! s:LazyPrefix(prefix: string, dashes: string, count: number): string
+    return empty(prefix)
+      ? printf('+-%s%3d lines: ', dashes, count)
+      : prefix
+  enddef
+
+  def! s:JavaSyntaxFoldTextExpr(): string
+    # Piggyback on NGETTEXT.
+    const summary: string = foldtext()
+    return getline(v:foldstart) !~ '/\*\+\s*$'
+      ? summary
+      : LazyPrefix(matchstr(summary, '^+-\+\s*\d\+\s.\{-1,}:\s'),
+			v:folddashes,
+			(v:foldend - v:foldstart + 1)) ..
+	  getline(v:foldstart + 1)
+  enddef
+
+  setlocal foldtext=s:JavaSyntaxFoldTextExpr()
+  delfunction! g:JavaSyntaxFoldTextExpr
+endif
 " vim: sw=2 ts=8 noet sta
-- 
cgit 


From 6af9ca4926e05ac698d828ab6aeef2f45ccccdf8 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Fri, 23 Aug 2024 09:56:29 +0800
Subject: vim-patch:95e9078: runtime(vim): Improve heredoc handling for all
 embedded scripts (#30121)

* Improve heredoc handling
  - Support "trim" for all the embedded scripts.
  - Check the indent of "trim" for "let" and all the embedded scripts.
* Update missing part of vim.vim.base in the commit
  d164f2a521f8e52e587727657fb1c19e9a25f32a.
* Update gen_syntax_vim.vim to catch up with 9.1.0685's source code.

closes: vim/vim#15542

https://github.com/vim/vim/commit/95e90781a4c92b7b061213cfa38b35bdbf719cc1

Co-authored-by: Ken Takata 
---
 runtime/syntax/vim.vim | 95 +++++++++++++++++++++++++++++++-------------------
 1 file changed, 59 insertions(+), 36 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 57516dfa61..0df36eaee2 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -371,7 +371,7 @@ endif
 syn case ignore
 syn keyword	vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
 " GEN_SYN_VIM: vimUserAttrbCmplt, START_STR='syn keyword vimUserAttrbCmplt contained', END_STR=''
-syn keyword vimUserAttrbCmplt contained arglist augroup behave buffer color command compiler cscope diff_buffer dir environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages syntax syntime option packadd runtime shellcmd sign tag tag_listfiles user var breakpoint scriptnames dir_in_path
+syn keyword vimUserAttrbCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd sign syntax syntime tag tag_listfiles user var
 syn keyword	vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
 syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
 
@@ -518,13 +518,10 @@ VimL syn keyword	vimUnlet	unl[et]		skipwhite nextgroup=vimUnletBang,vimUnletVars
 syn match	vimUnletBang	contained	"!"	skipwhite nextgroup=vimUnletVars
 syn region	vimUnletVars	contained	start="$\I\|\h" skip="\n\s*\\" end="$" end="|" contains=vimVar,vimEnvvar,vimContinue,vimString,vimNumber
 
-" Note: This incorrectly matches end markers with leading whitespace even if
-"       "trim" was not specified.  Matching :let indent for "trim" indented
-"       end markers would require a contained :let that cannot be restricted
-"       to the start pattern.  A common internal testing use of heredocs is to
-"       specify code blocks where :let commonly appears in the heredoc text.
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*\%(trim\s\+\)\=\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\s*\z1$' extend
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*\%(\%(trim\s\+\)\=eval\s\+\|eval\s\+\%(trim\s\+\)\=\)\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1$' contains=@vimStringInterpolation extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*trim\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\z2$' extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\%(\s*\)\@>\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\z1$' extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*\%(trim\s\+eval\|eval\s\+trim\)\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\z2$' contains=@vimStringInterpolation extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*eval\%(\s\+\)\@>\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\z1$' contains=@vimStringInterpolation extend
 
 Vim9 syn keyword	vim9Const	const	skipwhite nextgroup=vim9Variable,vim9VariableList
 Vim9 syn keyword	vim9Final	final	skipwhite nextgroup=vim9Variable,vim9VariableList
@@ -931,12 +928,16 @@ if g:vimsyn_embed =~# 'l' && filereadable(s:luapath)
  unlet! b:current_syntax
  syn cluster vimFuncBodyList	add=vimLuaRegion
  exe "syn include @vimLuaScript ".s:luapath
- VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimLuaScript
- VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+	contains=@vimLuaScript
+ VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+^\z(\s*\)lua\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimLuaScript
+ VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(\S*\)+ end=+^\z1$+		contains=@vimLuaScript
+ VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+^\z(\s*\)lua\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimLuaScript
+ VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+^\.$+		contains=@vimLuaScript
  syn cluster vimFuncBodyList	add=vimLuaRegion
 else
- syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+lua\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)lua\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+lua\s*<<\s*\z(\S*\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)lua\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+lua\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:luapath
 
@@ -956,12 +957,16 @@ if g:vimsyn_embed =~# 'p' && filereadable(s:perlpath)
  let s:foldmethod = &l:foldmethod
  exe "syn include @vimPerlScript ".s:perlpath
  let &l:foldmethod = s:foldmethod
- VimFoldp syn region vimPerlRegion  matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(\S*\)\ze\(\s*["#].*\)\=$+ end=+^\z1\ze\(\s*[#"].*\)\=$+	contains=@vimPerlScript
- VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+			contains=@vimPerlScript
+ VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+^\z(\s*\)pe\%[rl]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimPerlScript
+ VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(\S*\)+ end=+^\z1$+		contains=@vimPerlScript
+ VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+^\z(\s*\)pe\%[rl]\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimPerlScript
+ VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+		contains=@vimPerlScript
  syn cluster vimFuncBodyList	add=vimPerlRegion
 else
- syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)pe\%[rl]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(\S*\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)pe\%[rl]\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:perlpath
 
@@ -981,12 +986,16 @@ if g:vimsyn_embed =~# 'r' && filereadable(s:rubypath)
  let s:foldmethod = &l:foldmethod
  exe "syn include @vimRubyScript ".s:rubypath
  let &l:foldmethod = s:foldmethod
- VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimRubyScript
- syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+			contains=@vimRubyScript
+ VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+^\z(\s*\)rub\%[y]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimRubyScript
+ VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub\%[y]\s*<<\s*\z(\S*\)+ end=+^\z1$+		contains=@vimRubyScript
+ VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+^\z(\s*\)rub\%[y]\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimRubyScript
+ VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub\%[y]\s*<<\s*$+ end=+\.$+		contains=@vimRubyScript
  syn cluster vimFuncBodyList	add=vimRubyRegion
 else
- syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)rub\%[y]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+rub\%[y]\s*<<\s*\z(\S.*\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)rub\%[y]\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+rub\%[y]\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:rubypath
 
@@ -1004,14 +1013,18 @@ if g:vimsyn_embed =~# 'P' && filereadable(s:pythonpath)
  unlet! b:current_syntax
  syn cluster vimFuncBodyList	add=vimPythonRegion
  exe "syn include @vimPythonScript ".s:pythonpath
- VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon][3x]\=\s*<<\s*\%(trim\s*\)\=\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimPythonScript
- VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon][3x]\=\s*<<\s*\%(trim\s*\)\=$+ end=+\.$+				contains=@vimPythonScript
- VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\%(trim\s*\)\=\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimPythonScript
- VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*\%(trim\s*\)\=$+ end=+\.$+				contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+^\z(\s*\)py\%[thon][3x]\=\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon][3x]\=\s*<<\s*\z(\S\+\)+ end=+^\z1$+		contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+^\z(\s*\)py\%[thon][3x]\=\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon][3x]\=\s*<<\s*$+ end=+^\.$+			contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\%(trim\s*\)\=\z(\S\+\)+ end=+^\z1$+	contains=@vimPythonScript
+ VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\%(trim\s*\)\=$+ end=+^\.$+		contains=@vimPythonScript
  syn cluster vimFuncBodyList	add=vimPythonRegion
 else
- syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)py\%[thon][3x]\=\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+py\%[thon][3x]\=\s*<<\s*\z(\S\+\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)py\%[thon][3x]\=\s*<<\s*trim\s*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+py\%[thon][3x]\=\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:pythonpath
 
@@ -1036,17 +1049,23 @@ if s:trytcl
   unlet! b:current_syntax
   syn cluster vimFuncBodyList	add=vimTclRegion
   exe "syn include @vimTclScript ".s:tclpath
-  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
-  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript
+  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimTclScript
+  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc\%[l]\=\s*<<\s*\z(\S*\)+ end=+^\z1$+		contains=@vimTclScript
+  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimTclScript
+  VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc\%[l]\=\s*<<\s*$+ end=+^\.$+		contains=@vimTclScript
   syn cluster vimFuncBodyList	add=vimTclScript
  else
-  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
-  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
+  syn region vimEmbedError start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+  syn region vimEmbedError start=+tc\%[l]\=\s*<<\s*\z(\S*\)+ end=+^\z1$+
+  syn region vimEmbedError start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+  syn region vimEmbedError start=+tc\%[l]\=\s*<<\s*$+ end=+^\.$+
  endif
  unlet s:tclpath
 else
- syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+tc\%[l]\=\s*<<\s*\z(\S*\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)tc\%[l]\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+tc\%[l]\=\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:trytcl
 
@@ -1067,12 +1086,16 @@ if g:vimsyn_embed =~# 'm' && filereadable(s:mzschemepath)
  exe "syn include @vimMzSchemeScript ".s:mzschemepath
  let &isk= s:iskKeep
  unlet s:iskKeep
- VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimMzSchemeScript
- VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
+ VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+^\z(\s*\)mz\%[scheme]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+	contains=@vimMzSchemeScript
+ VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(\S*\)+ end=+^\z1$+	contains=@vimMzSchemeScript
+ VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+^\z(\s*\)mz\%[scheme]\s*<<\s*trim\s*$+ end=+^\z1\.$+	contains=@vimMzSchemeScript
+ VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+^\.$+		contains=@vimMzSchemeScript
  syn cluster vimFuncBodyList	add=vimMzSchemeRegion
 else
- syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+
- syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+
+ syn region vimEmbedError start=+^\z(\s*\)mz\%[scheme]\s*<<\s*trim\s\+\z(\S\+\)+ end=+^\z1\z2$+
+ syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(\S*\)+ end=+^\z1$+
+ syn region vimEmbedError start=+^\z(\s*\)mz\%[scheme]\s*<<\s*trim\s\*$+ end=+^\z1\.$+
+ syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+^\.$+
 endif
 unlet s:mzschemepath
 
-- 
cgit 


From 8f9669a27c3a812a64f5733678dc84875d4241c7 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Sat, 24 Aug 2024 07:39:33 +0800
Subject: vim-patch:7884cc7: runtime(vim): Update base-syntax, improve
 :let-heredoc highlighting

The end marker is not required to match the indent of :let when "trim"
is specified, it may also appear without leading whitespace as normal.

closes: vim/vim#15564

https://github.com/vim/vim/commit/7884cc74188caea6e42b1456ed90c8a7189dda7c

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 0df36eaee2..f62131c4b3 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -518,9 +518,9 @@ VimL syn keyword	vimUnlet	unl[et]		skipwhite nextgroup=vimUnletBang,vimUnletVars
 syn match	vimUnletBang	contained	"!"	skipwhite nextgroup=vimUnletVars
 syn region	vimUnletVars	contained	start="$\I\|\h" skip="\n\s*\\" end="$" end="|" contains=vimVar,vimEnvvar,vimContinue,vimString,vimNumber
 
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*trim\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\z2$' extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*trim\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\=\z2$' extend
 VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\%(\s*\)\@>\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\z1$' extend
-VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*\%(trim\s\+eval\|eval\s\+trim\)\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\z2$' contains=@vimStringInterpolation extend
+VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='\%(^\z(\s*\)\S.*\)\@<==<<\s*\%(trim\s\+eval\|eval\s\+trim\)\%(\s\+\)\@>\z(\L\S*\)'	matchgroup=vimLetHereDocStop end='^\z1\=\z2$' contains=@vimStringInterpolation extend
 VimFoldh syn region vimLetHereDoc	matchgroup=vimLetHereDocStart start='=<<\s*eval\%(\s\+\)\@>\z(\L\S*\)'			matchgroup=vimLetHereDocStop end='^\z1$' contains=@vimStringInterpolation extend
 
 Vim9 syn keyword	vim9Const	const	skipwhite nextgroup=vim9Variable,vim9VariableList
-- 
cgit 


From 8010d1c0ed12b0c0cfa01bc029d96b7cca7d5ef7 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Sat, 24 Aug 2024 07:40:36 +0800
Subject: vim-patch:7866d54: runtime(vim): Update base-syntax, match
 :loadkeymap after colon and bar

Match :loadkeymap after Ex colons and bars.

Don't generate :loadkeymap as it is matched with a custom syntax group.

closes: vim/vim#15554

https://github.com/vim/vim/commit/7866d54ecc7ff47d5f3c48bc389dfd85759b9b65

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index f62131c4b3..55642fb897 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -177,7 +177,7 @@ syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
 syn cluster vim9CmdList	contains=vim9Const,vim9Final,vim9For,vim9Var
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand	"\<\%(\h\w*\|[23]mat\%[ch]\)\>"	contains=vimCommand
@@ -338,7 +338,7 @@ else
 endif
 syn cluster vimKeymapLineComment contains=vim9\=KeymapLineComment
 
-syn region vimKeymap matchgroup=vimCommand start="\" end="\%$" contains=vimKeymapStart
+syn region vimLoadkeymap matchgroup=vimCommand start="\" end="\%$" contains=vimKeymapStart
 
 " Special Filenames, Modifiers, Extension Removal: {{{2
 " ===============================================
-- 
cgit 


From 3a61f05dd2d6cb2ac9bca4795467f459595e58dd Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 28 Aug 2024 10:21:59 +0200
Subject: vim-patch:8556e23: runtime(java): Provide support for syntax preview
 features

Introduce a new API variable "g:java_syntax_previews" whose
value must be a list of syntax preview feature numbers.

Enumerate the currently supported numbers in a table at the
end of the documentation entry for "ft-java-syntax".

Also, disable the recognition of String Templates.  Despite
the withdrawal of this preview feature in its proposed form
from the upcoming JDK 23 release and the fact that the JDK
22 release is coming to EOL this September, an earlier
iteration of this preview feature was included in JDK 21
(LTS) whose EOL is projected to fall due in late 2028 and,
therefore, retain the current implementation.

Define "g:java_syntax_previews" and include number 430 in
its list to enable the recognition of String Templates:
------------------------------------------------------------
	let g:java_syntax_previews = [430]
------------------------------------------------------------

References:
https://openjdk.org/jeps/430 (Preview)
https://openjdk.org/jeps/459 (Second Preview)
https://openjdk.org/jeps/465 (Third Preview)
https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html

closes: vim/vim#15579

https://github.com/vim/vim/commit/8556e23ee90448f01b612d337599f6e8f86679ea

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 51ef8395b9..8aa053d522 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Aug 22
+" Last Change:		2024 Aug 26
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -30,6 +30,10 @@ function! s:ff.RightConstant(x, y) abort
   return a:y
 endfunction
 
+function! s:ff.IsRequestedPreviewFeature(n) abort
+  return exists("g:java_syntax_previews") && index(g:java_syntax_previews, a:n) + 1
+endfunction
+
 if !exists("*s:ReportOnce")
   function s:ReportOnce(message) abort
     echomsg 'syntax/java.vim: ' . a:message
@@ -367,9 +371,14 @@ syn match   javaSpecialChar	contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnf
 syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
 syn region  javaString		start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell
 syn match   javaTextBlockError	+"""\s*"""+
-syn region  javaStrTemplEmbExp	contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP
-exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
-exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
+
+if s:ff.IsRequestedPreviewFeature(430)
+  syn region javaStrTemplEmbExp	contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP
+  exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
+  exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell'
+  hi def link javaStrTempl	Macro
+endif
+
 syn match   javaCharacter	"'[^']*'" contains=javaSpecialChar,javaSpecialCharError
 syn match   javaCharacter	"'\\''" contains=javaSpecialChar
 syn match   javaCharacter	"'[^\\]'"
@@ -441,11 +450,16 @@ if exists("g:java_highlight_debug")
   syn match   javaDebugSpecial		contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)"
   syn region  javaDebugString		contained start=+"+ end=+"+ contains=javaDebugSpecial
   syn region  javaDebugString		contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugSpecial,javaDebugTextBlockError
-  " The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\,
-  " share one colour by default. Do not conflate unrelated parens.
-  syn region  javaDebugStrTemplEmbExp	contained matchgroup=javaDebugStrTempl start="\\{" end="}" contains=javaComment,javaLineComment,javaDebug\%(Paren\)\@!.*
-  exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaDebugStrTemplEmbExp,javaDebugSpecial'
-  exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugStrTemplEmbExp,javaDebugSpecial,javaDebugTextBlockError'
+
+  if s:ff.IsRequestedPreviewFeature(430)
+    " The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\,
+    " share one colour by default. Do not conflate unrelated parens.
+    syn region javaDebugStrTemplEmbExp	contained matchgroup=javaDebugStrTempl start="\\{" end="}" contains=javaComment,javaLineComment,javaDebug\%(Paren\)\@!.*
+    exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaDebugStrTemplEmbExp,javaDebugSpecial'
+    exec 'syn region javaDebugStrTempl contained start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugStrTemplEmbExp,javaDebugSpecial,javaDebugTextBlockError'
+    hi def link javaDebugStrTempl	Macro
+  endif
+
   syn match   javaDebugTextBlockError	contained +"""\s*"""+
   syn match   javaDebugCharacter	contained "'[^\\]'"
   syn match   javaDebugSpecialCharacter contained "'\\.'"
@@ -471,7 +485,6 @@ if exists("g:java_highlight_debug")
 
   hi def link javaDebug			Debug
   hi def link javaDebugString		DebugString
-  hi def link javaDebugStrTempl		Macro
   hi def link javaDebugTextBlockError	Error
   hi def link javaDebugType		DebugType
   hi def link javaDebugBoolean		DebugBoolean
@@ -580,7 +593,6 @@ hi def link javaSpecial			Special
 hi def link javaSpecialError		Error
 hi def link javaSpecialCharError	Error
 hi def link javaString			String
-hi def link javaStrTempl		Macro
 hi def link javaCharacter		Character
 hi def link javaSpecialChar		SpecialChar
 hi def link javaNumber			Number
-- 
cgit 


From 4353996d0fa8e5872a334d68196d8088391960cf Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Fri, 30 Aug 2024 00:18:22 +0200
Subject: vim-patch:87c01d9: runtime(hollywood): update syn highlight for
 If-Then statements and For-In-Loops

Improving syntax highlighting by allowing numbers, - and a $ as suffix
in user constants and by allowing hwConstants in If-Then statements

closes: vim/vim#15059

https://github.com/vim/vim/commit/87c01d956168c1f41068c2a52e873f760c1f5fa9

Co-authored-by: Tom Crecelius 
---
 runtime/syntax/hollywood.vim | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/hollywood.vim b/runtime/syntax/hollywood.vim
index 7846d5230f..16df9fa736 100644
--- a/runtime/syntax/hollywood.vim
+++ b/runtime/syntax/hollywood.vim
@@ -2,7 +2,7 @@
 " Language:     Hollywood 10.0
 " Maintainer:   Ola Sder 
 " First Author: Tom Crecelius 
-" Last Change:  2023 Mar 22
+" Last Change:  2024 Jun 20
 " Highlighting Issues:
 " Depending on your colour schema, Strings or Comments might be highlighted in
 " a way, you don't like. If so, try one of the following settings after
@@ -30,7 +30,7 @@ let s:cpo_save = &cpo
 set cpo&vim
 
 if !exists("hw_version")
-  let hw_version = 9
+  let hw_version = 10
   let hw_subversion = 0
 elseif !exists("hw_subversion")
   let hw_subversion = 0
@@ -54,9 +54,9 @@ syn match  hwError "\<\%(If\|End\|Else\|ElseIf\|Then\|Until\|In\|EndIf\|EndSwitc
 syn region hwFunctionBlock transparent matchgroup=hwFunction start="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwFallThrough,hwLineStatement
 
 " If .. Then
-syn region hwIfThen transparent matchgroup=hwCond start="\" end="\\{-}"me=e-4 skipwhite skipempty
+syn region hwIfThen transparent matchgroup=hwCond start="\" end="\\{-}"me=e-4 oneline skipwhite skipempty
 " Then ... Else
-syn region hwThenElse transparent matchgroup=hwCond start="\" end="$" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement,hwIfEndIf,hwElseEndif,hwIfThen,hwThenElse skipwhite skipempty
+syn region hwThenElse transparent matchgroup=hwCond start="\" end="$" end="\" contains=hwFunction,hwUserFunction,hwElseIf,hwStatement,hwConstant containedin=hwIfThen oneline skipwhite skipempty
 
 " If .. EndIf
 syn region hwIfEndIf transparent matchgroup=hwCond start="\\(\(.\{-}Then.\{-}\)\@!\)" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement skipwhite skipempty
@@ -98,6 +98,12 @@ syn region hwForTo transparent matchgroup=hwRepeat start="\" end="\"m
 " To .. Next
 syn region hwToNext transparent matchgroup=hwRepeat start="\" end="\"   contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwLineStatement skipwhite skipempty
 
+" For .. In
+syn region hwForIn transparent matchgroup=hwRepeat start="\\(\(.\{-}To.\{-}\)\@!\)" end="\"me=e-2, skipwhite skipempty nextgroup=hwInNext
+
+" In .. Next
+syn region hwInNext transparent matchgroup=hwRepeat start="\" end="\"   contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwLineStatement skipwhite skipempty
+
 syn keyword hwStep contained Step
 syn keyword hwIn contained In
 
@@ -116,7 +122,7 @@ syn match hwConstant "#\<\%(ACTIVEWINDOW\|ADF_ANIM\|ADF_FX\|ADF_MOVEOBJECT\|ALL\
 syn keyword hwFunction Abs ACos ActivateDisplay Add AddArcToPath AddBoxToPath AddCircleToPath AddEllipseToPath AddFontPath AddIconImage AddMove AddStr AddTab AddTextToPath AllocConsoleColor AllocMem AllocMemFromPointer AllocMemFromVirtualFile AppendPath ApplyPatch Arc ArcDistortBrush ARGB ArrayToStr Asc ASin Assert AsyncDrawFrame ATan ATan2 BarrelDistortBrush Base64Str Beep BeepConsole BeginAnimStream BeginDoubleBuffer BeginRefresh BGPicToBrush BinStr BitClear BitComplement BitSet BitTest BitXor Blue BlurBrush Box BreakEventHandler BreakWhileMouseOn BrushToBGPic BrushToGray BrushToMonochrome BrushToPenArray BrushToRGBArray ByteAsc ByteChr ByteLen ByteOffset ByteStrStr ByteVal CallJavaMethod CancelAsyncDraw CancelAsyncOperation CanonizePath Cast Ceil ChangeApplicationIcon ChangeBrushTransparency ChangeDirectory ChangeDisplayMode ChangeDisplaySize ChangeInterval CharcoalBrush CharOffset CharWidth CheckEvent CheckEvents Chr Circle ClearClipboard ClearConsole ClearConsoleStyle ClearEvents ClearInterval ClearMove ClearObjectData ClearPath ClearScreen ClearSerialQueue ClearTimeout CloseAmigaGuide CloseAnim CloseAudio CloseCatalog CloseConnection CloseConsole CloseDirectory CloseDisplay CloseFile CloseFont CloseMusic ClosePath CloseResourceMonitor CloseSerialPort CloseServer CloseUDPObject CloseVideo Cls CollectGarbage Collision ColorRequest CompareDates CompareStr CompressFile Concat ConfigureJoystick ConsolePrint ConsolePrintChr ConsolePrintNR ConsolePrompt ContinueAsyncOperation ContrastBrush ContrastPalette ConvertStr ConvertToBrush CopyAnim CopyBGPic CopyBrush CopyConsoleWindow CopyFile CopyLayer CopyMem CopyObjectData CopyPalette CopyPath CopyPens CopySample CopySprite CopyTable CopyTextObject Cos CountDirectoryEntries CountJoysticks CountStr CRC32 CRC32Str CreateAnim CreateBGPic CreateBorderBrush CreateBrush CreateButton CreateClipRegion CreateConsoleWindow CreateCoroutine CreateDisplay CreateFont CreateGradientBGPic CreateGradientBrush CreateIcon CreateKeyDown CreateLayer CreateList CreateMenu CreateMusic CreatePalette CreatePointer CreatePort CreateRainbowBGPic CreateRexxPort CreateSample CreateServer CreateShadowBrush CreateShortcut CreateSprite CreateTextObject CreateTexturedBGPic CreateTexturedBrush CreateUDPObject CropBrush CtrlCQuit CurveTo CyclePalette DateToTimestamp DateToUTC DebugOutput DebugPrint DebugPrintNR DebugPrompt DebugStr DebugVal DecomposeConsoleChr DecompressFile DecreasePointer DefineVirtualFile DefineVirtualFileFromString Deg DeleteAlphaChannel DeleteButton DeleteConsoleChr DeleteConsoleLine DeleteFile DeleteMask DeletePrefs DeselectMenuItem DeserializeTable DirectoryItems DisableAdvancedConsole DisableButton DisableEvent DisableEventHandler DisableLayers DisableLineHook DisableMenuItem DisablePlugin DisablePrecalculation DisableVWait DisplayAnimFrame DisplayBGPic DisplayBGPicPart DisplayBGPicPartFX DisplayBrush DisplayBrushFX DisplayBrushPart DisplaySprite DisplayTextObject DisplayTextObjectFX DisplayTransitionFX DisplayVideoFrame Div DoMove DownloadFile DrawConsoleBorder DrawConsoleBox DrawConsoleHLine DrawConsoleVLine DrawPath DumpButtons DumpLayers DumpMem DumpVideo DumpVideoTime EdgeBrush Ellipse EmbossBrush EmptyStr EnableAdvancedConsole EnableButton EnableEvent EnableEventHandler EnableLayers EnableLineHook EnableMenuItem EnablePlugin EnablePrecalculation EnableVWait End EndDoubleBuffer EndianSwap EndRefresh EndSelect EndsWith Eof EraseConsole Error EscapeQuit Eval Execute Exists ExitOnError Exp ExtendBrush ExtractPalette FileAttributes FileLength FileLines FilePart FilePos FileRequest FileSize FileToString FillMem FillMusicBuffer FindStr FinishAnimStream FinishAsyncDraw FlashConsole Flip FlipBrush FlipSprite FloodFill Floor FlushFile FlushMusicBuffer FlushSerialPort FontRequest ForcePathUse ForceSound ForceVideoDriver ForceVideoMode ForEach ForEachI FormatConsoleLine FormatDate FormatNumber FormatStr Frac FreeAnim FreeBGPic FreeBrush FreeClipRegion FreeConsoleColor FreeConsoleWindow FreeDisplay FreeEventCache FreeGlyphCache FreeIcon FreeLayers FreeMem FreeMenu FreeModule FreePalette FreePath FreePointer FreeSample FreeSprite FreeTextObject FrExp FullPath GammaBrush GammaPalette GCInfo GetAllocConsoleColor GetAnimFrame GetApplicationInfo GetApplicationList GetAsset GetAttribute GetAvailableFonts GetBaudRate GetBestPen GetBrushLink GetBrushPen GetBulletColor GetCatalogString GetChannels GetCharMaps GetClipboard GetCommandLine GetConnectionIP GetConnectionPort GetConnectionProtocol GetConsoleBackground GetConsoleChr GetConsoleColor GetConsoleControlChr GetConsoleCursor GetConsoleOrigin GetConsoleSize GetConsoleStr GetConsoleStyle GetConsoleWindow GetConstant GetCoroutineStatus GetCountryInfo GetCurrentDirectory GetCurrentPoint GetDash GetDataBits GetDate GetDateNum GetDefaultAdapter GetDefaultEncoding GetDefaultLoader GetDirectoryEntry GetDisplayModes GetDTR GetEnv GetErrorName GetEventCode GetFileArgument GetFileAttributes GetFillRule GetFillStyle GetFlowControl GetFontColor GetFontStyle GetFormStyle GetFPSLimit GetFreePen GetFrontScreen GetHostName GetIconProperties GetItem GetKerningPair GetLanguageInfo GetLastError GetLayerAtPos GetLayerGroupMembers GetLayerGroups GetLayerPen GetLayerStyle GetLineCap GetLineJoin GetLineWidth GetLocaleInfo GetLocalInterfaces GetLocalIP GetLocalPort GetLocalProtocol GetMACAddress GetMemoryInfo GetMemPointer GetMemString GetMetaTable GetMiterLimit GetMonitors GetObjectData GetObjects GetObjectType GetPalettePen GetParity GetPathExtents GetPatternPosition GetPen GetPlugins GetProgramDirectory GetProgramInfo GetPubScreens GetRandomColor GetRandomFX GetRawArguments GetRealColor GetRTS GetSampleData GetSerializeMode GetShortcutPath GetSongPosition GetStartDirectory GetStopBits GetSystemCountry GetSystemInfo GetSystemLanguage GetTempFileName GetTime GetTimer GetTimestamp GetTimeZone GetType GetVersion GetVideoFrame GetVolumeInfo GetVolumeName GetWeekday Gosub Goto GrabDesktop Green GroupLayer HasItem HaveConsole HaveFreeChannel HaveItem HaveObject HaveObjectData HavePlugin HaveVolume HexStr HideConsoleCursor HideDisplay HideKeyboard HideLayer HideLayerFX HidePointer HideScreen Hypot IgnoreCase IIf ImageRequest IncreasePointer InitConsoleColor InKeyStr InsertConsoleChr InsertConsoleLine InsertConsoleStr InsertItem InsertLayer InsertSample InsertStr InstallEventHandler Int Intersection InvertAlphaChannel InvertBrush InvertMask InvertPalette IPairs IsAbsolutePath IsAlNum IsAlpha IsAnim IsAnimPlaying IsBrushEmpty IsChannelPlaying IsCntrl IsDigit IsDirectory IsFinite IsGraph IsInf IsKeyDown IsLeftMouse IsLower IsMenuItemDisabled IsMenuItemSelected IsMidMouse IsModule IsMusic IsMusicPlaying IsNan IsNil IsOnline IsPathEmpty IsPicture IsPrint IsPunct IsRightMouse IsSample IsSamplePlaying IsSound IsSpace IsTableEmpty IsUnicode IsUpper IsVideo IsVideoPlaying IsXDigit JoyAxisX JoyAxisY JoyAxisZ JoyButton JoyDir JoyFire Label JoyHat LayerExists LayerGroupExists LayerToBack LayerToFront Ld LdExp LeftMouseQuit LeftStr LegacyControl Limit Line LineTo ListItems ListRequest Ln LoadAnim LoadAnimFrame LoadBGPic LoadBrush LoadIcon LoadModule LoadPalette LoadPlugin LoadPrefs LoadSample LoadSprite Locate Log LowerStr MakeButton MakeConsoleChr MakeDate MakeDirectory MakeHostPath MatchPattern Matrix2D Max MD5 MD5Str MemToTable MergeLayers MidStr Min MixBrush MixRGB MixSample Mod ModifyAnimFrames ModifyButton ModifyKeyDown ModifyLayerFrames ModulateBrush ModulatePalette MonitorDirectory MouseX MouseY MoveAnim MoveBrush MoveConsoleWindow MoveDisplay MoveFile MoveLayer MovePointer MoveSprite MoveTextObject MoveTo Mul NearlyEqual NextDirectoryEntry NextFrame NextItem NormalizePath NPrint OilPaintBrush OpenAmigaGuide OpenAnim OpenAudio OpenCatalog OpenConnection OpenConsole OpenDirectory OpenDisplay OpenFile OpenFont OpenMusic OpenResourceMonitor OpenSerialPort OpenURL OpenVideo Pack PadNum Pairs PaletteToGray ParseDate PathItems PathPart PathRequest PathToBrush PatternFindStr PatternFindStrDirect PatternFindStrShort PatternReplaceStr PauseLayer PauseModule PauseMusic PauseTimer PauseVideo Peek PeekClipboard PenArrayToBrush PerformSelector PermissionRequest PerspectiveDistortBrush Pi PixelateBrush PlayAnim PlayAnimDisk PlayLayer PlayModule PlayMusic PlaySample PlaySubsong PlayVideo Plot Poke PolarDistortBrush PollSerialQueue Polygon PopupMenu Pow Print QuantizeBrush Rad RaiseOnError RasterizeBrush RawDiv RawEqual RawGet RawSet ReadBrushPixel ReadByte ReadBytes ReadChr ReadConsoleKey ReadConsoleStr ReadDirectory ReadFloat ReadFunction ReadInt ReadLine ReadMem ReadPen ReadPixel ReadRegistryKey ReadSerialData ReadShort ReadString ReadTable ReceiveData ReceiveUDPData Red ReduceAlphaChannel RefreshConsole RefreshDisplay RefreshLayer RelCurveTo RelLineTo RelMoveTo RemapBrush RemoveBrushPalette RemoveButton RemoveIconImage RemoveItem RemoveKeyDown RemoveLayer RemoveLayerFX RemoveLayers RemoveSprite RemoveSprites Rename RenderLayer RepeatStr ReplaceColors ReplaceStr ResetKeyStates ResetTabs ResetTimer ResolveHostName ResumeCoroutine ResumeLayer ResumeModule ResumeMusic ResumeTimer ResumeVideo ReverseFindStr ReverseStr RewindDirectory RGB RGBArrayToBrush RightStr Rnd RndF RndStrong Rol Ror RotateBrush RotateLayer RotateTextObject Round Rt Run RunCallback RunRexxScript Sar SaveAnim SaveBrush SaveIcon SavePalette SavePrefs SaveSample SaveSnapshot ScaleAnim ScaleBGPic ScaleBrush ScaleLayer ScaleSprite ScaleTextObject ScrollConsole Seek SeekLayer SeekMusic SeekVideo SelectAlphaChannel SelectAnim SelectBGPic SelectBrush SelectConsoleWindow SelectDisplay SelectLayer SelectMask SelectMenuItem SelectPalette SendApplicationMessage SendData SendMessage SendRexxCommand SendUDPData SepiaToneBrush SerializeTable SetAllocConsoleColor SetAlphaIntensity SetAnimFrameDelay SetAttribute SetBaudRate SetBorderPen SetBrushDepth SetBrushPalette SetBrushPen SetBrushTransparency SetBrushTransparentPen SetBulletColor SetBulletPen SetChannelVolume SetClipboard SetClipRegion SetConsoleBackground SetConsoleColor SetConsoleCursor SetConsoleOptions SetConsoleStyle SetConsoleTitle SetCycleTable SetDash SetDataBits SetDefaultAdapter SetDefaultEncoding SetDefaultLoader SetDepth SetDisplayAttributes SetDitherMode SetDrawPen SetDrawTagsDefault SetDTR SetEnv SetEventTimeout SetFileAttributes SetFileEncoding SetFillRule SetFillStyle SetFlowControl SetFont SetFontColor SetFontStyle SetFormStyle SetFPSLimit SetGradientPalette SetIconProperties SetInterval SetIOMode SetLayerAnchor SetLayerBorder SetLayerDepth SetLayerFilter SetLayerLight SetLayerName SetLayerPalette SetLayerPen SetLayerShadow SetLayerStyle SetLayerTint SetLayerTransparency SetLayerTransparentPen SetLayerVolume SetLayerZPos SetLineCap SetLineJoin SetLineWidth SetListItems SetMargins SetMaskMode SetMasterVolume SetMetaTable SetMiterLimit SetMusicVolume SetNetworkProtocol SetNetworkTimeout SetObjectData SetPalette SetPaletteDepth SetPaletteMode SetPalettePen SetPaletteTransparentPen SetPanning SetParity SetPen SetPitch SetPointer SetRTS SetScreenTitle SetSerializeMode SetSerializeOptions SetShadowPen SetSpriteZPos SetStandardIconImage SetStandardPalette SetStopBits SetSubtitle SetTimeout SetTimerElapse SetTitle SetTransparentPen SetTransparentThreshold SetTrayIcon SetVarType SetVectorEngine SetVideoPosition SetVideoSize SetVideoVolume SetVolume SetWBIcon Sgn SharpenBrush Shl ShowConsoleCursor ShowDisplay ShowKeyboard ShowLayer ShowLayerFX ShowNotification ShowPointer ShowRinghioMessage ShowScreen ShowToast Shr Sin Sleep SolarizeBrush SolarizePalette Sort SplitStr Sqrt StartConsoleColorMode StartPath StartSubPath StartsWith StartTimer StopAnim StopChannel StopLayer StopModule StopMusic StopSample StopTimer StopVideo StringRequest StringToFile StripStr StrLen StrStr StrToArray Sub SwapLayers SwirlBrush SystemRequest TableItems TableToMem Tan TextExtent TextHeight TextOut TextWidth TimerElapsed TimestampToDate TintBrush TintPalette ToHostName ToIP ToNumber ToString TouchConsoleWindow ToUserData TransformBox TransformBrush TransformLayer TransformPoint TransformTextObject TranslateLayer TranslatePath TrimBrush TrimStr UndefineVirtualStringFile Undo UndoFX UngroupLayer UnleftStr UnmidStr Unpack UnrightStr UnsetEnv UploadFile UpperStr Usage UseCarriageReturn UseFont UTCToDate Val ValidateDate ValidateStr Vibrate VWait Wait WaitAnimEnd WaitEvent WaitKeyDown WaitLeftMouse WaitMidMouse WaitMusicEnd WaitPatternPosition WaitRightMouse WaitSampleEnd WaitSongPosition WaitTimer WaterRippleBrush WhileKeyDown WhileMouseDown WhileMouseOn WhileRightMouseDown Wrap WriteAnimFrame WriteBrushPixel WriteByte WriteBytes WriteChr WriteFloat WriteFunction WriteInt WriteLine WriteMem WritePen WriteRegistryKey WriteSerialData WriteShort WriteString WriteTable YieldCoroutine
 
 " user-defined constants
-syn match hwUserConstant "#\<\u\+\>"
+syn match hwUserConstant "#\<\(\u\|_\|-\|\d\)\+\>\$\?"
 " user-defined functions
 syn match hwUserFunction "\("me=e-1
 
-- 
cgit 


From 808d73b5dfcc3024d4ddf23f902009e65acc0972 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Sun, 1 Sep 2024 08:26:59 +0800
Subject: vim-patch:d817609: runtime(vim): Update base-syntax, match bracket
 mark ranges (#30208)

Match '(,'),'[,'],'{, and '} marks in Ex command ranges.

Thanks to Maxim Kim.

Fixes vim/vim#15332.
Closes vim/vim#15337.

https://github.com/vim/vim/commit/d817609b87fd155e0d71c29ed056effdedbd7ee0

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 55642fb897..f3d9c53f0b 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -470,8 +470,8 @@ syn match	vimString	"[^(,]'[^']\{-}\zs'"
 
 " Marks, Registers, Addresses, Filters: {{{2
 syn match	vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match	vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match	vimMark	",\zs'[<>]\ze"		nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match	vimMark	"'[[\]{}()<>]\ze[-+,!]"	nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match	vimMark	",\zs'[[\]{}()<>]\ze"	nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match	vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match	vimMark	"\
Date: Mon, 2 Sep 2024 10:53:49 +0200
Subject: vim-patch:bd69b39: runtime(sudoers): improve recognized Runas_Spec
 and Tag_Spec items

Recognize colon-delimited second part of Runas_Spec that specifies
permitted groups, e.g.:

    alan ALL = (root, bin : operator, system) ALL

This implementation is sloppy because it accepts any amount of colons
delimiting further Runas_Lists, but for now that's better than bailing
out completely as soon as a colon is encountered (esp. given that the
default sudoers uses these colons, breaking highlighting OOTB).

Also, while at it, make Vim recognize all Tag_Spec items, not just
{,NO}PASSWD

closes: vim/vim#15607

https://github.com/vim/vim/commit/bd69b39514f1fec45a5ac76cd36db5dec2faebe2

Co-authored-by: Christian Brabandt 
---
 runtime/syntax/sudoers.vim | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index bf2d337d9e..4cdf598be0 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -2,9 +2,10 @@
 " Language:             sudoers(5) configuration files
 " Maintainer:           Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
 " Previous Maintainer:  Nikolai Weibull 
-" Latest Revision:      2021 Mar 15
+" Latest Revision:      2024 Sep 02
 " Recent Changes:	Support for #include and #includedir.
 " 			Added many new options (Samuel D. Leslie)
+" 			Update allowed Tag_Spec Runas_Spec syntax items
 
 if exists("b:current_syntax")
   finish
@@ -22,7 +23,7 @@ syn match   sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite
 
 syn match   sudoersSpecEquals         contained '=' nextgroup=@sudoersCmndSpecList skipwhite
 
-syn cluster sudoersCmndSpecList       contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec
+syn cluster sudoersCmndSpecList       contains=sudoersUserRunasBegin,sudoersTagSpec,@sudoersCmndInSpec
 
 syn keyword sudoersTodo               contained TODO FIXME XXX NOTE
 
@@ -92,10 +93,11 @@ syn cluster sudoersUserList         contains=sudoersUserListComma,sudoersUserLis
 syn match   sudoersUserSpecComma    contained ',' nextgroup=@sudoersUserInSpec  skipwhite skipnl
 syn cluster sudoersUserSpec         contains=sudoersUserSpecComma,@sudoersHostInSpec
 
-syn match   sudoersUserRunasBegin   contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl
+syn match   sudoersUserRunasBegin   contained '(' nextgroup=@sudoersUserInRunas,sudoersUserRunasColon skipwhite skipnl
 syn match   sudoersUserRunasComma   contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl
-syn match   sudoersUserRunasEnd     contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl
-syn cluster sudoersUserRunas        contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd
+syn match   sudoersUserRunasColon   contained ':' nextgroup=@sudoersUserInRunas skipwhite skipnl
+syn match   sudoersUserRunasEnd     contained ')' nextgroup=sudoersTagSpec,@sudoersCmndInSpec skipwhite skipnl
+syn cluster sudoersUserRunas        contains=sudoersUserRunasComma,sudoersUserRunasColon,@sudoersUserInRunas,sudoersUserRunasEnd
 
 
 syn match   sudoersHostAliasEquals  contained '=' nextgroup=@sudoersHostInList  skipwhite skipnl
@@ -291,7 +293,7 @@ syn region  sudoersStringValue  contained start=+"+ skip=+\\"+ end=+"+ nextgroup
 syn match   sudoersListValue    contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl
 syn region  sudoersListValue    contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl
 
-syn match   sudoersPASSWD                   contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite
+syn match   sudoersTagSpec      contained '\%(NO\)\=\%(EXEC\|FOLLOW\|LOG_\%(INPUT\|OUTPUT\)\|MAIL\|INTERCEPT\|PASSWD\|SETENV\):' nextgroup=sudoersTagSpec,@sudoersCmndInSpec skipwhite
 
 hi def link sudoersSpecEquals               Operator
 hi def link sudoersTodo                     Todo
@@ -345,6 +347,7 @@ hi def link sudoersUserListColon            Delimiter
 hi def link sudoersUserSpecComma            Delimiter
 hi def link sudoersUserRunasBegin           Delimiter
 hi def link sudoersUserRunasComma           Delimiter
+hi def link sudoersUserRunasColon           Delimiter
 hi def link sudoersUserRunasEnd             Delimiter
 hi def link sudoersHostAliasEquals          Operator
 hi def link sudoersHostListComma            Delimiter
@@ -381,7 +384,7 @@ hi def link sudoersListParameterEquals      Operator
 hi def link sudoersIntegerValue             Number
 hi def link sudoersStringValue              String
 hi def link sudoersListValue                String
-hi def link sudoersPASSWD                   Special
+hi def link sudoersTagSpec                  Special
 hi def link sudoersInclude                  Statement
 
 let b:current_syntax = "sudoers"
-- 
cgit 


From a8fc799e8bdd62b277de771ad80089dd58fbbeba Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Mon, 2 Sep 2024 17:38:19 +0800
Subject: vim-patch:3c07eb0: runtime(vim): Update syntax, improve user-command
 matching (#30231)

- Match -addr and -keepscript attributes and generate -addr values.
- Match attribute errors where = is specified.
- Highlight attributes with Special like other Ex command options.
- Don't highlight user-specified completion function args.
- Match :delcommand -buffer attribute.

closes: vim/vim#15586

https://github.com/vim/vim/commit/3c07eb0c6730c258c6955ce8458cf911245c1617

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 70 +++++++++++++++++++++++++++++++-------------------
 1 file changed, 44 insertions(+), 26 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index f3d9c53f0b..89577ffaae 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -177,10 +177,11 @@ syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
 syn cluster vim9CmdList	contains=vim9Const,vim9Final,vim9For,vim9Var
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand	"\<\%(\h\w*\|[23]mat\%[ch]\)\>"	contains=vimCommand
+syn match vimBang	      contained	"!"
 syn match vimVar	      contained	"\<\h[a-zA-Z0-9#_]*\>"
 syn match vimVar		"\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
 syn match vimVar	      	"\s\zs&\%([lg]:\)\=\a\+\>"
@@ -353,33 +354,46 @@ syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained
 " User-Specified Commands: {{{2
 " =======================
 syn cluster	vimUserCmdList	contains=@vimCmdList,vimCmplxRepeat,@vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange
-syn keyword	vimUserCommand	contained	com[mand]
-syn match	vimUserCmdName	contained	"\<\u\w*\>" nextgroup=vimUserCmdBlock skipwhite
-syn match	vimUserCmd	"\.*$"	contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter,vimCmdBlock,vimUserCmdName
-syn match	vimUserAttrbError	contained	"-\a\+\ze\s"
-syn match	vimUserAttrb	contained	"-nargs=[01*?+]"	contains=vimUserAttrbKey,vimOper
-syn match	vimUserAttrb	contained	"-complete="		contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
-syn match	vimUserAttrb	contained	"-range\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match	vimUserAttrb	contained	"-count\(=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match	vimUserAttrb	contained	"-bang\>"		contains=vimOper,vimUserAttrbKey
-syn match	vimUserAttrb	contained	"-bar\>"		contains=vimOper,vimUserAttrbKey
-syn match	vimUserAttrb	contained	"-buffer\>"		contains=vimOper,vimUserAttrbKey
-syn match	vimUserAttrb	contained	"-register\>"		contains=vimOper,vimUserAttrbKey
+syn keyword	vimUserCmdKey	contained	com[mand]
+syn match	vimUserCmdName	contained	"\<\u[[:alnum:]]*\>"	skipwhite nextgroup=vimUserCmdBlock
+syn match	vimUserCmd		"\!\=.*$"	contains=vimUserCmdKey,vimBang,vimUserCmdAttr,vimUserCmdAttrError,vimUserCmdName,@vimUserCmdList,vimComFilter
+syn match	vimUserCmdAttrError	contained	"-\a\+\ze\%(\s\|=\)"
+syn match	vimUserCmdAttr	contained	"-addr="		contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrAddr
+syn match	vimUserCmdAttr	contained	"-bang\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-bar\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-buffer\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-complete="		contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrCmplt,vimUserCmdError
+syn match	vimUserCmdAttr	contained	"-count\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-count="		contains=vimUserCmdAttrKey nextgroup=vimNumber
+syn match	vimUserCmdAttr	contained	"-keepscript\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-nargs="		contains=vimUserCmdAttrKey nextgroup=vimUserCmdAttrNargs
+syn match	vimUserCmdAttr	contained	"-range\>"		contains=vimUserCmdAttrKey
+syn match	vimUserCmdAttr	contained	"-range="		contains=vimUserCmdAttrKey nextgroup=vimNumber,vimUserCmdAttrRange
+syn match	vimUserCmdAttr	contained	"-register\>"		contains=vimUserCmdAttrKey
+
+syn match	vimUserCmdAttrNargs	contained	"[01*?+]"
+syn match	vimUserCmdAttrRange	contained	"%"
+
 if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror")
  syn match	vimUserCmdError	contained	"\S\+\>"
 endif
-syn case ignore
-syn keyword	vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
-" GEN_SYN_VIM: vimUserAttrbCmplt, START_STR='syn keyword vimUserAttrbCmplt contained', END_STR=''
-syn keyword vimUserAttrbCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd sign syntax syntime tag tag_listfiles user var
-syn keyword	vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
-syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
 
+syn case ignore
+syn keyword	vimUserCmdAttrKey   contained	a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister]
+" GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR=''
+syn keyword vimUserCmdAttrCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd sign syntax syntime tag tag_listfiles user var
+syn keyword	vimUserCmdAttrCmplt     contained	custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError
+syn match	vimUserCmdAttrCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError
+" GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR=''
+syn keyword vimUserCmdAttrAddr contained arguments arg buffers buf lines line loaded_buffers load other quickfix qf tabs tab windows win
+syn match	vimUserCmdAttrAddr	contained	"?"
 syn case match
-syn match	vimUserAttrbCmplt contained	"custom,\u\w*"
 
 syn region	vimUserCmdBlock	contained	matchgroup=vimSep start="{" end="}" contains=@vimDefBodyList
 
+syn match	vimDelcommand		"\" skipwhite nextgroup=vimDelcommandAttr
+syn match	vimDelcommandAttr	contained	"-buffer\>"
+
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
 if get(g:, "vimsyn_comment_strings", 1)
@@ -1162,6 +1176,8 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimDefComment	vim9Comment
  hi def link vimDefKey	vimCommand
  hi def link vimDefParam vimVar
+ hi def link vimDelcommand	vimCommand
+ hi def link vimDelcommandAttr	vimUserCmdAttr
  hi def link vimEcho	vimCommand
  hi def link vimEchohlNone	vimGroup
  hi def link vimEchohl	vimCommand
@@ -1319,13 +1335,15 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimUnlet	vimCommand
  hi def link vimUnletBang	vimBang
  hi def link vimUnmap	vimMap
- hi def link vimUserAttrbCmpltFunc	Special
- hi def link vimUserAttrbCmplt	vimSpecial
- hi def link vimUserAttrbKey	vimOption
- hi def link vimUserAttrb	vimSpecial
- hi def link vimUserAttrbError	Error
+ hi def link vimUserCmdAttrAddr	vimSpecial
+ hi def link vimUserCmdAttrCmplt	vimSpecial
+ hi def link vimUserCmdAttrNargs	vimSpecial
+ hi def link vimUserCmdAttrRange	vimSpecial
+ hi def link vimUserCmdAttrKey	vimUserCmdAttr
+ hi def link vimUserCmdAttr	Special
+ hi def link vimUserCmdAttrError	Error
  hi def link vimUserCmdError	Error
- hi def link vimUserCommand	vimCommand
+ hi def link vimUserCmdKey	vimCommand
  hi def link vimUserFunc	Normal
  hi def link vimVar	Identifier
  hi def link vimWarn	WarningMsg
-- 
cgit 


From 51088b67cb1e9363df98cfc8f3bbd6caad03cc5d Mon Sep 17 00:00:00 2001
From: Gregory Anders <8965202+gpanders@users.noreply.github.com>
Date: Wed, 4 Sep 2024 19:32:52 -0500
Subject: vim-patch:150b507: runtime(hcl,terraform): Add runtime files for HCL
 and Terraform (#30266)

closes: vim/vim#15618

https://github.com/vim/vim/commit/150b5078ac886519083576124090489c3a21bd3b
---
 runtime/syntax/hcl.vim       | 66 ++++++++++++++++++++++++++++++++++++++++++++
 runtime/syntax/terraform.vim | 17 ++++++++++++
 2 files changed, 83 insertions(+)
 create mode 100644 runtime/syntax/hcl.vim
 create mode 100644 runtime/syntax/terraform.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/hcl.vim b/runtime/syntax/hcl.vim
new file mode 100644
index 0000000000..5e9349ab38
--- /dev/null
+++ b/runtime/syntax/hcl.vim
@@ -0,0 +1,66 @@
+" Vim syntax file
+" Language:    HCL
+" Maintainer:  Gregory Anders
+" Upstream:    https://github.com/hashivim/vim-terraform
+" Last Change: 2024-09-03
+
+if exists('b:current_syntax')
+  finish
+endif
+
+syn iskeyword a-z,A-Z,48-57,_,-
+
+syn case match
+
+" A block is introduced by a type, some number of labels - which are either
+" strings or identifiers - and an opening curly brace.  Match the type.
+syn match hclBlockType /^\s*\zs\K\k*\ze\s\+\(\("\K\k*"\|\K\k*\)\s\+\)*{/
+
+" An attribute name is an identifier followed by an equals sign.
+syn match hclAttributeAssignment /\(\K\k*\.\)*\K\k*\s\+=\s/ contains=hclAttributeName
+syn match hclAttributeName /\<\K\k*\>/ contained
+
+syn keyword hclValueBool true false
+
+syn keyword hclTodo         contained TODO FIXME XXX BUG
+syn region  hclComment      start="/\*" end="\*/" contains=hclTodo,@Spell
+syn region  hclComment      start="#" end="$" contains=hclTodo,@Spell
+syn region  hclComment      start="//" end="$" contains=hclTodo,@Spell
+
+""" misc.
+syn match hclValueDec      "\<[0-9]\+\([kKmMgG]b\?\)\?\>"
+syn match hclValueHexaDec  "\<0x[0-9a-f]\+\([kKmMgG]b\?\)\?\>"
+syn match hclBraces        "[\[\]]"
+
+""" skip \" and \\ in strings.
+syn region hclValueString   start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=hclStringInterp
+syn region hclStringInterp  matchgroup=hclBraces start=/\(^\|[^$]\)\$\zs{/ end=/}/ contained contains=ALLBUT,hclAttributeName
+syn region hclHereDocText   start=/<<-\?\z([a-z0-9A-Z]\+\)/ end=/^\s*\z1/ contains=hclStringInterp
+
+"" Functions.
+syn match hclFunction "[a-z0-9]\+(\@="
+
+""" HCL2
+syn keyword hclRepeat         for in
+syn keyword hclConditional    if
+syn keyword hclValueNull      null
+
+" enable block folding
+syn region hclBlockBody matchgroup=hclBraces start="{" end="}" fold transparent
+
+hi def link hclComment           Comment
+hi def link hclTodo              Todo
+hi def link hclBraces            Delimiter
+hi def link hclAttributeName     Identifier
+hi def link hclBlockType         Type
+hi def link hclValueBool         Boolean
+hi def link hclValueDec          Number
+hi def link hclValueHexaDec      Number
+hi def link hclValueString       String
+hi def link hclHereDocText       String
+hi def link hclFunction          Function
+hi def link hclRepeat            Repeat
+hi def link hclConditional       Conditional
+hi def link hclValueNull         Constant
+
+let b:current_syntax = 'hcl'
diff --git a/runtime/syntax/terraform.vim b/runtime/syntax/terraform.vim
new file mode 100644
index 0000000000..559dc79568
--- /dev/null
+++ b/runtime/syntax/terraform.vim
@@ -0,0 +1,17 @@
+" Vim syntax file
+" Language:    Terraform
+" Maintainer:  Gregory Anders
+" Upstream:    https://github.com/hashivim/vim-terraform
+" Last Change: 2024-09-03
+
+if exists('b:current_syntax')
+  finish
+endif
+
+runtime! syntax/hcl.vim
+
+syn keyword terraType string bool number object tuple list map set any
+
+hi def link terraType Type
+
+let b:current_syntax = 'terraform'
-- 
cgit 


From 220b8aa6fe4be4e8f13600a5d7ae19fef79ba53a Mon Sep 17 00:00:00 2001
From: Gregory Anders <8965202+gpanders@users.noreply.github.com>
Date: Wed, 4 Sep 2024 19:33:07 -0500
Subject: vim-patch:315b6f7: runtime(tmux): Update syntax script (#30265)

closes: ericpruitt/tmux.vim#25
closes: vim/vim#15622

https://github.com/vim/vim/commit/315b6f7b73edfffe4c6e4b0a4d620707489f7315

Co-authored-by: Eric Pruitt 
---
 runtime/syntax/tmux.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/tmux.vim b/runtime/syntax/tmux.vim
index 80636f2c58..4b8454dd51 100644
--- a/runtime/syntax/tmux.vim
+++ b/runtime/syntax/tmux.vim
@@ -1,5 +1,5 @@
 " Language: tmux(1) configuration file
-" Version: 3.4 (git-171004df)
+" Version: 3.4 (git-3d8ead8a)
 " URL: https://github.com/ericpruitt/tmux.vim/
 " Maintainer: Eric Pruitt 
 " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
@@ -37,7 +37,7 @@ syn match tmuxInvalidVariableExpansion /\${[^}]*$/ display
 syn match tmuxInvalidVariableExpansion /\${[^A-Za-z_][^}]*}/ display
 syn match tmuxInvalidVariableExpansion /\$[^A-Za-z_{ \t]/ display
 " Contains invalid character.
-syn match tmuxInvalidVariableExpansion /\${[^}]*[^A-Za-z0-9_][^}]*}/ display
+syn match tmuxInvalidVariableExpansion /\${[^}]*[^A-Za-z0-9_}][^}]*}/ display
 
 syn region tmuxComment start=/#/ skip=/\\\@
Date: Wed, 11 Sep 2024 09:22:45 +0200
Subject: vim-patch:c0982f9: runtime(dosini): Update syntax script, spellcheck
 comments only

By default spell checking is enabled for all text, but adding
`contains=@Spell` to syntax rules restricts spell checking to those
syntax rules.  See `:help spell-syntax` for full details.

Variable names and headers are far more likely than comments to contain
spelling errors, so only enable spell checking in comments.

Introduced in https://github.com/xuhdev/syntax-dosini.vim/pull/8

cc @tobinjt

closes: vim/vim#15655

https://github.com/vim/vim/commit/c0982f9f794a4c5737d3d7a3129b3121ab20e458

Co-authored-by: John Tobin 
---
 runtime/syntax/dosini.vim | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/dosini.vim b/runtime/syntax/dosini.vim
index 66e17ec9af..e8212b6d2e 100644
--- a/runtime/syntax/dosini.vim
+++ b/runtime/syntax/dosini.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
 " Language:               Configuration File (ini file) for MSDOS/MS Windows
-" Version:                2.3
+" Version:                2.4
 " Original Author:        Sean M. McKee 
 " Previous Maintainer:    Nima Talebi 
 " Current Maintainer:     Hong Xu 
 " Homepage:               http://www.vim.org/scripts/script.php?script_id=3747
 " Repository:             https://github.com/xuhdev/syntax-dosini.vim
-" Last Change:            2023 Aug 20
+" Last Change:            2024 Sept 08
 
 
 " quit when a syntax file was already loaded
@@ -27,7 +27,7 @@ syn match  dosiniNumber   "=\zs\s*\d\+\s*$"
 syn match  dosiniNumber   "=\zs\s*\d*\.\d\+\s*$"
 syn match  dosiniNumber   "=\zs\s*\d\+e[+-]\=\d\+\s*$"
 syn region dosiniHeader   start="^\s*\[" end="\]"
-syn match  dosiniComment  "^[#;].*$"
+syn match  dosiniComment  "^[#;].*$" contains=@Spell
 syn region dosiniSection  start="\s*\[.*\]" end="\ze\s*\[.*\]" fold
       \ contains=dosiniLabel,dosiniValue,dosiniNumber,dosiniHeader,dosiniComment
 
-- 
cgit 


From 57db94235c5d52b0fa34120faea158f4ba50db10 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 11 Sep 2024 09:22:59 +0200
Subject: vim-patch:a9ae38d: runtime(java): Recognise all available standard
 doclet tags

* Complement the tag set with @spec, {@systemProperty},
  {@summary}, @provides, @uses, @hidden, and {@index}.
* Do not hoard all tags under a single highlighting group.
* Skip over nested balanced braces in inline tags.
* Observe that tag names are case sensitive: both {@docRoot}
  and {@inheritDoc} are valid, whereas {@inheritdoc} and
  {@docroot} are not.
* In the @see tag arguments, allow for:
  - module name prefixes (e.g. java.base/java.lang.String);
  - references to arbitrary URI fragments (e.g. ##foo);
  - matching any tag variation arguments on the next line.
* Test directives and tags for Java module declarations.
* Enforce the word end for "module-info" candidates.

References:
https://bugs.openjdk.org/browse/JDK-8226279 (@spec)
https://bugs.openjdk.org/browse/JDK-8214559 ({@systemProperty})
https://bugs.openjdk.org/browse/JDK-8173425 ({@summary})
https://bugs.openjdk.org/browse/JDK-8160196 (@provides & @uses)
https://bugs.openjdk.org/browse/JDK-8073100 (@hidden)
https://bugs.openjdk.org/browse/JDK-8044243 ({@index})
https://docs.oracle.com/en/java/javase/21/docs/specs/javadoc/doc-comment-spec.html
https://github.com/openjdk/jdk/blob/jdk-21-ga/src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java

closes: vim/vim#15652

https://github.com/vim/vim/commit/a9ae38dc3f42f0dd39dae1311de6e1c289697df4

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 105 +++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 91 insertions(+), 14 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 8aa053d522..293d63c0a2 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Aug 26
+" Last Change:		2024 Sep 10
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -157,13 +157,20 @@ endif
 " testing in a project without attendant confusion for IDEs, with the
 " ".java\=" extension used for a production version and an arbitrary
 " extension used for a testing version.
-if fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!'
+if fnamemodify(bufname("%"), ":t") =~ '^module-info\>\%(\.class\>\)\@!'
   syn keyword javaModuleStorageClass	module transitive
   syn keyword javaModuleStmt		open requires exports opens uses provides
   syn keyword javaModuleExternal	to with
   hi def link javaModuleStorageClass	StorageClass
   hi def link javaModuleStmt		Statement
   hi def link javaModuleExternal	Include
+
+  if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
+    syn match javaDocProvidesTag	contained "@provides\_s\+\S\+" contains=javaDocParam
+    syn match javaDocUsesTag		contained "@uses\_s\+\S\+" contains=javaDocParam
+    hi def link javaDocProvidesTag	Special
+    hi def link javaDocUsesTag		Special
+  endif
 endif
 
 " Fancy parameterised types (JLS-17, §4.5).
@@ -335,29 +342,99 @@ if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
     call s:ReportOnce(v:exception)
   endtry
 
-  syn region javaDocComment	start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag,javaTodo,javaCommentError,javaSpaceError,@Spell fold
-  exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag'
-  syn region javaCommentTitle	contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,javaDocTags,javaDocSeeTag,javaDocCodeTag,javaDocSnippetTag
-  syn region javaDocTags	contained start="{@\%(li\%(teral\|nk\%(plain\)\=\)\|inherit[Dd]oc\|doc[rR]oot\|value\)\>" end="}"
-  syn match  javaDocTags	contained "@\%(param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam
-  syn match  javaDocParam	contained "\s\S\+"
-  syn match  javaDocTags	contained "@\%(version\|author\|return\|deprecated\|serial\%(Field\|Data\)\=\)\>"
-  syn region javaDocSeeTag	contained matchgroup=javaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=javaDocSeeTagParam
-  syn match  javaDocSeeTagParam	contained @"\_[^"]\+"\|\|\%(\k\|\.\)*\%(#\k\+\%((\_[^)]*)\)\=\)\=@ contains=@javaHtml extend
+  syn region javaDocComment	start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,@javaDocTags,javaTodo,javaCommentError,javaSpaceError,@Spell fold
+  exec 'syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle end="\.$" end="\.[ \t\r]\@=" end="\%(^\s*\**\s*\)\@' . s:ff.Peek('80', '') . '<=@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags'
+  syn region javaCommentTitle	contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@return\>\)\@=" matchgroup=javaCommentTitle end="}\%(\s*\.*\)*" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
+  syn region javaCommentTitle	contained matchgroup=javaDocComment start="/\*\*\s*\r\=\n\=\s*\**\s*\%({@summary\>\)\@=" matchgroup=javaCommentTitle end="}" contains=@javaHtml,javaCommentStar,javaTodo,javaCommentError,javaSpaceError,@Spell,@javaDocTags,javaTitleSkipBlock
+  " The members of javaDocTags are sub-grouped according to the Java
+  " version of their introduction, and sub-group members in turn are
+  " arranged in alphabetical order, so that future newer members can
+  " be pre-sorted and appended without disturbing the current member
+  " placement.
+  " Since they only have significance in javaCommentTitle, neither
+  " javaDocSummaryTag nor javaDocReturnTitleTag are defined.
+  syn cluster javaDocTags	contains=javaDocAuthorTag,javaDocDeprecatedTag,javaDocExceptionTag,javaDocParamTag,javaDocReturnTag,javaDocSeeTag,javaDocVersionTag,javaDocSinceTag,javaDocLinkTag,javaDocSerialTag,javaDocSerialDataTag,javaDocSerialFieldTag,javaDocThrowsTag,javaDocDocRootTag,javaDocInheritDocTag,javaDocLinkplainTag,javaDocValueTag,javaDocCodeTag,javaDocLiteralTag,javaDocHiddenTag,javaDocIndexTag,javaDocProvidesTag,javaDocUsesTag,javaDocSystemPropertyTag,javaDocSnippetTag,javaDocSpecTag
+
+  " Anticipate non-standard inline tags in {@return} and {@summary}.
+  syn region javaTitleSkipBlock	contained transparent start="{\%(@\%(return\|summary\)\>\)\@!" end="}"
+  syn match  javaDocDocRootTag	contained "{@docRoot}"
+  syn match  javaDocInheritDocTag contained "{@inheritDoc}"
+  syn region javaIndexSkipBlock	contained transparent start="{\%(@index\>\)\@!" end="}" contains=javaIndexSkipBlock,javaDocIndexTag
+  syn region javaDocIndexTag	contained start="{@index\>" end="}" contains=javaDocIndexTag,javaIndexSkipBlock
+  syn region javaLinkSkipBlock	contained transparent start="{\%(@link\>\)\@!" end="}" contains=javaLinkSkipBlock,javaDocLinkTag
+  syn region javaDocLinkTag	contained start="{@link\>" end="}" contains=javaDocLinkTag,javaLinkSkipBlock
+  syn region javaLinkplainSkipBlock contained transparent start="{\%(@linkplain\>\)\@!" end="}" contains=javaLinkplainSkipBlock,javaDocLinkplainTag
+  syn region javaDocLinkplainTag contained start="{@linkplain\>" end="}" contains=javaDocLinkplainTag,javaLinkplainSkipBlock
+  syn region javaLiteralSkipBlock contained transparent start="{\%(@literal\>\)\@!" end="}" contains=javaLiteralSkipBlock,javaDocLiteralTag
+  syn region javaDocLiteralTag	contained start="{@literal\>" end="}" contains=javaDocLiteralTag,javaLiteralSkipBlock
+  syn region javaSystemPropertySkipBlock contained transparent start="{\%(@systemProperty\>\)\@!" end="}" contains=javaSystemPropertySkipBlock,javaDocSystemPropertyTag
+  syn region javaDocSystemPropertyTag contained start="{@systemProperty\>" end="}" contains=javaDocSystemPropertyTag,javaSystemPropertySkipBlock
+  syn region javaValueSkipBlock	contained transparent start="{\%(@value\>\)\@!" end="}" contains=javaValueSkipBlock,javaDocValueTag
+  syn region javaDocValueTag	contained start="{@value\>" end="}" contains=javaDocValueTag,javaValueSkipBlock
+
+  syn match  javaDocParam	contained "\s\zs\S\+"
+  syn match  javaDocExceptionTag contained "@exception\s\+\S\+" contains=javaDocParam
+  syn match  javaDocParamTag	contained "@param\s\+\S\+" contains=javaDocParam
+  syn match  javaDocSinceTag	contained "@since\s\+\S\+" contains=javaDocParam
+  syn match  javaDocThrowsTag	contained "@throws\s\+\S\+" contains=javaDocParam
+  syn match  javaDocSpecTag	contained "@spec\_s\+\S\+\ze\_s\+\S\+" contains=javaDocParam
+
+  syn match  javaDocAuthorTag	contained "@author\>"
+  syn match  javaDocDeprecatedTag contained "@deprecated\>"
+  syn match  javaDocHiddenTag	contained "@hidden\>"
+  syn match  javaDocReturnTag	contained "@return\>"
+  syn match  javaDocSerialTag	contained "@serial\>"
+  syn match  javaDocSerialDataTag contained "@serialData\>"
+  syn match  javaDocSerialFieldTag contained "@serialField\>"
+  syn match  javaDocVersionTag	contained "@version\>"
+
+  syn match  javaDocSeeTag	contained "@see\>" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTagStar skipwhite skipempty
+  syn match  javaDocSeeTagStar	contained "^\s*\*\+\%(\s*{\=@\|/\|$\)\@!" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3 skipwhite skipempty
+  syn match  javaDocSeeTag1	contained @"\_[^"]\+"@
+  syn match  javaDocSeeTag2	contained @@ contains=@javaHtml extend
+  syn match  javaDocSeeTag3	contained @["< \t]\@!\%(\k\|[/.]\)*\%(##\=\k\+\%((\_[^)]*)\)\=\)\=@ nextgroup=javaDocSeeTag3Label skipwhite skipempty
+  syn match  javaDocSeeTag3Label contained @\k\%(\k\+\s*\)*$@
+
   syn region javaCodeSkipBlock	contained transparent start="{\%(@code\>\)\@!" end="}" contains=javaCodeSkipBlock,javaDocCodeTag
   syn region javaDocCodeTag	contained start="{@code\>" end="}" contains=javaDocCodeTag,javaCodeSkipBlock
+
   exec 'syn region javaDocSnippetTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(class\|file\|id\|lang\|region\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/:$/ end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.\\/-]\|\k\)\+\)/ nextgroup=javaDocSnippetTagAttr skipwhite skipnl'
   syn region javaSnippetSkipBlock contained transparent start="{\%(@snippet\>\)\@!" end="}" contains=javaSnippetSkipBlock,javaDocSnippetTag,javaCommentMarkupTag
   syn region javaDocSnippetTag	contained start="{@snippet\>" end="}" contains=javaDocSnippetTag,javaSnippetSkipBlock,javaDocSnippetTagAttr,javaCommentMarkupTag
 
   syntax case match
   hi def link javaDocComment		Comment
+  hi def link javaDocSeeTagStar		javaDocComment
   hi def link javaCommentTitle		SpecialComment
-  hi def link javaDocTags		Special
+  hi def link javaDocParam		Function
+
+  hi def link javaDocAuthorTag		Special
   hi def link javaDocCodeTag		Special
+  hi def link javaDocDeprecatedTag	Special
+  hi def link javaDocDocRootTag		Special
+  hi def link javaDocExceptionTag	Special
+  hi def link javaDocHiddenTag		Special
+  hi def link javaDocIndexTag		Special
+  hi def link javaDocInheritDocTag	Special
+  hi def link javaDocLinkTag		Special
+  hi def link javaDocLinkplainTag	Special
+  hi def link javaDocLiteralTag		Special
+  hi def link javaDocParamTag		Special
+  hi def link javaDocReturnTag		Special
+  hi def link javaDocSeeTag		Special
+  hi def link javaDocSeeTag1		String
+  hi def link javaDocSeeTag2		Special
+  hi def link javaDocSeeTag3		Function
+  hi def link javaDocSerialTag		Special
+  hi def link javaDocSerialDataTag	Special
+  hi def link javaDocSerialFieldTag	Special
+  hi def link javaDocSinceTag		Special
   hi def link javaDocSnippetTag		Special
-  hi def link javaDocSeeTagParam	Function
-  hi def link javaDocParam		Function
+  hi def link javaDocSpecTag		Special
+  hi def link javaDocSystemPropertyTag	Special
+  hi def link javaDocThrowsTag		Special
+  hi def link javaDocValueTag		Special
+  hi def link javaDocVersionTag		Special
 endif
 
 " match the special comment /**/
-- 
cgit 


From f6579a4db10c031588fd29986817ff7c85b7940c Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 11 Sep 2024 09:27:58 +0200
Subject: vim-patch:2241f08: runtime(spec): add file triggers to syntax script

closes: vim/vim#15569

https://github.com/vim/vim/commit/2241f0845fcb2ff362f34abd756cedf239e50b55

Co-authored-by: fundawang 
---
 runtime/syntax/spec.vim | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/spec.vim b/runtime/syntax/spec.vim
index 4cb3a343eb..730a0b8cc5 100644
--- a/runtime/syntax/spec.vim
+++ b/runtime/syntax/spec.vim
@@ -4,6 +4,7 @@
 " Maintainer:  Igor Gnatenko i.gnatenko.brain@gmail.com
 " Former Maintainer:  Donovan Rebbechi elflord@panix.com (until March 2014)
 " Last Change: 2020 May 25
+"  2024 Sep 10 by Vim Project: add file triggers support, #15569
 
 " quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -111,7 +112,7 @@ syn region specDescriptionArea matchgroup=specSection start='^%description' end=
 syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
 
 "%% Scripts Section %%
-syn region specScriptArea matchgroup=specSection start='^%\(prep\|generate_buildrequires\|conf\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
+syn region specScriptArea matchgroup=specSection start='^%\(prep\|generate_buildrequires\|conf\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\|filetriggerin\|filetriggerun\|filetriggerpostun\|transfiletriggerin\|transfiletriggerun\|transfiletriggerpostun\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
 
 "%% Changelog Section %%
 syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense
-- 
cgit 


From 4ac733f6ef2d05637cec80d8708e622877188815 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 11 Sep 2024 09:28:47 +0200
Subject: vim-patch:fc72a2f: runtime(idlang): update syntax script

closes: vim/vim#15419

https://github.com/vim/vim/commit/fc72a2fa4898d6d2f60695339d597672a4c0b7c5

Co-authored-by: Joe Sapp <992873+sappjw@users.noreply.github.com>
---
 runtime/syntax/idlang.vim | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/idlang.vim b/runtime/syntax/idlang.vim
index 14e976ce05..f7bfcb203a 100644
--- a/runtime/syntax/idlang.vim
+++ b/runtime/syntax/idlang.vim
@@ -1,7 +1,8 @@
 " Interactive Data Language syntax file (IDL, too  [:-)]
 " Maintainer: Aleksandar Jelenak 
-" Last change: 2011 Apr 11
-" Created by: Hermann Rochholz 
+" Created By: Hermann Rochholz 
+" Last Change: 2011 Apr 11
+"  2024 Sep 10 by Vim Project: update syntax script, #15419
 
 " Remove any old syntax stuff hanging around
 " quit when a syntax file was already loaded
@@ -16,7 +17,7 @@ syn match idlangStatement "^\s*function\s"
 syn keyword idlangStatement return continue mod do break
 syn keyword idlangStatement compile_opt forward_function goto
 syn keyword idlangStatement begin common end of
-syn keyword idlangStatement inherits on_ioerror begin
+syn keyword idlangStatement inherits on_error on_ioerror begin
 
 syn keyword idlangConditional if else then for while case switch
 syn keyword idlangConditional endcase endelse endfor endswitch
@@ -82,7 +83,7 @@ syn keyword idlangRoutine CALL_EXTERNAL CALL_FUNCTION CALL_METHOD
 syn keyword idlangRoutine CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV CHECK_MATH
 syn keyword idlangRoutine CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL CINDGEN
 syn keyword idlangRoutine CIR_3PNT CLOSE CLUST_WTS CLUSTER COLOR_CONVERT
-syn keyword idlangRoutine COLOR_QUAN COLORMAP_APPLICABLE COMFIT COMMON
+syn keyword idlangRoutine COLOR_QUAN COLORMAP_APPLICABLE COMFIT
 syn keyword idlangRoutine COMPLEX COMPLEXARR COMPLEXROUND
 syn keyword idlangRoutine COMPUTE_MESH_NORMALS COND CONGRID CONJ
 syn keyword idlangRoutine CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
@@ -98,7 +99,7 @@ syn keyword idlangRoutine CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
 syn keyword idlangRoutine CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
 syn keyword idlangRoutine DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
 syn keyword idlangRoutine DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
-syn keyword idlangRoutine DETERM DEVICE DFPMIN DIALOG_MESSAGE
+syn keyword idlangRoutine DETERM DEVICE DFPMIN DIAG_MATRIX DIALOG_MESSAGE
 syn keyword idlangRoutine DIALOG_PICKFILE DIALOG_PRINTERSETUP
 syn keyword idlangRoutine DIALOG_PRINTJOB DIALOG_READ_IMAGE
 syn keyword idlangRoutine DIALOG_WRITE_IMAGE DIGITAL_FILTER DILATE DINDGEN
@@ -155,7 +156,7 @@ syn keyword idlangRoutine MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
 syn keyword idlangRoutine MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
 syn keyword idlangRoutine NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
 syn keyword idlangRoutine OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
-syn keyword idlangRoutine OPEN OPENR OPENW OPLOT OPLOTERR P_CORRELATE
+syn keyword idlangRoutine OPEN OPENR OPENW OPENU OPLOT OPLOTERR P_CORRELATE
 syn keyword idlangRoutine PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
 syn keyword idlangRoutine PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
 syn keyword idlangRoutine POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
-- 
cgit 


From 78b85109338592c2bc89154278f2e961a14eee96 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Mon, 16 Sep 2024 06:57:16 +0800
Subject: vim-patch:4d427d4: runtime(vim): Update base-syntax, match Vim9
 bool/null literal args to :if/:while/:return (#30391)

Match Vim9 boolean and null literals in expression arguments of :if,
:elseif, :while and :return.

closes: vim/vim#15684

https://github.com/vim/vim/commit/4d427d4cab9c942d6871c50f714e18d7edcfe135

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 89577ffaae..bd3723e7bb 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -685,7 +685,7 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
  syn match	vimBufnrWarn	/\\|\\|\\|\"	skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation
+syn match vimNotFunc	"\\|\\|\\|\"	skipwhite nextgroup=@vimExprList,vimNotation
 
 " Match: {{{2
 " =====
-- 
cgit 


From a9031cc4a649f6ad5ef3db29a9bf52468332bcde Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sun, 15 Sep 2024 19:57:03 +0200
Subject: vim-patch:5e95c8f: runtime(java): Highlight javaConceptKind modifiers
 with StorageClass

Stop assigning by default the NonText highlighting group for
javaConceptKind modifiers since its colour is hardly
distinguishable from a background colour for a range of
colour schemes.

fixes vim/vim#15237
related vim/vim#15238
closes: vim/vim#15664

https://github.com/vim/vim/commit/5e95c8f637ac8de625270fc2d371f4ebe304fac8

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Co-authored-by: Dexter Gaon-Shatford 
---
 runtime/syntax/java.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 293d63c0a2..d3b59c186d 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Sep 10
+" Last Change:		2024 Sep 11
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -663,7 +663,7 @@ hi def link javaStorageClass		StorageClass
 hi def link javaMethodDecl		javaStorageClass
 hi def link javaClassDecl		javaStorageClass
 hi def link javaScopeDecl		javaStorageClass
-hi def link javaConceptKind		NonText
+hi def link javaConceptKind		javaStorageClass
 
 hi def link javaBoolean			Boolean
 hi def link javaSpecial			Special
-- 
cgit 


From 13d6f6cbb2337c1db5b3fceb607d36a2a632dc03 Mon Sep 17 00:00:00 2001
From: Gregory Anders 
Date: Tue, 17 Sep 2024 14:15:58 -0500
Subject: vim-patch:9.1.0734: filetype: jinja files are not recognized

Problem:  filetype: jinja files are not recognized
Solution: detect '*.jinja' files a jinja filetype,
          include jinja syntax script (Gregory Anders)

related: vim/vim#15689

https://github.com/vim/vim/commit/202c467bb37b894ada6377d3f2621c103f324757

Co-authored-by: Gregory Anders 
---
 runtime/syntax/jinja.vim | 86 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 runtime/syntax/jinja.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/jinja.vim b/runtime/syntax/jinja.vim
new file mode 100644
index 0000000000..6000855ff7
--- /dev/null
+++ b/runtime/syntax/jinja.vim
@@ -0,0 +1,86 @@
+" Vim syntax file
+" Language: Jinja
+" Maintainer: Gregory Anders
+" Upstream: https://gitlab.com/HiPhish/jinja.vim
+
+if exists('b:current_syntax')
+    finish
+endif
+
+syntax case match
+syntax sync fromstart
+
+" Jinja template built-in tags and parameters (without filter, macro, is and raw, they
+" have special threatment)
+syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import
+
+syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter
+syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction
+syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName
+
+" Variable Names
+syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[a-zA-Z_][a-zA-Z0-9_]*/
+syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none False True None loop super caller varargs kwargs
+
+" Filters
+syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite nextgroup=jinjaFilter
+syn match jinjaFilter contained /[a-zA-Z_][a-zA-Z0-9_]*/
+syn match jinjaFunction contained /[a-zA-Z_][a-zA-Z0-9_]*/
+syn match jinjaBlockName contained /[a-zA-Z_][a-zA-Z0-9_]*/
+
+" Jinja template constants
+syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\(\\\)\@\)*\\"/ end=/"/
+syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\(\\\)\@\)*\\'/ end=/'/
+syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/
+
+" Operators
+syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/
+syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/
+syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute
+syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/
+
+" Jinja template tag and variable blocks
+syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
+syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
+syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
+syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
+
+syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
+
+" Jinja template 'raw' tag
+syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment
+
+" Jinja comments
+syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString
+
+" Block start keywords.  A bit tricker.  We only highlight at the start of a
+" tag block and only if the name is not followed by a comma or equals sign
+" which usually means that we have to deal with an assignment.
+syn match jinjaStatement containedin=jinjaTagBlock contained /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/
+
+" and context modifiers
+syn match jinjaStatement containedin=jinjaTagBlock contained /\/
+
+hi def link jinjaPunctuation jinjaOperator
+hi def link jinjaAttribute jinjaVariable
+hi def link jinjaFunction jinjaFilter
+
+hi def link jinjaTagDelim jinjaTagBlock
+hi def link jinjaVarDelim jinjaVarBlock
+hi def link jinjaCommentDelim jinjaComment
+hi def link jinjaRawDelim jinja
+
+hi def link jinjaSpecial Special
+hi def link jinjaOperator Normal
+hi def link jinjaRaw Normal
+hi def link jinjaTagBlock PreProc
+hi def link jinjaVarBlock PreProc
+hi def link jinjaStatement Statement
+hi def link jinjaFilter Function
+hi def link jinjaBlockName Function
+hi def link jinjaVariable Identifier
+hi def link jinjaString Constant
+hi def link jinjaNumber Constant
+hi def link jinjaComment Comment
+
+let b:current_syntax = 'jinja'
-- 
cgit 


From 9a3f74c4c7fa567bb492cc3604b6baca05c22f1a Mon Sep 17 00:00:00 2001
From: Gregory Anders 
Date: Tue, 17 Sep 2024 14:17:51 -0500
Subject: vim-patch:9.1.0735: filetype: salt files are not recognized

Problem:  filetype: salt files are not recognized
Solution: Detect '*.sls' files as filetype salt,
          include a syntax script (Gregory Anders)

closes: vim/vim#15689

https://github.com/vim/vim/commit/89b9bb4ac8ceb701ebecb8c02aca3d047dff9991

Co-authored-by: Gregory Anders 
---
 runtime/syntax/salt.vim | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 runtime/syntax/salt.vim

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/salt.vim b/runtime/syntax/salt.vim
new file mode 100644
index 0000000000..fdbce2f677
--- /dev/null
+++ b/runtime/syntax/salt.vim
@@ -0,0 +1,16 @@
+" Vim syntax file
+" Maintainer: Gregory Anders
+" Last Changed: 2024-09-16
+
+if exists('b:current_syntax')
+  finish
+endif
+
+" Salt state files are just YAML with embedded Jinja
+runtime! syntax/yaml.vim
+unlet! b:current_syntax
+
+runtime! syntax/jinja.vim
+unlet! b:current_syntax
+
+let b:current_syntax = 'salt'
-- 
cgit 


From 22479ce563d82b844a4226e1afaa41078676160b Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Wed, 18 Sep 2024 08:23:36 +0200
Subject: vim-patch:f21d28a: runtime(zathurarc): add double-click-follow to
 syntax script

closes: vim/vim#15688

https://github.com/vim/vim/commit/f21d28a5c72987d42d540290e5a77500ab1a4d7c

Co-authored-by: Wu, Zhenyu 
---
 runtime/syntax/zathurarc.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/zathurarc.vim b/runtime/syntax/zathurarc.vim
index 5e0526d02a..32997c2d2d 100644
--- a/runtime/syntax/zathurarc.vim
+++ b/runtime/syntax/zathurarc.vim
@@ -3,7 +3,7 @@
 " Maintainer:           Wu, Zhenyu 
 " Documentation:        https://pwmt.org/projects/zathura/documentation/
 " Upstream:             https://github.com/Freed-Wu/zathurarc.vim
-" Latest Revision:      2024-04-02
+" Latest Revision:      2024-09-16
 
 if exists('b:current_syntax')
   finish
@@ -22,7 +22,7 @@ syntax region zathurarcString start=`'` skip=`\\'` end=`'`
 syntax keyword zathurarcMode normal fullscreen presentation index
 syntax keyword zathurarcBoolean true false
 syntax keyword zathurarcCommand include map set unmap
-syntax keyword zathurarcOption abort-clear-search adjust-open advance-pages-per-row completion-bg completion-fg completion-group-bg completion-group-fg completion-highlight-bg completion-highlight-fg continuous-hist-save database dbus-raise-window dbus-service default-bg default-fg exec-command filemonitor first-page-column font guioptions highlight-active-color highlight-color highlight-fg highlight-transparency incremental-search index-active-bg index-active-fg index-bg index-fg inputbar-bg inputbar-fg link-hadjust link-zoom n-completion-items notification-bg notification-error-bg notification-error-fg notification-fg notification-warning-bg notification-warning-fg page-cache-size page-padding page-right-to-left page-thumbnail-size pages-per-row recolor recolor-darkcolor recolor-keephue recolor-lightcolor recolor-reverse-video render-loading render-loading-bg render-loading-fg sandbox scroll-full-overlap scroll-hstep scroll-page-aware scroll-step scroll-wrap search-hadjust selection-clipboard selection-notification show-directories show-hidden show-recent statusbar-basename statusbar-bg statusbar-fg statusbar-h-padding statusbar-home-tilde statusbar-page-percent statusbar-v-padding synctex synctex-editor-command vertical-center window-height window-icon window-icon-document window-title-basename window-title-home-tilde window-title-page window-width zoom-center zoom-max zoom-min zoom-step
+syntax keyword zathurarcOption abort-clear-search adjust-open advance-pages-per-row completion-bg completion-fg completion-group-bg completion-group-fg completion-highlight-bg completion-highlight-fg continuous-hist-save database dbus-raise-window dbus-service default-bg default-fg double-click-follow exec-command filemonitor first-page-column font guioptions highlight-active-color highlight-color highlight-fg highlight-transparency incremental-search index-active-bg index-active-fg index-bg index-fg inputbar-bg inputbar-fg link-hadjust link-zoom n-completion-items notification-bg notification-error-bg notification-error-fg notification-fg notification-warning-bg notification-warning-fg page-cache-size page-padding page-right-to-left page-thumbnail-size pages-per-row recolor recolor-darkcolor recolor-keephue recolor-lightcolor recolor-reverse-video render-loading render-loading-bg render-loading-fg sandbox scroll-full-overlap scroll-hstep scroll-page-aware scroll-step scroll-wrap search-hadjust selection-clipboard selection-notification show-directories show-hidden show-recent statusbar-basename statusbar-bg statusbar-fg statusbar-h-padding statusbar-home-tilde statusbar-page-percent statusbar-v-padding synctex synctex-editor-command vertical-center window-height window-icon window-icon-document window-title-basename window-title-home-tilde window-title-page window-width zoom-center zoom-max zoom-min zoom-step
 
 highlight default link zathurarcComment Comment
 highlight default link zathurarcNumber Number
-- 
cgit 


From f01c764cc6f82399edfa0d47a7bafbf7c95e2747 Mon Sep 17 00:00:00 2001
From: zeertzjq 
Date: Fri, 20 Sep 2024 06:59:46 +0800
Subject: vim-patch:35699f1: runtime(vim): Update base-syntax, improve folding
 function matches (#30427)

- Allow function command modifiers.
- Match function bodies starting with empty lines.

Command modifiers reported by @Konfekt.

fixes vim/vim#15671
closes: vim/vim#15674

https://github.com/vim/vim/commit/35699f17497dcdcfdd747fedaef28f208ac6eb5f

Co-authored-by: Doug Kearns 
---
 runtime/syntax/vim.vim | 58 +++++++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 29 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index bd3723e7bb..9073c6e7bf 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -177,7 +177,7 @@ syn match	vimNumber	'\%(^\|\A\)\zs#\x\{6}'		skipwhite nextgroup=vimGlobal,vimSub
 syn case match
 
 " All vimCommands are contained by vimIsCommand. {{{2
-syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
+syn cluster vimCmdList	contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimCall,vimCatch,vimConst,vimDef,vimDelcommand,@vimEcho,vimEnddef,vimEndfunction,vimExecute,vimIsCommand,vimExtCmd,vimFor,vimFunction,vimFuncFold,vimGlobal,vimHighlight,vimLet,vimLoadkeymap,vimMap,vimMark,vimMatch,vimNotFunc,vimNorm,vimSet,vimSleep,vimSyntax,vimThrow,vimUnlet,vimUnmap,vimUserCmd,vimMenu,vimMenutranslate,@vim9CmdList
 syn cluster vim9CmdList	contains=vim9Const,vim9Final,vim9For,vim9Var
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=@vimCmdList,vimSubst1
 syn match vimIsCommand	"\<\%(\h\w*\|[23]mat\%[ch]\)\>"	contains=vimCommand
@@ -276,8 +276,8 @@ syn match	vimFunction	"\!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|
 syn match	vimDef	"\!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+"		contains=@vimDefList            nextgroup=vimDefParams
 
-syn match	vimFuncComment	contained	+".*+ skipwhite skipnl nextgroup=vimFuncBody,vimEndfunction
-syn match	vimDefComment	contained	"#.*" skipwhite skipnl nextgroup=vimDefBody,vimEnddef
+syn match	vimFuncComment	contained	+".*+ skipwhite skipempty nextgroup=vimFuncBody,vimEndfunction
+syn match	vimDefComment	contained	"#.*" skipwhite skipempty nextgroup=vimDefBody,vimEnddef
 
 syn match	vimFuncBang	contained	"!"
 syn match	vimFuncSID	contained	"\c"
@@ -285,24 +285,24 @@ syn match	vimFuncSID	contained	"\<[sg]:"
 syn keyword	vimFuncKey	contained	fu[nction]
 syn keyword	vimDefKey	contained	def
 
-syn region	vimFuncParams	contained	matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError	contains=vimFuncParam,@vimContinue
-syn region	vimDefParams	contained	matchgroup=Delimiter start="("		   end=")" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError	contains=vimDefParam,vim9Comment,vimFuncParamEquals
+syn region	vimFuncParams	contained	matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError	contains=vimFuncParam,@vimContinue
+syn region	vimDefParams	contained	matchgroup=Delimiter start="("		   end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError	contains=vimDefParam,vim9Comment,vimFuncParamEquals
 syn match	vimFuncParam	contained	"\<\h\w*\>\|\.\.\."	skipwhite nextgroup=vimFuncParamEquals
 syn match	vimDefParam	contained	"\<\h\w*\>"		skipwhite nextgroup=vimParamType,vimFuncParamEquals
 
-syn match	vimFuncParamEquals contained	"="			skipwhite        nextgroup=@vimExprList
-syn match	vimFuncMod	 contained	"\<\%(abort\|closure\|dict\|range\)\>"	skipwhite skipnl nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError
+syn match	vimFuncParamEquals contained	"="			skipwhite           nextgroup=@vimExprList
+syn match	vimFuncMod	 contained	"\<\%(abort\|closure\|dict\|range\)\>"	skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError
 
-syn region	vimFuncBody	contained	start="^.\="	matchgroup=vimCommand end="\"	contains=@vimFuncBodyList skipwhite nextgroup=vimCmdSep,vimComment,vim9CommentError
-syn region	vimDefBody	contained	start="^.\="	matchgroup=vimCommand end="\"	contains=@vimDefBodyList  skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
+syn region	vimFuncBody	contained	start="^." matchgroup=vimCmdSep start="|" matchgroup=vimCommand end="\"	contains=@vimFuncBodyList skipwhite nextgroup=vimCmdSep,vimComment,vim9CommentError
+syn region	vimDefBody	contained	start="^." matchgroup=vimCmdSep start="|" matchgroup=vimCommand end="\"	contains=@vimDefBodyList  skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
 
 syn match	vimEndfunction	"\" skipwhite nextgroup=vimCmdSep,vimComment,vim9CommentError
 syn match	vimEnddef	"\"	    skipwhite nextgroup=vimCmdSep,vim9Comment,vimCommentError
 
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
- syn region	vimFuncFold	start="^\s*:\=\s*fu\%[nction]\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*("	end="^\s*:\=\s*endf\%[unction]\>" contains=vimFunction fold keepend extend transparent
- syn region	vimFuncFold	start="^\s*:\=\s*def\>!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+("		end="^\s*:\=\s*enddef\>"          contains=vimDef      fold keepend extend transparent
- syn region	vimFuncFold	start="^\s*:\=\s*def\s\+new\i\+("					end="^\s*:\=\s*enddef\>"          contains=vimDef      fold keepend extend transparent
+ syn region	vimFuncFold	start="\!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)\+\s*("	end="\" contains=vimFunction fold keepend extend transparent
+ syn region	vimFuncFold	start="\!\=\s*\%(<[sS][iI][dD]>\|[sg]:\)\=\%(\i\|[#.]\)\+("		end="\"          contains=vimDef      fold keepend extend transparent
+ syn region	vimFuncFold	start="\"
@@ -311,7 +311,7 @@ syn match	vimFuncBlank contained	"\s\+"
 " Types: {{{2
 " =====
 
-syn region	vimReturnType	contained	start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]" skipwhite skipnl nextgroup=vimDefBody,vimDefComment,vimEnddef,vimCommentError contains=vimTypeSep transparent
+syn region	vimReturnType	contained	start=":\s" end="$" matchgroup=vim9Comment end="\ze[#"]" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimCommentError contains=vimTypeSep transparent
 syn match	vimParamType	contained	":\s"	skipwhite skipnl nextgroup=@vimType contains=vimTypeSep
 
 syn match	vimTypeSep	contained	":\s\@=" skipwhite nextgroup=@vimType
@@ -397,7 +397,7 @@ syn match	vimDelcommandAttr	contained	"-buffer\>"
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
 if get(g:, "vimsyn_comment_strings", 1)
-  syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e end='"'
+  syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e end='"' extend
 endif
 
 if s:vim9script
@@ -406,17 +406,17 @@ else
   syn cluster vimComment contains=vimComment
 endif
 
-VimL syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
-VimL syn match	vimComment	+\!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+	contains=@vimStringGroup
-syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
+syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+	contains=@vimStringGroup extend
+syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+ extend
 "syn region	vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup  " see tst45.vim
 syn match	vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
 syn match	vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
@@ -447,8 +447,8 @@ syn match	vimEscape	contained	"\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1
 syn match	vimEscape	contained	"\\<" contains=vimNotation
 syn match	vimEscape	contained	"\\<\*[^>]*>\=>"
 
-syn region	vimString	oneline start=+$'+ skip=+''+ end=+'+ contains=@vimStringInterpolation
-syn region	vimString	oneline start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation
+syn region	vimString	oneline start=+$'+ skip=+''+ end=+'+ contains=@vimStringInterpolation extend
+syn region	vimString	oneline start=+$"+ end=+"+ contains=@vimStringGroup,@vimStringInterpolation extend
 syn region	vimStringInterpolationExpr  oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
 syn match	vimStringInterpolationBrace contained "{{"
 syn match	vimStringInterpolationBrace contained "}}"
@@ -872,8 +872,8 @@ syn match	vimCtrlChar	"[--]"
 
 " Beginners - Patterns that involve ^ {{{2
 " =========
-Vim9 syn region	vim9LineComment	start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle
-VimL syn region	vimLineComment	start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle
+Vim9 syn region	vim9LineComment	start=+^[ \t:]*\zs#.*$+ skip=+\n\s*\\\|\n\s*#\\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend
+VimL syn region	vimLineComment	start=+^[ \t:]*\zs".*$+ skip=+\n\s*\\\|\n\s*"\\ + end="$" contains=@vimCommentGroup,vimCommentString,vimCommentTitle extend
 
 syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
 syn match	vim9CommentTitle	'#\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vim9CommentTitleLeader,vimTodo,@vimCommentGroup
-- 
cgit 


From f5883e0d450ccc3345cd8cfdfbeddcfe121d7472 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Thu, 19 Sep 2024 18:56:19 +0200
Subject: vim-patch:2307945: runtime(java): Optionally recognise all primitive
 constants in _switch-case_ labels

Define "g:java_syntax_previews" and include number 455 in
its list to enable this recognition:
------------------------------------------------------------
	let g:java_syntax_previews = [455]
------------------------------------------------------------

Reference:
https://openjdk.org/jeps/455

closes: vim/vim#15698

https://github.com/vim/vim/commit/23079450a8dea98f9d4e3e74ab57866914b0a813

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index d3b59c186d..bbef266c34 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Sep 11
+" Last Change:		2024 Sep 18
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -283,19 +283,27 @@ if exists("g:java_space_errors")
 endif
 
 exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause
+
+if s:ff.IsRequestedPreviewFeature(455)
+  syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":\|->" contains=javaBoolean,javaNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaType,javaLabelDefault,javaLabelVarType,javaLabelWhenClause
+else
+  syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause
+  syn keyword javaLabelCastType	contained char byte short int
+  syn match   javaLabelNumber	contained "\<0\>[lL]\@!"
+  syn match   javaLabelNumber	contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!"
+  hi def link javaLabelCastType	javaType
+  hi def link javaLabelNumber	javaNumber
+endif
+
 syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline
 " Consider grouped _default_ _case_ labels, i.e.
 " case null, default ->
 " case null: default:
 syn keyword javaLabelDefault	contained default
 syn keyword javaLabelVarType	contained var
-syn keyword javaLabelCastType	contained char byte short int
 " Allow for the contingency of the enclosing region not being able to
 " _keep_ its _end_, e.g. case ':':.
 syn region  javaLabelWhenClause	contained transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef
-syn match   javaLabelNumber	contained "\<0\>[lL]\@!"
-syn match   javaLabelNumber	contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!"
 
 " Comments
 syn keyword javaTodo		contained TODO FIXME XXX
@@ -692,8 +700,6 @@ hi def link javaUserLabelRef		javaUserLabel
 hi def link javaLabel			Label
 hi def link javaLabelDefault		javaLabel
 hi def link javaLabelVarType		javaOperator
-hi def link javaLabelNumber		javaNumber
-hi def link javaLabelCastType		javaType
 
 hi def link javaComment			Comment
 hi def link javaCommentStar		javaComment
-- 
cgit 


From cd230be9189b8c8645610d86752711b38a52c711 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sat, 21 Sep 2024 10:26:34 +0200
Subject: vim-patch:597aadc: runtime(lyrics): support multiple timestamps in
 syntax script

Problem:  Multiple timestamps in the same line were not highlighted
Solution: Adapt the syntax to support multiple timestamps

fixes: vim/vim#15703
closes: vim/vim#15707

https://github.com/vim/vim/commit/597aadcf214cd13bf6a2155bf45173edc03199de

Co-authored-by: ObserverOfTime 
---
 runtime/syntax/lyrics.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/lyrics.vim b/runtime/syntax/lyrics.vim
index 42a288b51b..fd127988f2 100644
--- a/runtime/syntax/lyrics.vim
+++ b/runtime/syntax/lyrics.vim
@@ -2,7 +2,7 @@
 " Language:     LyRiCs
 " Maintainer:   ObserverOfTime 
 " Filenames:    *.lrc
-" Last Change:  2022 Sep 18
+" Last Change:  2024 Sep 20
 
 if exists('b:current_syntax')
     finish
@@ -23,7 +23,7 @@ syn match lrcTagName contained nextgroup=lrcTagValue
 syn match lrcTagValue /:\zs.\+\ze\]/ contained
 
 " Lyrics
-syn match lrcLyricTime /^\s*\[\d\d:\d\d\.\d\d\]/
+syn match lrcLyricTime /^\s*\(\[\d\d:\d\d\.\d\d\]\)\+/
             \ contains=lrcNumber nextgroup=lrcLyricLine
 syn match lrcLyricLine /.*$/ contained contains=lrcWordTime,@Spell
 syn match lrcWordTime /<\d\d:\d\d\.\d\d>/ contained contains=lrcNumber,@NoSpell
-- 
cgit 


From 059a9e62547e1fb4dc915da258b24844a6bfcd54 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sat, 21 Sep 2024 10:26:54 +0200
Subject: vim-patch:50423ab: runtime(java): Optionally recognise _module_
 import declarations

Define "g:java_syntax_previews" and include number 476 in
its list to enable this recognition:
------------------------------------------------------------
        let g:java_syntax_previews = [476]
------------------------------------------------------------

Reference:
https://openjdk.org/jeps/476

closes: vim/vim#15709

https://github.com/vim/vim/commit/50423ab8086c6e51b86548de77d79db8542ae317

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index bbef266c34..800faa40a0 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Sep 18
+" Last Change:		2024 Sep 19
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -92,6 +92,13 @@ syn keyword javaTypedef		this super
 syn keyword javaOperator	new instanceof
 syn match   javaOperator	"\\%(\s*(\)\@!"
 
+if s:ff.IsRequestedPreviewFeature(476)
+  " Module imports can be used in any source file.
+  syn match   javaExternal	"\" contains=javaModuleImport
+  syn keyword javaModuleImport	contained module
+  hi def link javaModuleImport	Statement
+endif
+
 " Since the yield statement, which could take a parenthesised operand,
 " and _qualified_ yield methods get along within the switch block
 " (JLS-17, §3.8), it seems futile to make a region definition for this
-- 
cgit 


From f2fa4ca97ea3812dba78820323a1ccbf58921b40 Mon Sep 17 00:00:00 2001
From: "Justin M. Keyes" 
Date: Thu, 26 Sep 2024 07:45:03 -0700
Subject: feat(health): highlight headings #30525

Problem:
checkhealth report sections are not visually separated.

Solution:
Highlight with "reverse".

TODO: migrate checkhealth filetype to use treesitter.
TODO: default :help should also highlight headings more boldy!
---
 runtime/syntax/checkhealth.vim | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/checkhealth.vim b/runtime/syntax/checkhealth.vim
index 2fd0aed601..a4f6e016cb 100644
--- a/runtime/syntax/checkhealth.vim
+++ b/runtime/syntax/checkhealth.vim
@@ -14,7 +14,9 @@ syn case match
 syn keyword DiagnosticError ERROR[:]
 syn keyword DiagnosticWarn WARNING[:]
 syn keyword DiagnosticOk OK[:]
-syn match helpSectionDelim "^======*\n.*$"
-syn match healthHeadingChar "=" conceal cchar=─ contained containedin=helpSectionDelim
+" Note: hs=e starts higlighting on the title line (instead of the "===" line).
+syn match helpSectionDelim /^======*\n.*$/hs=e
+highlight helpSectionDelim gui=reverse cterm=reverse
+syn match healthHeadingChar "=" conceal cchar= contained containedin=helpSectionDelim
 
 let b:current_syntax = "checkhealth"
-- 
cgit 


From 09d76afe84dd5b895e102dcd8df8ce6271bebfef Mon Sep 17 00:00:00 2001
From: "Justin M. Keyes" 
Date: Fri, 27 Sep 2024 08:53:30 -0700
Subject: feat(defaults): pretty :help headings #30544

Problem:
Headings in :help do not stand out visually.

Solution:
Define a non-standard `@markup.heading.1.delimiter` group and
special-case it in `highlight_group.c`.

FUTURE:
This is a cheap workaround until we have #25718 which will enable:
- fully driven by `vimdoc/highlights.scm` instead of using highlight
  tricks (`guibg=bg guifg=bg guisp=fg`)
- better support of "cterm" ('notermguicolors')
---
 runtime/syntax/help.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index fced5e7dd1..0f62c26294 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -15,7 +15,7 @@ set cpo&vim
 syn match helpHeadline		"^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)"
 syn match helpSectionDelim	"^===.*===$"
 syn match helpSectionDelim	"^---.*--$"
-" Neovim: support language annotation in codeblocks
+" Nvim: support language annotation in codeblocks
 if has("conceal")
   syn region helpExample	matchgroup=helpIgnore start=" >[a-z0-9]*$" start="^>[a-z0-9]*$" end="^[^ \t]"me=e-1 end="^<" concealends
 else
-- 
cgit 


From 006323dd70ca417f7ad1e79d9ab660d54028dec1 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sun, 29 Sep 2024 11:46:34 +0200
Subject: vim-patch:ee20fc8: runtime(indent): allow matching negative numbers
 for gnu indent config file

Some gnu indent options take negative numbers (e.g. --indent-label).
Add matching for an optional single '-' before the number.

closes: vim/vim#15754

https://github.com/vim/vim/commit/ee20fc8062b43eb8e52014978ed8f200158a7efd

Co-authored-by: John M Devin 
---
 runtime/syntax/indent.vim | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index b2a1a0c85f..921a0a8ad0 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -2,7 +2,7 @@
 " Language:		indent(1) configuration file
 " Maintainer:		Doug Kearns 
 " Previous Maintainer:	Nikolai Weibull 
-" Last Change:		2021 Nov 17
+" Last Change:		2024 Sep 29
 "   indent_is_bsd:      If exists, will change somewhat to match BSD implementation
 "
 " TODO:     is the deny-all (a la lilo.vim nice or no?)...
@@ -34,7 +34,7 @@ endif
 syn match   indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
                         \ nextgroup=indentNumber skipwhite skipempty
 
-syn match   indentNumber  display contained '\d\+\>'
+syn match   indentNumber  display contained '-\=\d\+\>'
 
 syn match   indentOptions '-T'
                         \ nextgroup=indentIdent skipwhite skipempty
-- 
cgit 


From 2f2f434613d624cba9a7276f6dc2f3031142afd6 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Tue, 1 Oct 2024 07:00:12 +0200
Subject: vim-patch:85f054a: runtime(java): Recognise the CommonMark form (///)
 of Javadoc comments
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Complement "g:java_ignore_javadoc" with "g:java_ignore_html"
and "g:java_ignore_markdown" to allow selectively disabling
the recognition of HTML and CommonMark respectively.

(Note that this is not a preview feature.)

======================== LIMITATION ========================

According to the syntactical details of JEP 467:

> Any leading whitespace and the three initial / characters
> are removed from each line.
>
> The lines are shifted left, by removing leading whitespace
> characters, until the non-blank line with the least
> leading whitespace has no remaining leading whitespace.
>
> Additional leading whitespace and any trailing whitespace
> in each line is preserved, because it may be significant.

the following example:
------------------------------------------------------------
///    A summary sentence.
///     A list:
///      - Item A.
///     - Item B.
///
///     Some code span, starting here `
///      1 + 2 ` and ending at the previous \`.
------------------------------------------------------------

should be interpreted as if it were written thus:
------------------------------------------------------------
///A summary sentence.
/// A list:
///  - Item A.
/// - Item B.
///
/// Some code span, starting here `
///  1 + 2 ` and ending at the previous \`.
------------------------------------------------------------

Since automatic line rewriting will not be pursued, parts of
such comments having significant whitespace may be ‘wrongly’
highlighted.  For convenience, a &fex function is defined to
‘correct’ it: g:javaformat#RemoveCommonMarkdownWhitespace()
(:help ft-java-plugin).

References:
https://openjdk.org/jeps/467
https://spec.commonmark.org/0.31.2

closes: vim/vim#15740

https://github.com/vim/vim/commit/85f054aa3f0fb9530712d0897e3c8ba29946fad4

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Co-authored-by: Tim Pope 
---
 runtime/syntax/java.vim | 158 +++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 135 insertions(+), 23 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 800faa40a0..737219afce 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,7 +3,7 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Sep 19
+" Last Change:		2024 Sep 28
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -156,6 +156,10 @@ else
   let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.RightConstant], 3)
 endif
 
+let s:with_html = !exists("g:java_ignore_html")
+let s:with_markdown = !exists("g:java_ignore_markdown")
+lockvar s:with_html s:with_markdown
+
 " Java module declarations (JLS-17, §7.7).
 "
 " Note that a "module-info" file will be recognised with an arbitrary
@@ -172,7 +176,7 @@ if fnamemodify(bufname("%"), ":t") =~ '^module-info\>\%(\.class\>\)\@!'
   hi def link javaModuleStmt		Statement
   hi def link javaModuleExternal	Include
 
-  if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
+  if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:main_syntax != 'jsp'
     syn match javaDocProvidesTag	contained "@provides\_s\+\S\+" contains=javaDocParam
     syn match javaDocUsesTag		contained "@uses\_s\+\S\+" contains=javaDocParam
     hi def link javaDocProvidesTag	Special
@@ -335,18 +339,52 @@ syn match   javaCommentMarkupTagAttr contained "\" nextgroup=javaCommen
 exec 'syn region javaCommentMarkupTagAttr contained transparent matchgroup=javaHtmlArg start=/\<\%(re\%(gex\|gion\|placement\)\|substring\|t\%(arget\|ype\)\)\%(\s*=\)\@=/ matchgroup=javaHtmlString end=/\%(=\s*\)\@' . s:ff.Peek('80', '') . '<=\%("[^"]\+"\|' . "\x27[^\x27]\\+\x27" . '\|\%([.-]\|\k\)\+\)/ nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite oneline'
 syn match   javaCommentError contained "/\*"me=e-1 display
 
-if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
-  " The overridable "html*" default links must be defined _before_ the
-  " inclusion of the same default links from "html.vim".
-  hi def link htmlComment	Special
-  hi def link htmlCommentPart	Special
-  hi def link htmlArg		Type
-  hi def link htmlString	String
+if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:main_syntax != 'jsp'
+  " The overridable "html*" and "markdown*" default links must be
+  " defined _before_ the inclusion of the same default links from
+  " "html.vim" and "markdown.vim".
+  if s:with_html || s:with_markdown
+    hi def link htmlComment		Special
+    hi def link htmlCommentPart		Special
+    hi def link htmlArg			Type
+    hi def link htmlString		String
+  endif
+
+  if s:with_markdown
+    hi def link markdownCode		Special
+    hi def link markdownCodeBlock	Special
+    hi def link markdownCodeDelimiter	Special
+    hi def link markdownLinkDelimiter	Comment
+  endif
+
   syntax case ignore
 
+  " Note that javaDocSeeTag is valid in HTML and Markdown.
+  let s:ff.WithMarkdown = s:ff.RightConstant
+
   " Include HTML syntax coloring for Javadoc comments.
-  syntax include @javaHtml syntax/html.vim
-  unlet b:current_syntax
+  if s:with_html
+    syntax include @javaHtml syntax/html.vim
+    unlet b:current_syntax
+  endif
+
+  " Include Markdown syntax coloring (v7.2.437) for Javadoc comments.
+  if s:with_markdown
+    try
+      syntax include @javaMarkdown syntax/markdown.vim
+      unlet b:current_syntax
+      let s:ff.WithMarkdown = s:ff.LeftConstant
+    catch /\"
   syn match  javaDocVersionTag	contained "@version\>"
 
-  syn match  javaDocSeeTag	contained "@see\>" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTagStar skipwhite skipempty
-  syn match  javaDocSeeTagStar	contained "^\s*\*\+\%(\s*{\=@\|/\|$\)\@!" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3 skipwhite skipempty
+  syn match javaDocSeeTag contained "@see\>\s*" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTag4,javaDocSeeTagStar,javaDocSeeTagSlash skipwhite skipempty
+
+  if s:with_html
+    syn match  javaDocSeeTagStar contained "^\s*\*\+\%(\s*{\=@\|/\|$\)\@!" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTag4 skipwhite skipempty
+    hi def link javaDocSeeTagStar javaDocComment
+  endif
+
+  if s:with_markdown
+    syn match  javaDocSeeTagSlash contained "^\s*///\%(\s*{\=@\|$\)\@!" nextgroup=javaDocSeeTag1,javaDocSeeTag2,javaDocSeeTag3,javaDocSeeTag4 skipwhite skipempty
+    hi def link javaDocSeeTagSlash javaMarkdownComment
+  endif
+
   syn match  javaDocSeeTag1	contained @"\_[^"]\+"@
   syn match  javaDocSeeTag2	contained @@ contains=@javaHtml extend
-  syn match  javaDocSeeTag3	contained @["< \t]\@!\%(\k\|[/.]\)*\%(##\=\k\+\%((\_[^)]*)\)\=\)\=@ nextgroup=javaDocSeeTag3Label skipwhite skipempty
+  exec 'syn match javaDocSeeTag3 contained @[' . s:ff.WithMarkdown('[', '') . '"< \t]\@!\%(\k\|[/.]\)*\%(##\=\k\+\%((\_[^)]*)\)\=\)\=@ nextgroup=javaDocSeeTag3Label skipwhite skipempty'
   syn match  javaDocSeeTag3Label contained @\k\%(\k\+\s*\)*$@
 
+  " COMBAK: No support for type javaDocSeeTag2 in Markdown.
+""if s:with_markdown
+""  syn match  javaDocSeeTag4	contained @\[.\+\]\s\=\%(\[.\+\]\|(.\+)\)@ contains=@javaMarkdown extend
+""  hi def link javaDocSeeTag4	Special
+""endif
+
   syn region javaCodeSkipBlock	contained transparent start="{\%(@code\>\)\@!" end="}" contains=javaCodeSkipBlock,javaDocCodeTag
   syn region javaDocCodeTag	contained start="{@code\>" end="}" contains=javaDocCodeTag,javaCodeSkipBlock
 
@@ -418,9 +533,6 @@ if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp'
   syn region javaDocSnippetTag	contained start="{@snippet\>" end="}" contains=javaDocSnippetTag,javaSnippetSkipBlock,javaDocSnippetTagAttr,javaCommentMarkupTag
 
   syntax case match
-  hi def link javaDocComment		Comment
-  hi def link javaDocSeeTagStar		javaDocComment
-  hi def link javaCommentTitle		SpecialComment
   hi def link javaDocParam		Function
 
   hi def link javaDocAuthorTag		Special
@@ -729,7 +841,7 @@ endif
 
 let b:spell_options = "contained"
 let &cpo = s:cpo_save
-unlet s:ff s:cpo_save
+unlet s:cpo_save s:ff s:with_html s:with_markdown
 
 " See ":help vim9-mix".
 if !has("vim9script")
@@ -757,4 +869,4 @@ if exists("g:java_foldtext_show_first_or_second_line")
   setlocal foldtext=s:JavaSyntaxFoldTextExpr()
   delfunction! g:JavaSyntaxFoldTextExpr
 endif
-" vim: sw=2 ts=8 noet sta
+" vim: fdm=syntax sw=2 ts=8 noet sta
-- 
cgit 


From 988482d9422b40e86225935326127063d881b090 Mon Sep 17 00:00:00 2001
From: Christian Clason 
Date: Sat, 5 Oct 2024 11:02:55 +0200
Subject: vim-patch:60310a4: runtime(java): Manage circularity for every
 :syn-included syntax file

With "g:markdown_fenced_languages" defined and "java" added
to its list, a circular dependency between the Markdown and
Java syntax files will be made.  To break it, no Markdown
documentation comments will be recognised in fenced blocks
in Markdown files; in order to view Java source files,
"java" must be removed from "g:markdown_fenced_languages",
and this task can be automated as follows.

1) Add to "~/.after/ftplugin/java.vim":
------------------------------------------------------------
if exists("g:markdown_fenced_languages") &&
	\ !(exists("g:java_ignore_javadoc") ||
	\ exists("g:java_ignore_markdown"))
    let s:idx = index(g:markdown_fenced_languages, 'java')
    if s:idx > -1
	call remove(g:markdown_fenced_languages, s:idx)
    endif
    unlet s:idx
endif
------------------------------------------------------------

2) Optionally add to "~/.after/ftplugin/markdown.vim":
------------------------------------------------------------
if exists("g:markdown_fenced_languages") &&
	\ index(g:markdown_fenced_languages, 'java') < 0
    call add(g:markdown_fenced_languages, 'java')
endif
------------------------------------------------------------

(Make sure that the above snippets appear in the files under
the "ftplugin" NOT "syntax" directory.)

Finally, unless the new version of the syntax file is made
available from "$VIMRUNTIME" (and from "~/.vim/syntax" if
necessary), OTHER discoverable file versions will be used
whose behaviour may interfere with this fix.

related: vim/vim#15740
closes: vim/vim#15796

https://github.com/vim/vim/commit/60310a4b2630a4d3bb0b6da9bc03061ecfbac9ee

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
---
 runtime/syntax/java.vim | 48 ++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 10 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 737219afce..307fc26349 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -3,16 +3,32 @@
 " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:	Claudio Fleiner 
 " Repository:		https://github.com/zzzyxwvut/java-vim.git
-" Last Change:		2024 Sep 28
+" Last Change:		2024 Oct 03
 
-" Please check :help java.vim for comments on some of the options available.
+" Please check ":help java.vim" for comments on some of the options
+" available.
 
-" quit when a syntax file was already loaded
-if !exists("g:main_syntax")
-  if exists("b:current_syntax")
-    finish
+" Do not aggregate syntax items from circular inclusion.
+if exists("b:current_syntax")
+  finish
+endif
+
+if exists("g:main_syntax")
+  " Reject attendant circularity for every :syn-included syntax file,
+  " but ACCEPT FAILURE when "g:main_syntax" is set to "java".
+  if g:main_syntax == 'html'
+    if !exists("g:java_ignore_html")
+      let g:java_ignore_html = 1
+      let s:clear_java_ignore_html = 1
+    endif
+  elseif g:main_syntax == 'markdown'
+    if !exists("g:java_ignore_markdown")
+      let g:java_ignore_markdown = 1
+      let s:clear_java_ignore_markdown = 1
+    endif
   endif
-  " we define it here so that included files can test for it
+else
+  " Allow syntax files that include this file test for its inclusion.
   let g:main_syntax = 'java'
 endif
 
@@ -364,15 +380,17 @@ if !exists("g:java_ignore_javadoc") && (s:with_html || s:with_markdown) && g:mai
 
   " Include HTML syntax coloring for Javadoc comments.
   if s:with_html
-    syntax include @javaHtml syntax/html.vim
-    unlet b:current_syntax
+    try
+      syntax include @javaHtml syntax/html.vim
+    finally
+      unlet! b:current_syntax
+    endtry
   endif
 
   " Include Markdown syntax coloring (v7.2.437) for Javadoc comments.
   if s:with_markdown
     try
       syntax include @javaMarkdown syntax/markdown.vim
-      unlet b:current_syntax
       let s:ff.WithMarkdown = s:ff.LeftConstant
     catch /\
Date: Sun, 6 Oct 2024 07:33:37 +0800
Subject: vim-patch:partial:89872f5: runtime(doc): update formatting and syntax

closes: vim/vim#15800

https://github.com/vim/vim/commit/89872f58a9938142417906fc3243257c67c0af9c

Co-authored-by: Milly 
---
 runtime/syntax/help.vim | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'runtime/syntax')

diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index 0f62c26294..fd128bb0b5 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	The Vim Project 
-" Last Change:	2023 Aug 10
+" Last Change:	2024 Oct 05
 " Former Maintainer:	Bram Moolenaar 
 
 " Quit when a (custom) syntax file was already loaded
@@ -60,10 +60,14 @@ syn match helpSpecial		"\"ms=s+1
 
 syn match helpSpecial		"\[N]"
-" avoid highlighting N  N in help.txt
+" avoid highlighting N  N in quickref.txt
 syn match helpSpecial		"N  N"he=s+1
 syn match helpSpecial		"Nth"me=e-2
 syn match helpSpecial		"N-1"me=e-2
+" highlighting N of cinoptions-values in indent.txt
+syn match helpSpecial		"^\t-\?\zsNs\?\s"me=s+1
+" highlighting N of cinoptions-values in indent.txt
+syn match helpSpecial		"^\t[>enf{}^L:=lbghNEpti+cC/(uUwWkmMjJ)*#P]N\s"ms=s+2,me=e-1
 syn match helpSpecial		"{[-_a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
 syn match helpSpecial		"\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
 syn match helpSpecial		"<[-a-zA-Z0-9_]\+>"
-- 
cgit