mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
129 lines
6.1 KiB
VimL
129 lines
6.1 KiB
VimL
if polyglot#init#is_disabled(expand('<sfile>:p'), 'just', 'syntax/just.vim')
|
|
finish
|
|
endif
|
|
|
|
" Vim syntax file
|
|
" Language: Justfile
|
|
" Maintainer: Noah Bogart <noah.bogart@hey.com>
|
|
" URL: https://github.com/NoahTheDuke/vim-just.git
|
|
" Last Change: 2021 May 19
|
|
|
|
if exists('b:current_syntax')
|
|
finish
|
|
endif
|
|
|
|
let b:current_syntax = 'just'
|
|
syntax sync minlines=20 maxlines=200
|
|
|
|
syntax match justNoise ","
|
|
|
|
syntax match justComment "\v#.*$" contains=@Spell
|
|
syntax match justName "[a-zA-Z_][a-zA-Z0-9_-]*" contained
|
|
syntax match justFunction "[a-zA-Z_][a-zA-Z0-9_-]*" contained
|
|
|
|
syntax region justBacktick start=/`/ skip=/\./ end=/`/ contains=justInterpolation
|
|
syntax region justRawString start=/'/ skip=/\./ end=/'/ contains=justInterpolation
|
|
syntax region justString start=/"/ skip=/\./ end=/"/ contains=justInterpolation
|
|
syntax cluster justAllStrings contains=justBacktick,justRawString,justString
|
|
|
|
syntax match justAssignmentOperator ":=" contained
|
|
|
|
syntax match justParameterOperator "=" contained
|
|
syntax match justVariadicOperator "*\|+\|\$" contained
|
|
syntax match justParameter "\v\s\zs%(\*|\+|\$)?[a-zA-Z_][a-zA-Z0-9_-]*\ze\=?" contained contains=justVariadicOperator,justParameterOperator
|
|
|
|
syntax match justNextLine "\\\n\s*"
|
|
syntax match justRecipeAt "^@" contained
|
|
syntax match justRecipeColon "\v:" contained
|
|
|
|
syntax region justRecipe
|
|
\ matchgroup=justRecipeBody start="\v^\@?[a-zA-Z_]((:\=)@!.)*\ze:%(\s|\n)"
|
|
\ matchgroup=justRecipeDeps end="\v:\zs.*\n"
|
|
\ contains=justFunction,justRecipeColon
|
|
|
|
syntax match justRecipeBody "\v^\@?[a-zA-Z_]((:\=)@!.)*\ze:%(\s|\n)"
|
|
\ contains=justRecipeAt,justRecipeColon,justParameter,justParameterOperator,justVariadicOperator,@justAllStrings,justComment
|
|
|
|
syntax match justRecipeDeps "\v:[^\=]?.*\n"
|
|
\ contains=justComment,justFunction,justRecipeColon
|
|
|
|
syntax match justBoolean "\v(true|false)" contained
|
|
syntax match justKeywords "\v%(export|set)" contained
|
|
|
|
syntax match justAssignment "\v^[a-zA-Z_][a-zA-Z0-9_-]*\s+:\=" transparent contains=justAssignmentOperator
|
|
|
|
syntax match justSetKeywords "\v%(dotenv-load|export|positional-arguments|shell)" contained
|
|
syntax match justSetDefinition "\v^set\s+%(dotenv-load|export|positional-arguments)%(\s+:\=\s+%(true|false))?$"
|
|
\ contains=justSetKeywords,justKeywords,justAssignmentOperator,justBoolean
|
|
\ transparent
|
|
|
|
syntax match justSetBraces "\v[\[\]]" contained
|
|
syntax region justSetDefinition
|
|
\ start="\v^set\s+shell\s+:\=\s+\["
|
|
\ end="]"
|
|
\ contains=justSetKeywords,justKeywords,justAssignmentOperator,@justAllStrings,justNoise,justSetBraces
|
|
\ transparent skipwhite oneline
|
|
|
|
syntax region justAlias
|
|
\ matchgroup=justAlias start="\v^alias\ze\s+[a-zA-Z_][a-zA-Z0-9_-]*\s+:\="
|
|
\ end="$"
|
|
\ contains=justKeywords,justFunction,justAssignmentOperator
|
|
\ oneline skipwhite
|
|
|
|
syntax region justExport
|
|
\ matchgroup=justExport start="\v^export\ze\s+[a-zA-Z_][a-zA-Z0-9_-]*%(\s+:\=)?"
|
|
\ end="$"
|
|
\ contains=justKeywords,justAssignmentOperator
|
|
\ transparent oneline skipwhite
|
|
|
|
syntax keyword justConditional if else
|
|
syntax region justConditionalBraces start="\v[^{]\{[^{]" end="}" contained oneline contains=ALLBUT,justConditionalBraces,justBodyText
|
|
|
|
syntax match justBodyText "[^[:space:]#]\+" contained
|
|
syntax match justLineLeadingSymbol "\v^\s+\zs%(\@|-)" contained
|
|
syntax match justLineContinuation "\\$" contained
|
|
|
|
syntax region justBody transparent matchgroup=justLineLeadingSymbol start="\v^\s+\zs[@-]"hs=e-1 matchgroup=justBodyText start="\v^\s+\zs[^[:space:]@#-]"hs=e-1 end="\n" skipwhite oneline contains=justInterpolation,justBodyText,justLineLeadingSymbol,justLineContinuation,justComment
|
|
|
|
syntax region justInterpolation start="{{" end="}}" contained contains=ALLBUT,justInterpolation,justFunction,justBodyText
|
|
|
|
syntax match justBuiltInFunctionParens "[()]" contained
|
|
syntax match justBuiltInFunctions "\v%(arch|os|os_family|invocation_directory|justfile|justfile_directory|just_executable)\ze\(\)" contains=justBuiltInFunctions
|
|
syntax region justBuiltInFunctions transparent matchgroup=justBuiltInFunctions start="\v%(env_var_or_default|env_var)\ze\(" end=")" oneline contains=@justAllStrings,justBuiltInFunctionParens,justNoise
|
|
|
|
syntax match justBuiltInFunctionsError "\v%(arch|os|os_family|invocation_directory|justfile|justfile_directory|just_executable)\(.+\)"
|
|
|
|
syntax match justOperator "\v%(\=\=|!\=|\+)"
|
|
|
|
highlight default link justAlias Keyword
|
|
highlight default link justAssignmentOperator Operator
|
|
highlight default link justBacktick String
|
|
highlight default link justBodyText Constant
|
|
highlight default link justBoolean Boolean
|
|
highlight default link justBuiltInFunctions Function
|
|
highlight default link justBuiltInFunctionsError Error
|
|
highlight default link justBuiltInFunctionParens Delimiter
|
|
highlight default link justComment Comment
|
|
highlight default link justConditional Conditional
|
|
highlight default link justConditionalBraces Delimiter
|
|
highlight default link justExport Keyword
|
|
highlight default link justFunction Function
|
|
highlight default link justInterpolation Delimiter
|
|
highlight default link justKeywords Keyword
|
|
highlight default link justLineContinuation Special
|
|
highlight default link justLineLeadingSymbol Special
|
|
highlight default link justName Identifier
|
|
highlight default link justNextLine Special
|
|
highlight default link justOperator Operator
|
|
highlight default link justParameter Identifier
|
|
highlight default link justParameterOperator Operator
|
|
highlight default link justRawString String
|
|
highlight default link justRecipe Function
|
|
highlight default link justRecipeAt Special
|
|
highlight default link justRecipeBody Function
|
|
highlight default link justRecipeColon Operator
|
|
highlight default link justSetDefinition Keyword
|
|
highlight default link justSetKeywords Keyword
|
|
highlight default link justString String
|
|
highlight default link justVariadicOperator Operator
|