summaryrefslogtreecommitdiff
path: root/runtime/queries/nickel/highlights.scm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/nickel/highlights.scm')
-rw-r--r--runtime/queries/nickel/highlights.scm67
1 files changed, 67 insertions, 0 deletions
diff --git a/runtime/queries/nickel/highlights.scm b/runtime/queries/nickel/highlights.scm
new file mode 100644
index 00000000..a204dfca
--- /dev/null
+++ b/runtime/queries/nickel/highlights.scm
@@ -0,0 +1,67 @@
+(types) @type
+(type_builtin) @type.builtin
+"Array" @type.builtin
+
+(enum_tag) @constructor
+
+"null" @constant.builtin
+(bool) @constant.builtin.boolean
+(str_esc_char) @constant.character.escape
+(num_literal) @constant.numeric
+
+(str_chunks) @string
+
+; NOTE: Nickel has no block comments
+(comment) @comment.line
+; Nickel doesn't use comments for documentation, ideally this would be
+; `@documentation` or something similar
+(annot_atom
+ doc: (static_string) @comment.block.documentation
+)
+
+(record_operand (atom (ident) @variable))
+(let_expr
+ "let" @keyword
+ pat: (pattern
+ (ident) @variable
+ )
+ "in" @keyword
+)
+(fun_expr
+ "fun" @keyword.function
+ pats:
+ (pattern
+ id: (ident) @variable.parameter
+ )+
+ "=>" @operator
+)
+(record_field) @variable.other.member
+
+[
+ "."
+] @punctuation.delimiter
+[
+ "{" "}"
+ "(" ")"
+ "[|" "|]"
+ "[" "]"
+] @punctuation.bracket
+(multstr_start) @punctuation.bracket
+(multstr_end) @punctuation.bracket
+(interpolation_start) @punctuation.bracket
+(interpolation_end) @punctuation.bracket
+
+["forall" "default" "doc"] @keyword
+["if" "then" "else" "switch"] @keyword.control.conditional
+"import" @keyword.control.import
+
+(infix_expr
+ op: (_) @operator
+)
+
+(applicative
+ t1: (applicative
+ (record_operand) @function
+ )
+)
+(builtin) @function.builtin