Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/fga/highlights.scm')
| -rw-r--r-- | runtime/queries/fga/highlights.scm | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/runtime/queries/fga/highlights.scm b/runtime/queries/fga/highlights.scm new file mode 100644 index 00000000..402f6f4d --- /dev/null +++ b/runtime/queries/fga/highlights.scm @@ -0,0 +1,97 @@ +; Expressions + +(call_expression + function: (identifier) @function) + +(call_expression + function: (selector_expression + field: (identifier) @function.method)) + + +; Type Definitions + +(type_declaration (identifier) @type) + +(definition + relation: (identifier) @variable) + + +; Relation Definitions + +(relation_def (identifier) @variable.other.member) + +(direct_relationship (identifier) @type) +(direct_relationship (conditional (identifier) @function)) + +(relation_ref + . (identifier) @type + (identifier) @variable.other.member) + +(indirect_relation + . (identifier) @variable.other.member + (identifier) @variable) + + +; Condition Defintions + +(condition_declaration + name: (identifier) @function) + +(condition_declaration (param (identifier) @variable.parameter)) + +(binary_expression (identifier) @variable) + +((type_identifier) @type.builtin + (#any-of? @type.builtin "string" "int" "map" "uint" "list" "timestamp" "bool" "duration" "double" "ipaddress")) + + +; Operators + +[ + "!=" + "%" + "&" + "&&" + "&^" + "*" + "+" + "-" + "/" + "<" + "<<" + "<=" + "==" + ">" + ">=" + ">>" + "^" + "|" + "||" +] @operator + +[ + "or" + "and" + "but not" + "from" + "with" +] @keyword.operator + +; Keywords + +[ + "model" + "schema" + "type" + "relations" + "define" +] @keyword + +[ + "condition" +] @keyword.function + +; Misc + +(version) @constant.numeric +(comment) @comment |