on master help sign in
Add language support for rego (OpenPolicyAgent) (#6415)
5d7c90cJuan C. Müller
book/src/generated/lang-support.md+1
@@ -112,6 +112,7 @@
112| r | ✓ | | | `R` |
112| r | ✓ | | | `R` |
113| racket | ✓ | | | `racket` |
113| racket | ✓ | | | `racket` |
114| regex | ✓ | | | |
114| regex | ✓ | | | |
115+| rego | ✓ | | | `regols` |
115| rescript | ✓ | ✓ | | `rescript-language-server` |
116| rescript | ✓ | ✓ | | `rescript-language-server` |
116| rmarkdown | ✓ | | ✓ | `R` |
117| rmarkdown | ✓ | | ✓ | `R` |
117| ron | ✓ | | ✓ | |
118| ron | ✓ | | ✓ | |
languages.toml+15
@@ -2383,3 +2383,18 @@ injection-regex = "vhdl"
2383[[grammar]]
2383[[grammar]]
2384name = "vhdl"
2384name = "vhdl"
2385source = { git = "https://github.com/teburd/tree-sitter-vhdl", rev = "c57313adee2231100db0a7880033f6865deeadb2" }
2385source = { git = "https://github.com/teburd/tree-sitter-vhdl", rev = "c57313adee2231100db0a7880033f6865deeadb2" }
2386+
2387+[[language]]
2388+name = "rego"
2389+roots = []
2390+scope = "source.rego"
2391+injection-regex = "rego"
2392+file-types = ["rego"]
2393+auto-format = true
2394+comment-token = "#"
2395+language-server = { command = "regols" }
2396+grammar = "rego"
2397+
2398+[[grammar]]
2399+name = "rego"
2400+source = { git = "https://github.com/FallenAngel97/tree-sitter-rego", rev = "b2667c975f07b33be3ceb83bea5cfbad88095866" }
runtime/queries/rego/highlights.scmnew file+68
@@ -0,0 +1,68 @@
1+[
2+ (import)
3+] @keyword.control.import
4+
5+[
6+ (package)
7+] @namespace
8+
9+[
10+ (with)
11+ (as)
12+ (every)
13+ (some)
14+ (in)
15+ (default)
16+ "null"
17+] @keyword.control
18+
19+[
20+ (not)
21+ (if)
22+ (contains)
23+ (else)
24+] @keyword.control.conditional
25+
26+[
27+ (boolean)
28+] @constant.builtin.boolean
29+
30+[
31+ (assignment_operator)
32+ (bool_operator)
33+ (arith_operator)
34+ (bin_operator)
35+] @operator
36+
37+[
38+ (string)
39+ (raw_string)
40+] @string
41+
42+(term (ref (var))) @variable
43+
44+(comment) @comment.line
45+
46+(number) @constant.numeric.integer
47+
48+(expr_call func_name: (fn_name (var) @function .))
49+
50+(expr_call func_arguments: (fn_args (expr) @variable.parameter))
51+
52+(rule_args (term) @variable.parameter)
53+
54+[
55+ (open_paren)
56+ (close_paren)
57+ (open_bracket)
58+ (close_bracket)
59+ (open_curly)
60+ (close_curly)
61+] @punctuation.bracket
62+
63+(rule (rule_head (var) @function.method))
64+
65+(rule
66+ (rule_head (term (ref (var) @namespace)))
67+ (rule_body (query (literal (expr (expr_infix (expr (term (ref (var)) @_output)))))) (#eq? @_output @namespace))
68+)
runtime/queries/rego/injections.scmnew file+2
@@ -0,0 +1,2 @@
1+((comment) @injection.content
2+ (#set! injection.language "comment"))