diff options
Diffstat (limited to 'syntax/bicep.vim')
-rw-r--r-- | syntax/bicep.vim | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/syntax/bicep.vim b/syntax/bicep.vim new file mode 100644 index 00000000..dcd92142 --- /dev/null +++ b/syntax/bicep.vim @@ -0,0 +1,83 @@ +if polyglot#init#is_disabled(expand('<sfile>:p'), 'bicep', 'syntax/bicep.vim') + finish +endif + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +if has('patch-7.4.1142') + syn iskeyword a-z,A-Z,48-57,_,- +endif + +syn case match + + +syn keyword bicepDataType array bool int object string contained + +syn keyword bicepStatement var module targetScope + +syn keyword bicepStatement param nextgroup=bicepParameterName skipwhite +syn match bicepParameterName /\h\w*/ nextgroup=bicepDataType skipwhite contained + +syn keyword bicepStatement output nextgroup=bicepOutputName skipwhite +syn match bicepOutputName /\h\w*/ nextgroup=bicepDataType skipwhite contained + +syn keyword bicepStatement resource nextgroup=bicepResourceName skipwhite +syn match bicepResourceName /\h\w*/ nextgroup=bicepResourceString skipwhite contained +syn region bicepResourceString start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=bicepStringInterp nextgroup=bicepExisting skipwhite +syn keyword bicepExisting existing contained + +syn match bicepDecoratorName /@\s*\h\%(\w\|\.\)*/ contains=bicepDecorator +syn match bicepDecorator /@/ contained + +syn region bicepComment start="/\*" end="\*/" contains=bicepTodo,@Spell +syn region bicepComment start="//" end="$" contains=bicepTodo,@Spell +syn keyword bicepTodo TODO FIXME XXX BUG contained + +syn keyword bicepValueBool true false +syn keyword bicepValueNull null +syn match bicepValueDec /\<[0-9]\+\([kKmMgG]b\?\)\?\>/ + +syn region bicepValueString start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=bicepStringInterp,bicepEscape +syn region bicepStringInterp start=/${/ end=/}/ contained +syn match bicepEscape /\\n/ contained +syn match bicepEscape /\\r/ contained + +syn keyword bicepRepeat for in +syn keyword bicepConditional if + +syn match bicepBraces /[{}\[\]]/ + + +hi def link bicepDataType Type +hi def link bicepStatement Statement +hi def link bicepResourceString String +hi def link bicepExisting Label + +hi def link bicepDecorator Define + +hi def link bicepComment Comment +hi def link bicepTodo Todo + +hi def link bicepValueBool Boolean +hi def link bicepValueDec Number +hi def link bicepValueNull Constant + +hi def link bicepValueString String +hi def link bicepStringInterp Identifier +hi def link bicepEscape Special + +hi def link bicepRepeat Repeat +hi def link bicepConditional Conditional + +hi def link bicepBraces Delimiter + + +let b:current_syntax = 'bicep' + +let &cpoptions = s:cpo_save +unlet s:cpo_save |