" Vim syntax file " Language: rego policy language " Maintainer: Matt Dunford (zenmatic@gmail.com) " URL: https://github.com/zenmatic/vim-syntax-rego " Last Change: 2022 Dec 4 " https://www.openpolicyagent.org/docs/latest/policy-language/ " quit when a (custom) syntax file was already loaded if exists("b:current_syntax") finish endif syn case match syn keyword regoDirective package import allow deny syn keyword regoKeywords as default else every false if import package not null true with some in print syn keyword regoFuncAggregates count sum product max min sort all any syn match regoFuncArrays "\" syn keyword regoFuncSets intersection union syn keyword regoFuncStrings concat /\/ endswith format_int indexof indexof_n lower replace split sprintf startswith substring trim trim_left trim_prefix trim_right trim_suffix trim_space upper syn match regoFuncStrings2 "\" syn match regoFuncStrings3 "\" syn keyword regoFuncRegex re_match syn match regoFuncRegex2 "\" syn match regoFuncUuid "\" syn match regoFuncBits "\" syn match regoFuncObject "\" syn match regoFuncGlob "\" syn match regoFuncUnits "\" syn keyword regoFuncTypes is_number is_string is_boolean is_array is_set is_object is_null type_name syn match regoFuncEncoding1 "\" syn match regoFuncEncoding2 "\" syn match regoFuncEncoding3 "\" syn match regoFuncEncoding4 "\<\(json\|yaml\)\.\(is_valid\|marshal\|unmarshal\)\>" syn match regoFuncEncoding5 "\" syn match regoFuncTokenSigning "\" syn match regoFuncTokenVerification1 "\" syn match regoFuncTokenVerification2 "\" syn match regoFuncTime "\" syn match regoFuncCryptography "\" syn match regoFuncCryptography "\" syn match regoFuncGraphQl "\" syn match regoFuncHttp "\" syn match regoFuncNet "\" syn match regoFuncRego "\" syn match regoFuncOpa "\" syn keyword regoFuncDebugging trace syn match regoFuncRand "\" syn match regoFuncNumbers "\" syn keyword regoFuncNumbers round ceil floor abs syn match regoFuncSemver "\" syn keyword regoFuncConversions to_number syn match regoFuncHex "\" hi def link regoFuncUuid Statement hi def link regoFuncBits Statement hi def link regoDirective Statement hi def link regoKeywords Statement hi def link regoFuncAggregates Statement hi def link regoFuncArrays Statement hi def link regoFuncSets Statement hi def link regoFuncStrings Statement hi def link regoFuncStrings2 Statement hi def link regoFuncStrings3 Statement hi def link regoFuncRegex Statement hi def link regoFuncRegex2 Statement hi def link regoFuncGlob Statement hi def link regoFuncUnits Statement hi def link regoFuncTypes Statement hi def link regoFuncEncoding1 Statement hi def link regoFuncEncoding2 Statement hi def link regoFuncEncoding3 Statement hi def link regoFuncEncoding4 Statement hi def link regoFuncEncoding5 Statement hi def link regoFuncTokenSigning Statement hi def link regoFuncTokenVerification1 Statement hi def link regoFuncTokenVerification2 Statement hi def link regoFuncTime Statement hi def link regoFuncCryptography Statement hi def link regoFuncGraphs Statement hi def link regoFuncGraphQl Statement hi def link regoFuncGraphs2 Statement hi def link regoFuncHttp Statement hi def link regoFuncNet Statement hi def link regoFuncRego Statement hi def link regoFuncOpa Statement hi def link regoFuncDebugging Statement hi def link regoFuncObject Statement hi def link regoFuncNumbers Statement hi def link regoFuncSemver Statement hi def link regoFuncConversions Statement hi def link regoFuncHex Statement hi def link regoFuncRand Statement " https://www.openpolicyagent.org/docs/latest/policy-language/#strings syn region regoString start=+"+ skip=+\\\\\|\\"+ end=+"+ syn region regoRawString start=+`+ end=+`+ hi def link regoString String hi def link regoRawString String " Comments; their contents syn keyword regoTodo contained TODO FIXME XXX BUG syn cluster regoCommentGroup contains=regoTodo syn region regoComment start="#" end="$" contains=@regoCommentGroup,@Spell hi def link regoComment Comment hi def link regoTodo Todo let b:current_syntax = 'rego'