| 
									
										
										
										
											2025-01-20 21:56:41 +01:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	Justfile | 
					
						
							|  |  |  | " Maintainer:	Peter Benjamin <@pbnj> | 
					
						
							| 
									
										
										
										
											2025-01-25 15:26:09 +01:00
										 |  |  | " Last Change:	2025 Jan 25 | 
					
						
							| 
									
										
										
										
											2025-01-20 21:56:41 +01:00
										 |  |  | " Credits:	The original author, Noah Bogart <https://github.com/NoahTheDuke/vim-just/> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists('b:current_syntax') | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = 'just' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " syncing fromstart prevents mismatched highlighting when jumping around in a justfile | 
					
						
							|  |  |  | " linebreaks= keeps multi-line constructs highlighted correctly while typing | 
					
						
							|  |  |  | syn sync fromstart linebreaks=10 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " a-zA-Z0-9_- | 
					
						
							|  |  |  | syn iskeyword @,48-57,_,- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justComment "#.*$" contains=@Spell,justCommentTodo | 
					
						
							|  |  |  | syn match justCommentInBody '#.*$' contained contains=justCommentTodo,justInterpolation,@justOtherCurlyBraces | 
					
						
							|  |  |  | syn keyword justCommentTodo TODO FIXME XXX contained | 
					
						
							|  |  |  | syn match justShebang "^\s*#!.*$" contains=justInterpolation,@justOtherCurlyBraces | 
					
						
							|  |  |  | syn match justName "\h\k*" contained | 
					
						
							|  |  |  | syn match justFunction "\h\k*" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justPreBodyComment "\v%(\s|\\\n)*%([^\\]\n)@3<!#%([^!].*)?\n%(\t+| +)@=" transparent contained contains=justComment | 
					
						
							|  |  |  |    \ nextgroup=@justBodies skipnl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justBacktick start=/`/ end=/`/ | 
					
						
							|  |  |  | syn region justBacktick start=/```/ end=/```/ | 
					
						
							|  |  |  | syn region justRawString start=/'/ end=/'/ | 
					
						
							|  |  |  | syn region justRawString start=/'''/ end=/'''/ | 
					
						
							|  |  |  | syn region justString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError | 
					
						
							|  |  |  | syn region justString start=/"""/ skip=/\\\\\|\\"/ end=/"""/ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justShellExpandRawString start=/\v\k@1<!x'/ end=/'/ | 
					
						
							|  |  |  |    \ contains=justShellExpandVarRaw,justDollarEscape | 
					
						
							|  |  |  | syn region justShellExpandRawString start=/\v\k@1<!x'''/ end=/'''/ | 
					
						
							|  |  |  |    \ contains=justShellExpandVarRaw,justDollarEscape | 
					
						
							|  |  |  | syn region justShellExpandString | 
					
						
							|  |  |  |    \ start=/\v\k@1<!x"/ skip=/\\\\\|\\"/ end=/"/ | 
					
						
							|  |  |  |    \ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justShellExpandVar,justDollarEscape,justDollarEscapeSplit | 
					
						
							|  |  |  | syn region justShellExpandString | 
					
						
							|  |  |  |    \ start=/\v\k@1<!x"""/ skip=/\\\\\|\\"/ end=/"""/ | 
					
						
							|  |  |  |    \ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justShellExpandVar,justDollarEscape,justDollarEscapeSplit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justStringLiterals | 
					
						
							|  |  |  |    \ contains=justRawString,justString,justShellExpandRawString,justShellExpandString | 
					
						
							|  |  |  | syn cluster justAllStrings contains=justBacktick,@justStringLiterals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRegexReplacement | 
					
						
							|  |  |  |    \ /\v,%(\_s|\\\n)*%('\_[^']*'|'''%(\_.%(''')@!)*\_.?''')%(\_s|\\\n)*%(,%(\_s|\\\n)*)?\)/me=e-1 | 
					
						
							|  |  |  |    \ transparent contained contains=@justExpr,@justStringsWithRegexCapture | 
					
						
							|  |  |  | syn match justRegexReplacement | 
					
						
							|  |  |  |    \ /\v,%(\_s|\\\n)*%("%(\_[^"]|\\")*"|"""%(\_.%(""")@!)*\_.?""")%(\_s|\\\n)*%(,%(\_s|\\\n)*)?\)/me=e-1 | 
					
						
							|  |  |  |    \ transparent contained contains=@justExpr,@justStringsWithRegexCapture | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justRawStrRegexRepl start=/\v'/ end=/'/ contained contains=justRegexCapture,justDollarEscape | 
					
						
							|  |  |  | syn region justRawStrRegexRepl start=/\v'''/ end=/'''/ contained contains=justRegexCapture,justDollarEscape | 
					
						
							|  |  |  | syn region justStringRegexRepl start=/\v"/ skip=/\\\\\|\\"/ end=/"/ contained contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justRegexCapture,justDollarEscape,justDollarEscapeSplit | 
					
						
							|  |  |  | syn region justStringRegexRepl start=/\v"""/ skip=/\\\\\|\\"/ end=/"""/ contained contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError,justRegexCapture,justDollarEscape,justDollarEscapeSplit | 
					
						
							|  |  |  | syn match justRegexCapture '\v\$%(\w+|\{\w+\})' contained | 
					
						
							|  |  |  | syn cluster justStringsWithRegexCapture contains=justRawStrRegexRepl,justStringRegexRepl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justRawStrings contains=justRawString,justRawStrRegexRepl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justStringInsideBody start=/\v\\@1<!'/ end=/'/ contained contains=justInterpolation,@justOtherCurlyBraces,justIndentError | 
					
						
							|  |  |  | syn region justStringInsideBody start=/\v\\@1<!"/ skip=/\v\\@1<!\\"/ end=/"/ contained contains=justInterpolation,@justOtherCurlyBraces,justIndentError | 
					
						
							|  |  |  | syn region justStringInShebangBody start=/\v\\@1<!'/ end=/'/ contained contains=justInterpolation,@justOtherCurlyBraces,justShebangIndentError | 
					
						
							|  |  |  | syn region justStringInShebangBody start=/\v\\@1<!"/ skip=/\v\\@1<!\\"/ end=/"/ contained contains=justInterpolation,@justOtherCurlyBraces,justShebangIndentError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justStringEscapeError '\\.' contained | 
					
						
							|  |  |  | syn match justStringEscapeSequence '\v\\[tnr"\\]' contained | 
					
						
							|  |  |  | syn match justStringUEscapeSequence '\v\\u\{[0-9A-Fa-f]{1,6}\}' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justAssignmentOperator "\V:=" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justExprParen start='\V(' end='\V)' transparent contains=@justExpr | 
					
						
							|  |  |  | syn region justExprParenInInterp start='\V(' end='\V)' transparent contained contains=@justExprInInterp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRecipeAt "^@" contained | 
					
						
							|  |  |  | syn match justRecipeColon ":" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justRecipeAttributes | 
					
						
							|  |  |  |    \ matchgroup=justRecipeAttr start='\v^%(\\\n)@3<!\[' end='\V]' | 
					
						
							|  |  |  |    \ contains=justRecipeAttr,justRecipeAttrSep,justRecipeAttrArgs,justRecipeAttrArgError,justRecipeAttrValueShort | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword justRecipeAttr | 
					
						
							|  |  |  |    \ confirm doc extension group linux macos no-cd no-exit-message no-quiet openbsd positional-arguments private script unix windows working-directory | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  | syn match justRecipeAttrSep ',' contained | 
					
						
							|  |  |  | syn match justRecipeAttrValueShort '\v:%(\_s|\\\n)*' transparent contained | 
					
						
							|  |  |  |    \ contains=justRecipeAttrValueColon nextgroup=@justStringLiterals,justInvalidAttrValue | 
					
						
							|  |  |  | syn match justRecipeAttrValueColon '\V:' contained | 
					
						
							|  |  |  | syn region justRecipeAttrArgs matchgroup=justRecipeAttr start='\V(' end='\V)' contained | 
					
						
							|  |  |  |    \ contains=@justStringLiterals | 
					
						
							|  |  |  | syn match justRecipeAttrArgError '\v\(%(\s|\\?\n)*\)' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justInvalidAttrValue '\v[^"',]["']@![^,\]]*' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRecipeDeclSimple "\v^\@?\h\k*%(%(\s|\\\n)*:\=@!)@=" | 
					
						
							|  |  |  |    \ transparent contains=justRecipeName | 
					
						
							|  |  |  |    \ nextgroup=justRecipeNoDeps,justRecipeDeps | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justRecipeDeclComplex start="\v^\@?\h\k*%(\s|\\\n)+%([+*$]+%(\s|\\\n)*)*\h" end="\v%(:\=@!)@=|$" | 
					
						
							|  |  |  |    \ transparent | 
					
						
							|  |  |  |    \ contains=justRecipeName,justParameter | 
					
						
							|  |  |  |    \ nextgroup=justRecipeNoDeps,justRecipeDeps | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRecipeName "\v^\@?\h\k*" transparent contained contains=justRecipeAt,justFunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justParameter "\v%(\s|\\\n)@3<=%(%([*+]%(\s|\\\n)*)?%(\$%(\s|\\\n)*)?|\$%(\s|\\\n)*[*+]%(\s|\\\n)*)\h\k*" | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=justName,justVariadicPrefix,justParamExport,justVariadicPrefixError | 
					
						
							|  |  |  |    \ nextgroup=justPreParamValue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justPreParamValue '\v%(\s|\\\n)*\=%(\s|\\\n)*' | 
					
						
							|  |  |  |    \ contained transparent | 
					
						
							|  |  |  |    \ contains=justParameterOperator | 
					
						
							|  |  |  |    \ nextgroup=justParamValue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justParamValue contained transparent | 
					
						
							|  |  |  |    \ start="\v\S" | 
					
						
							|  |  |  |    \ skip="\\\n" | 
					
						
							|  |  |  |    \ end="\v%(\s|^)%([*+$:]|\h)@=|:@=|$" | 
					
						
							|  |  |  |    \ contains=@justAllStrings,justRecipeParenDefault,@justExprFunc | 
					
						
							|  |  |  |    \ nextgroup=justParameterError | 
					
						
							|  |  |  | syn match justParameterOperator "\V=" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justVariadicPrefix "\v%(\s|\\\n)@3<=[*+]%(%(\s|\\\n)*\$?%(\s|\\\n)*\h)@=" contained | 
					
						
							|  |  |  | syn match justParamExport '\V$' contained | 
					
						
							|  |  |  | syn match justVariadicPrefixError "\v\$%(\s|\\\n)*[*+]" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justParameterError "\v%(%([+*$]+%(\s|\\\n)*)*\h\k*)@>%(%(\s|\\\n)*\=)@!" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justRecipeParenDefault | 
					
						
							|  |  |  |    \ matchgroup=justRecipeDepParamsParen start='\v%(\=%(\s|\\\n)*)@<=\(' end='\V)' | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  |    \ contains=@justExpr | 
					
						
							|  |  |  | syn match justRecipeSubsequentDeps '\V&&' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRecipeNoDeps '\v:%(\s|\\\n)*\n|:#@=|:%(\s|\\\n)+#@=' | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=justRecipeColon | 
					
						
							|  |  |  |    \ nextgroup=justPreBodyComment,@justBodies | 
					
						
							|  |  |  | syn region justRecipeDeps start="\v:%(\s|\\\n)*%([a-zA-Z_(]|\&\&)" skip='\\\n' end="\v#@=|\\@1<!\n" | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=justFunction,justRecipeColon,justRecipeSubsequentDeps,justRecipeParamDep | 
					
						
							|  |  |  |    \ nextgroup=justPreBodyComment,@justBodies | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justRecipeParamDep contained transparent | 
					
						
							|  |  |  |    \ matchgroup=justRecipeDepParamsParen | 
					
						
							|  |  |  |    \ start="\V(" | 
					
						
							|  |  |  |    \ end="\V)" | 
					
						
							|  |  |  |    \ contains=justRecipeDepParenName,@justExpr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword justBoolean true false contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justAssignment "\v^\h\k*%(\s|\\\n)*:\=" transparent contains=justAssignmentOperator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justSet '\v^set' contained | 
					
						
							|  |  |  | syn keyword justSetKeywords | 
					
						
							|  |  |  |    \ allow-duplicate-recipes allow-duplicate-variables dotenv-load dotenv-filename dotenv-path dotenv-required export fallback ignore-comments positional-arguments quiet script-interpreter shell tempdir unstable windows-shell working-directory | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  | syn keyword justSetDeprecatedKeywords windows-powershell contained | 
					
						
							|  |  |  | syn match justBooleanSet "\v^set%(\s|\\\n)+%(allow-duplicate-%(recip|variabl)es|dotenv-%(loa|require)d|export|fallback|ignore-comments|positional-arguments|quiet|unstable|windows-powershell)%(%(\s|\\\n)*:\=%(\s|\\\n)*%(true|false))?%(\s|\\\n)*%($|#@=)" | 
					
						
							|  |  |  |    \ contains=justSet,justSetKeywords,justSetDeprecatedKeywords,justAssignmentOperator,justBoolean | 
					
						
							|  |  |  |    \ transparent | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justStringSet '\v^set%(\s|\\\n)+\k+%(\s|\\\n)*:\=%(\s|\\\n)*%(x?['"])@=' transparent contains=justSet,justSetKeywords,justAssignmentOperator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justShellSet | 
					
						
							|  |  |  |    \ "\v^set%(\s|\\\n)+%(s%(hell|cript-interpreter)|windows-shell)%(\s|\\\n)*:\=%(\s|\\\n)*\[@=" | 
					
						
							|  |  |  |    \ contains=justSet,justSetKeywords,justAssignmentOperator | 
					
						
							|  |  |  |    \ transparent skipwhite | 
					
						
							|  |  |  |    \ nextgroup=justShellSetValue | 
					
						
							|  |  |  | syn region justShellSetValue | 
					
						
							|  |  |  |    \ start='\V[' end='\V]' | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  |    \ contains=@justStringLiterals,justShellSetError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justShellSetError '\v\k+['"]@!' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justAlias '\v^alias' contained | 
					
						
							|  |  |  | syn match justAliasDecl "\v^alias%(\s|\\\n)+\h\k*%(\s|\\\n)*:\=%(\s|\\\n)*" | 
					
						
							|  |  |  |    \ transparent | 
					
						
							|  |  |  |    \ contains=justAlias,justFunction,justAssignmentOperator | 
					
						
							|  |  |  |    \ nextgroup=justAliasRes | 
					
						
							|  |  |  | syn match justAliasRes '\v\h\k*%(\s|\\\n)*%(#@=|$)' contained transparent contains=justFunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justExportedAssignment "\v^export%(\s|\\\n)+\h\k*%(\s|\\\n)*:\=" transparent | 
					
						
							|  |  |  |    \ contains=justExport,justAssignmentOperator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justExport '\v^export' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justUnexportStatement '\v^unexport%(\s|\\\n)+\w+\s*$' contains=justUnexport | 
					
						
							|  |  |  | syn match justUnexport '\v^unexport' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword justConditional if else | 
					
						
							|  |  |  | syn region justConditionalBraces start="\v\{\{@!" end="\v\}@=" transparent contains=@justExpr | 
					
						
							|  |  |  | syn region justConditionalBracesInInterp start="\v\{\{@!" end="\v\}@=" transparent contained contains=@justExprInInterp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justLineLeadingSymbol "\v^%(\\\n)@3<!\s+\zs%(\@-|-\@|\@|-)" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justLineContinuation "\\$" | 
					
						
							|  |  |  |    \ containedin=ALLBUT,justComment,justCommentInBody,justShebang,@justRawStrings,justRecipeAttrArgError,justShellExpandRawDefaultValue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justBody | 
					
						
							|  |  |  |    \ start=/\v^\z( +|\t+)%(#!)@!\S/ | 
					
						
							|  |  |  |    \ skip='\v\\\n|\n\s*$' | 
					
						
							|  |  |  |    \ end="\v\n\z1@!|%(^\S)@2<=\_.@=" | 
					
						
							|  |  |  |    \ contains=justInterpolation,@justOtherCurlyBraces,justLineLeadingSymbol,justCommentInBody,justStringInsideBody,justIndentError | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justShebangBody | 
					
						
							|  |  |  |    \ start="\v^\z( +|\t+)#!" | 
					
						
							|  |  |  |    \ skip='\v\\\n|\n\s*$' | 
					
						
							|  |  |  |    \ end="\v\n\z1@!|%(^\S)@2<=\_.@=" | 
					
						
							|  |  |  |    \ contains=justInterpolation,@justOtherCurlyBraces,justCommentInBody,justShebang,justStringInShebangBody,justShebangIndentError | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justBodies contains=justBody,justShebangBody | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justIndentError '\v^%(\\\n)@3<!%( +\zs\t|\t+\zs )\s*\S@=' | 
					
						
							|  |  |  | syn match justShebangIndentError '\v^ +\zs\t\s*\S@=' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justInterpolation | 
					
						
							|  |  |  |    \ matchgroup=justInterpolationDelim | 
					
						
							|  |  |  |    \ start="\v\{\{\{@!" end="\v%(%(\\\n\s|\S)\s*)@<=\}\}|$" | 
					
						
							|  |  |  |    \ matchgroup=justInterpError end='^\S' | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  |    \ contains=@justExprInInterp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justBadCurlyBraces '\v\{{3}\ze[^{]' contained | 
					
						
							|  |  |  | syn match justCurlyBraces '\v\{{4}' contained | 
					
						
							|  |  |  | syn match justBadCurlyBraces '\v\{{5}\ze[^{]' contained | 
					
						
							|  |  |  | syn cluster justOtherCurlyBraces contains=justCurlyBraces,justBadCurlyBraces | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justFunctionCall "\v\w+%(\s|\\\n)*\(@=" transparent contains=justBuiltInFunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " error() is intentionally not included in this list | 
					
						
							|  |  |  | syn keyword justBuiltInFunction | 
					
						
							|  |  |  |    \ absolute_path append arch blake3 blake3_file cache_dir cache_directory canonicalize capitalize choose clean config_dir config_directory config_local_dir config_local_directory data_dir data_directory data_local_dir data_local_directory datetime datetime_utc encode_uri_component env env_var env_var_or_default executable_dir executable_directory extension file_name file_stem home_dir home_directory invocation_dir invocation_dir_native invocation_directory invocation_directory_native is_dependency join just_executable just_pid justfile justfile_dir justfile_directory kebabcase lowercamelcase lowercase module_dir module_directory module_file num_cpus os os_family parent_dir parent_directory path_exists prepend quote replace replace_regex semver_matches sha256 sha256_file shell shoutykebabcase shoutysnakecase snakecase source_dir source_directory source_file style titlecase trim trim_end trim_end_match trim_end_matches trim_start trim_start_match trim_start_matches uppercamelcase uppercase uuid without_extension | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justUserDefinedError "\v%(assert|error)%(%(\s|\\\n)*\()@=" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justReplaceRegex '\vreplace_regex%(\s|\\\n)*\(@=' transparent contains=justBuiltInFunction nextgroup=justReplaceRegexCall | 
					
						
							|  |  |  | syn match justReplaceRegexInInterp '\vreplace_regex%(\s|\\\n)*\(@=' transparent contained contains=justBuiltInFunction nextgroup=justReplaceRegexCallInInterp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region justReplaceRegexCall | 
					
						
							|  |  |  |    \ matchgroup=justReplaceRegexCall | 
					
						
							|  |  |  |    \ start='\V(' end='\V)' | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=@justExpr,justRegexReplacement | 
					
						
							|  |  |  | syn region justReplaceRegexCallInInterp | 
					
						
							|  |  |  |    \ matchgroup=justReplaceRegexCall | 
					
						
							|  |  |  |    \ start='\V(' end='\V)' | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=@justExprInInterp,justRegexReplacement | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justParameterLineContinuation '\v%(\s|\\\n)*' contained nextgroup=justParameterError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justRecipeDepParenName '\v%(\(\n?)@3<=%(\_s|\\\n)*\h\k*' | 
					
						
							|  |  |  |    \ transparent contained | 
					
						
							|  |  |  |    \ contains=justFunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justBuiltInFunctions contains=justFunctionCall,justUserDefinedError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justConditionalOperator "\V==" | 
					
						
							|  |  |  | syn match justConditionalOperator "\V!=" | 
					
						
							|  |  |  | syn match justConditionalOperator "\V=~" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justOperator "\V+" | 
					
						
							|  |  |  | syn match justOperator "\V/" | 
					
						
							|  |  |  | syn match justOperator "\V&&" | 
					
						
							|  |  |  | syn match justOperator "\V||" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword justConstant | 
					
						
							|  |  |  |    \ HEX HEXLOWER HEXUPPER | 
					
						
							|  |  |  |    \ CLEAR NORMAL BOLD ITALIC UNDERLINE INVERT HIDE STRIKETHROUGH | 
					
						
							|  |  |  |    \ BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE | 
					
						
							|  |  |  |    \ BG_BLACK BG_RED BG_GREEN BG_YELLOW BG_BLUE BG_MAGENTA BG_CYAN BG_WHITE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justShellExpandVarRaw '\v\$%(\{\_[^}]*\}|\w+)' contained contains=justShellExpandRawDefaultDelimiter | 
					
						
							|  |  |  | syn match justShellExpandRawDefaultDelimiter '\V:-' contained nextgroup=justShellExpandRawDefaultValue | 
					
						
							|  |  |  | syn match justShellExpandRawDefaultValue '\v\_[^}]*' contained | 
					
						
							|  |  |  | syn match justShellExpandVar '\v\$%(\w|\\\n\s*)+' contained | 
					
						
							|  |  |  | syn region justShellExpandVar start='\v\$%(\\\n\s*)*\{' end='\V}' contains=justShellExpandDefaultDelimiter,justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError | 
					
						
							|  |  |  | syn match justShellExpandDefaultDelimiter '\v:%(\\\n\s*)*-@=' contained nextgroup=justShellExpandDefault | 
					
						
							|  |  |  | syn region justShellExpandDefault | 
					
						
							|  |  |  |    \ matchgroup=justShellExpandDefaultDelimiter start='\V-' end='\v\}@=' | 
					
						
							|  |  |  |    \ contained | 
					
						
							|  |  |  |    \ contains=justStringEscapeSequence,justStringUEscapeSequence,justStringEscapeError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justDollarEscape '\V$$' contained | 
					
						
							|  |  |  | syn match justDollarEscapeSplit '\v\$%(\\\n\s*)*\$' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justExprBase contains=@justAllStrings,@justBuiltInFunctions,justConditional,justConditionalOperator,justOperator,justConstant | 
					
						
							|  |  |  | syn cluster justExpr contains=@justExprBase,justExprParen,justConditionalBraces,justReplaceRegex | 
					
						
							|  |  |  | syn cluster justExprInInterp contains=@justExprBase,justName,justExprParenInInterp,justConditionalBracesInInterp,justReplaceRegexInInterp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster justExprFunc contains=@justBuiltInFunctions,justReplaceRegex,justExprParen | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justImport /\v^import%(%(\s|\\\n)*\?|%(\s|\\\n)+%(x?['"])@=)/ transparent | 
					
						
							|  |  |  |    \ contains=justImportStatement,justOptionalFile | 
					
						
							|  |  |  | syn match justImportStatement '^import' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justOldInclude "^!include" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justModule /\v^mod%(%(\s|\\\n)*\?)?%(\s|\\\n)+\h\k*\s*%($|%(\s|\\\n)*%(x?['"]|#)@=)/ | 
					
						
							|  |  |  |    \ transparent contains=justModStatement,justName,justOptionalFile | 
					
						
							|  |  |  | syn match justModStatement '^mod' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match justOptionalFile '\V?' contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Most linked colorscheme colors are chosen based on semantics of the color name. | 
					
						
							|  |  |  | " Some are for parity with other syntax files (for example, Number for recipe body highlighting | 
					
						
							|  |  |  | " is to align with the make.vim distributed with Vim). | 
					
						
							|  |  |  | " Deprecated `just` syntaxes are highlighted as Underlined. | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " Colors are linked 'def'(ault) so that users who prefer other colors | 
					
						
							|  |  |  | " can override them, e.g. in ~/.vim/after/syntax/just.vim | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " Note that vim-just's highlight groups are an implementation detail and may be subject to change. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " The list of highlight links is sorted alphabetically. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi def link justAlias                            Statement | 
					
						
							|  |  |  | hi def link justAssignmentOperator               Operator | 
					
						
							|  |  |  | hi def link justBacktick                         Special | 
					
						
							|  |  |  | hi def link justBadCurlyBraces                   Error | 
					
						
							|  |  |  | hi def link justBody                             Number | 
					
						
							|  |  |  | hi def link justBoolean                          Boolean | 
					
						
							|  |  |  | hi def link justBuiltInFunction                  Function | 
					
						
							|  |  |  | hi def link justComment                          Comment | 
					
						
							|  |  |  | hi def link justCommentInBody                    Comment | 
					
						
							|  |  |  | hi def link justCommentTodo                      Todo | 
					
						
							|  |  |  | hi def link justConditional                      Conditional | 
					
						
							|  |  |  | hi def link justConditionalOperator              Conditional | 
					
						
							|  |  |  | hi def link justConstant                         Constant | 
					
						
							|  |  |  | hi def link justCurlyBraces                      Special | 
					
						
							|  |  |  | hi def link justDollarEscape                     Special | 
					
						
							|  |  |  | hi def link justDollarEscapeSplit                Special | 
					
						
							|  |  |  | hi def link justExport                           Statement | 
					
						
							|  |  |  | hi def link justFunction                         Function | 
					
						
							|  |  |  | hi def link justImportStatement                  Include | 
					
						
							|  |  |  | hi def link justIndentError                      Error | 
					
						
							|  |  |  | hi def link justInterpError                      Error | 
					
						
							|  |  |  | hi def link justInterpolation                    Normal | 
					
						
							|  |  |  | hi def link justInterpolationDelim               Delimiter | 
					
						
							|  |  |  | hi def link justInvalidAttrValue                 Error | 
					
						
							|  |  |  | hi def link justLineContinuation                 Special | 
					
						
							|  |  |  | hi def link justLineLeadingSymbol                Special | 
					
						
							|  |  |  | hi def link justModStatement                     Keyword | 
					
						
							|  |  |  | hi def link justName                             Identifier | 
					
						
							|  |  |  | hi def link justOldInclude                       Error | 
					
						
							|  |  |  | hi def link justOperator                         Operator | 
					
						
							|  |  |  | hi def link justOptionalFile                     Conditional | 
					
						
							|  |  |  | hi def link justParameterError                   Error | 
					
						
							|  |  |  | hi def link justParameterOperator                Operator | 
					
						
							|  |  |  | hi def link justParamExport                      Statement | 
					
						
							|  |  |  | hi def link justRawString                        String | 
					
						
							|  |  |  | hi def link justRawStrRegexRepl                  String | 
					
						
							|  |  |  | hi def link justRecipeAt                         Special | 
					
						
							|  |  |  | hi def link justRecipeAttr                       Type | 
					
						
							|  |  |  | hi def link justRecipeAttrArgError               Error | 
					
						
							|  |  |  | hi def link justRecipeAttrSep                    Operator | 
					
						
							|  |  |  | hi def link justRecipeAttrValueColon             Operator | 
					
						
							|  |  |  | hi def link justRecipeColon                      Operator | 
					
						
							|  |  |  | hi def link justRecipeDepParamsParen             Delimiter | 
					
						
							|  |  |  | hi def link justRecipeSubsequentDeps             Delimiter | 
					
						
							|  |  |  | hi def link justRegexCapture                     Identifier | 
					
						
							|  |  |  | hi def link justSet                              Statement | 
					
						
							|  |  |  | hi def link justSetDeprecatedKeywords            Underlined | 
					
						
							|  |  |  | hi def link justSetKeywords                      Keyword | 
					
						
							|  |  |  | hi def link justShebang                          SpecialComment | 
					
						
							|  |  |  | hi def link justShebangBody                      Number | 
					
						
							|  |  |  | hi def link justShebangIndentError               Error | 
					
						
							|  |  |  | hi def link justShellExpandDefault               Character | 
					
						
							|  |  |  | hi def link justShellExpandDefaultDelimiter      Operator | 
					
						
							|  |  |  | hi def link justShellExpandRawDefaultDelimiter   Operator | 
					
						
							|  |  |  | hi def link justShellExpandRawDefaultValue       Character | 
					
						
							|  |  |  | hi def link justShellExpandRawString             String | 
					
						
							|  |  |  | hi def link justShellExpandString                String | 
					
						
							|  |  |  | hi def link justShellExpandVar                   PreProc | 
					
						
							|  |  |  | hi def link justShellExpandVarRaw                PreProc | 
					
						
							|  |  |  | hi def link justShellSetError                    Error | 
					
						
							|  |  |  | hi def link justString                           String | 
					
						
							|  |  |  | hi def link justStringEscapeError                Error | 
					
						
							|  |  |  | hi def link justStringEscapeSequence             Special | 
					
						
							|  |  |  | hi def link justStringInShebangBody              String | 
					
						
							|  |  |  | hi def link justStringInsideBody                 String | 
					
						
							|  |  |  | hi def link justStringRegexRepl                  String | 
					
						
							|  |  |  | hi def link justStringUEscapeSequence            Special | 
					
						
							|  |  |  | hi def link justUnexport                         Statement | 
					
						
							|  |  |  | hi def link justUserDefinedError                 Exception | 
					
						
							|  |  |  | hi def link justVariadicPrefix                   Statement | 
					
						
							|  |  |  | hi def link justVariadicPrefixError              Error | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-25 15:26:09 +01:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save |