Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/bovex/highlights.scm')
-rw-r--r--runtime/queries/bovex/highlights.scm88
1 files changed, 88 insertions, 0 deletions
diff --git a/runtime/queries/bovex/highlights.scm b/runtime/queries/bovex/highlights.scm
new file mode 100644
index 00000000..cc4ffe0a
--- /dev/null
+++ b/runtime/queries/bovex/highlights.scm
@@ -0,0 +1,88 @@
+[(code_comment) (layout_comment)] @comment.block
+
+(do_decl "do" @keyword.control)
+(val_decl "val" @keyword.storage.type)
+(fun_decl ["fun" "and"] @keyword.storage.type)
+(datatype_decl ["datatype" "and"] @keyword.storage.type)
+(datatype_arm "of" @keyword.storage.type)
+(object_decl ["object" "of"] @keyword.storage.type)
+(type_decl "type" @keyword.storage.type)
+(local_decl ["local" "in" "end"] @keyword.storage.modifier)
+(open_decl "open" @keyword.control)
+(import_decl "import" @keyword.control.import)
+(with_expr ["with" "without"] @keyword.operator)
+(orelse_expr ["orelse" "otherwise"] @keyword.operator)
+(andalso_expr ["andalso" "andthen"] @keyword.operator)
+(fn_expr ["fn" "as"] @keyword.function)
+(if_expr ["if" "then" "else"] @keyword.control.conditional)
+(case_expr ["case" "of"] @keyword.control)
+(fail_expr "fail" @keyword.control)
+(let_expr ["let" "in" "end"] @keyword.storage.modifier)
+(pat "as" @keyword.operator)
+
+(boolean_lit) @constant.builtin.boolean
+(numeric_lit) @constant.numeric.integer
+(float_lit) @constant.numeric.float
+(string_lit) @string.quoted.double
+(backslash_escape) @constant.character.escape
+
+["=" ":" ","] @punctuation.delimiter
+["->" "=>"] @operator
+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
+
+[(ident) (label)] @variable.other
+(type_ident) @type
+(atomic_pat (ident) @variable.other)
+(pat (app_pat (atomic_pat (ident) @variable.parameter)))
+
+(type_var) @type.parameter
+(atomic_type (type_ident) @type.builtin)
+[(record_type) (product_type) (app_type) (arrow_type)] @type
+
+(atomic_expr (ident) @variable.other)
+(project_expr) @variable.member
+(field_binding (label) @variable.member.private)
+(field_binding (expr) @variable.other)
+(record_pat (ident) @variable.member.private)
+
+(app_expr
+ (app_expr (atomic_expr (ident) @function.call))
+ (atomic_expr))
+(app_expr
+ _
+ [":=" "@" "::" "o" "==" "!=" "==." "!=."
+ "<" "<=" ">" ">=" "<." "<=." ">." ">=."
+ "+" "-" "+." "-." "*" "*." "/" "/." "div" "mod"
+ "shl" "shr" "andb" "xorb" "orb"] @operator
+ _)
+
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "b")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.bold))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "it")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.italic))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "rm")))
+ (atomic_expr (layout_lit)))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#match? @function.builtin "^(tt|courier|fixedersys)$")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.raw.inline))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "title")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.heading.1))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "section")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.heading.2))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "subsection")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.heading.3))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "subsubsection")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.heading.4))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "paragraph")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.heading.5))))
+(app_expr
+ (app_expr (atomic_expr (ident) @function.builtin (#eq? @function.builtin "blockquote")))
+ (atomic_expr (layout_lit (layout_content (layout_text) @markup.quote))))