aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/ocaml
diff options
context:
space:
mode:
authorAlexander Brevig2024-03-08 01:54:17 +0000
committerGitHub2024-03-08 01:54:17 +0000
commitfd89c3c8335399e344e038f1141ea0657653a591 (patch)
treec843bfdc9983a71c335b117189b5e093b1f8ff36 /runtime/queries/ocaml
parent301dfb07ccf3df41c381300dddb760bf76745cf5 (diff)
fix: close #9771 fix comments with `(` and `)` (#9800)
* fix: close #9771 update OCaml * fix: no longer match on ( ) as the underlying grammar handles these * fix: implement excellent corrections from review * fix: module -> namespace to match theme scopes
Diffstat (limited to 'runtime/queries/ocaml')
-rw-r--r--runtime/queries/ocaml/highlights.scm141
1 files changed, 65 insertions, 76 deletions
diff --git a/runtime/queries/ocaml/highlights.scm b/runtime/queries/ocaml/highlights.scm
index 9d3bf4c8..f2a4f0a4 100644
--- a/runtime/queries/ocaml/highlights.scm
+++ b/runtime/queries/ocaml/highlights.scm
@@ -6,9 +6,12 @@
; Types
;------
-[(class_name) (class_type_name) (type_constructor)] @type
+(
+ (type_constructor) @type.builtin
+ (#match? @type.builtin "^(int|char|bytes|string|float|bool|unit|exn|array|list|option|int32|int64|nativeint|format6|lazy_t)$")
+)
-(type_variable) @type.parameter
+[(class_name) (class_type_name) (type_constructor)] @type
[(constructor_name) (tag)] @constructor
@@ -29,27 +32,34 @@
(method_name) @function.method
-; Variables
-;----------
-
-(value_pattern) @variable.parameter
-
; Application
;------------
+(
+ (value_name) @function.builtin
+ (#match? @function.builtin "^(raise(_notrace)?|failwith|invalid_arg)$")
+)
+
(infix_expression
left: (value_path (value_name) @function)
- (infix_operator) @operator
+ operator: (concat_operator) @operator
(#eq? @operator "@@"))
(infix_expression
- (infix_operator) @operator
+ operator: (rel_operator) @operator
right: (value_path (value_name) @function)
(#eq? @operator "|>"))
(application_expression
function: (value_path (value_name) @function))
+; Variables
+;----------
+
+[(value_name) (type_variable)] @variable
+
+(value_pattern) @variable.parameter
+
; Properties
;-----------
@@ -58,55 +68,68 @@
; Constants
;----------
-[(boolean) (unit)] @constant
-
-[(number) (signed_number)] @constant.numeric.integer
+(boolean) @constant.builtin.boolean
-(character) @constant.character
+[(number) (signed_number)] @constant.numeric
-(string) @string
+[(string) (character)] @string
(quoted_string "{" @string "}" @string) @string
(escape_sequence) @constant.character.escape
+(conversion_specification) @string.special
+
+; Operators
+;----------
+
+(match_expression (match_operator) @keyword)
+
+(value_definition [(let_operator) (let_and_operator)] @keyword)
+
[
- (conversion_specification)
- (pretty_printing_indication)
-] @punctuation.special
+ (prefix_operator)
+ (sign_operator)
+ (pow_operator)
+ (mult_operator)
+ (add_operator)
+ (concat_operator)
+ (rel_operator)
+ (and_operator)
+ (or_operator)
+ (assign_operator)
+ (hash_operator)
+ (indexing_operator)
+ (let_operator)
+ (let_and_operator)
+ (match_operator)
+] @operator
+
+["*" "#" "::" "<-"] @operator
; Keywords
;---------
[
- "and" "as" "assert" "begin" "class" "constraint"
- "end" "external" "in"
- "inherit" "initializer" "lazy" "let" "match" "method" "module"
- "mutable" "new" "nonrec" "object" "of" "private" "rec" "sig" "struct"
- "type" "val" "virtual" "when" "with"
+ "and" "as" "assert" "begin" "class" "constraint" "do" "done" "downto" "else"
+ "end" "exception" "external" "for" "fun" "function" "functor" "if" "in"
+ "include" "inherit" "initializer" "lazy" "let" "match" "method" "module"
+ "mutable" "new" "nonrec" "object" "of" "open" "private" "rec" "sig" "struct"
+ "then" "to" "try" "type" "val" "virtual" "when" "while" "with"
] @keyword
-["fun" "function" "functor"] @keyword.function
-
-["if" "then" "else"] @keyword.control.conditional
-
-["exception" "try"] @keyword.control.exception
-
-["include" "open"] @keyword.control.import
-
-["for" "to" "downto" "while" "do" "done"] @keyword.control.repeat
+; Punctuation
+;------------
-; Macros
-;-------
+(attribute ["[@" "]"] @punctuation.special)
+(item_attribute ["[@@" "]"] @punctuation.special)
+(floating_attribute ["[@@@" "]"] @punctuation.special)
+(extension ["[%" "]"] @punctuation.special)
+(item_extension ["[%%" "]"] @punctuation.special)
+(quoted_extension ["{%" "}"] @punctuation.special)
+(quoted_item_extension ["{%%" "}"] @punctuation.special)
-(attribute ["[@" "]"] @attribute)
-(item_attribute ["[@@" "]"] @attribute)
-(floating_attribute ["[@@@" "]"] @attribute)
-(extension ["[%" "]"] @function.macro)
-(item_extension ["[%%" "]"] @function.macro)
-(quoted_extension ["{%" "}"] @function.macro)
-(quoted_item_extension ["{%%" "}"] @function.macro)
-"%" @function.macro
+"%" @punctuation.special
["(" ")" "[" "]" "{" "}" "[|" "|]" "[<" "[>"] @punctuation.bracket
@@ -117,46 +140,12 @@
"->" ";;" ":>" "+=" ":=" ".."
] @punctuation.delimiter
-; Operators
-;----------
-
-[
- (prefix_operator)
- (sign_operator)
- (infix_operator)
- (hash_operator)
- (indexing_operator)
- (let_operator)
- (and_operator)
- (match_operator)
-] @operator
-
-(match_expression (match_operator) @keyword)
-
-(value_definition [(let_operator) (and_operator)] @keyword)
-
-;; TODO: this is an error now
-;(prefix_operator "!" @operator)
-
-(infix_operator ["&" "+" "-" "=" ">" "|" "%"] @operator)
-
-(signed_number ["+" "-"] @operator)
-
-["*" "#" "::" "<-"] @operator
-
; Attributes
;-----------
-(attribute_id) @variable.other.member
+(attribute_id) @tag
; Comments
;---------
[(comment) (line_number_directive) (directive) (shebang)] @comment
-
-(ERROR) @error
-
-; Blanket highlights
-; ------------------
-
-[(value_name) (type_variable)] @variable