diff options
Diffstat (limited to 'syntax')
-rw-r--r-- | syntax/rego.vim | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/syntax/rego.vim b/syntax/rego.vim new file mode 100644 index 00000000..5fa20d1a --- /dev/null +++ b/syntax/rego.vim @@ -0,0 +1,61 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rego') == -1 + +" Vim syntax file +" Language: Rego (http://github.com/open-policy-agent/opa) +" Maintainers: Torin Sandall <torinsandall@gmail.com> + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match + +" language keywords +syn keyword regoKeyword package import as not with default else some + +" comments +syn match regoComment "#.*$" contains=regoTodo,@Spell +syn keyword regoTodo FIXME XXX TODO contained + +" data types +syn keyword regoNull null +syn keyword regoBoolean true false +syn match regoNumber "\<\(0[0-7]*\|0[xx]\x\+\|\d\+\)[ll]\=\>" +syn match regoNumber "\(\<\d\+\.\d*\|\.\d\+\)\([ee][-+]\=\d\+\)\=[ffdd]\=" +syn match regoNumber "\<\d\+[ee][-+]\=\d\+[ffdd]\=\>" +syn match regoNumber "\<\d\+\([ee][-+]\=\d\+\)\=[ffdd]\>" +syn region regoString start="\"" skip="\\\"" end="\"" contains=regoStringEscape +syn match regoStringEscape "\\u[0-9a-fA-F]\{4}" contained +syn match regoStringEscape "\\[nrfvb\\\"]" contained + +" rules +syn match regoRuleName "^\(\w\+\)" +syn region regoBody start="{" end="}" transparent + +" operators +syn match regoEquality "=" +syn match regoInequality "[<>!]" +syn match regoArith "[+-/*&|]" +syn match regoBuiltin "\w\+(" nextgroup=regoBuiltinArgs contains=regoBuiltinArgs +syn region regoBuiltinArgs start="(" end=")" contained contains=regoNull,regoBoolean,regoNumber,regoString + +" highlighting +hi link regoKeyword Keyword +hi link regoNull Function +hi link regoBoolean Boolean +hi link regoNumber Number +hi link regoString String + +hi link regoRuleName Function + +hi link regoEquality Keyword +hi link regoInequality Keyword +hi link regoArith Keyword +hi link regoBuiltin Type + +hi link regoComment Comment +hi link regoTodo Todo + +endif |