diff options
author | Alexander Brevig | 2024-03-08 01:54:17 +0000 |
---|---|---|
committer | GitHub | 2024-03-08 01:54:17 +0000 |
commit | fd89c3c8335399e344e038f1141ea0657653a591 (patch) | |
tree | c843bfdc9983a71c335b117189b5e093b1f8ff36 /runtime | |
parent | 301dfb07ccf3df41c381300dddb760bf76745cf5 (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')
-rw-r--r-- | runtime/queries/comment/highlights.scm | 5 | ||||
-rw-r--r-- | runtime/queries/ocaml/highlights.scm | 141 |
2 files changed, 65 insertions, 81 deletions
diff --git a/runtime/queries/comment/highlights.scm b/runtime/queries/comment/highlights.scm index 4cefcdf7..ba26ca0b 100644 --- a/runtime/queries/comment/highlights.scm +++ b/runtime/queries/comment/highlights.scm @@ -1,8 +1,3 @@ -[ - "(" - ")" -] @punctuation.bracket - ":" @punctuation.delimiter ; Hint level tags 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 |