diff --git a/extensions/ocaml/languages/ocaml-interface/brackets.scm b/extensions/ocaml/languages/ocaml-interface/brackets.scm index f05821c17ccf2531578d5076eef18ecdab32ee2f..e7e8145eba114ec12557df13de2b4e73e1ff4779 100644 --- a/extensions/ocaml/languages/ocaml-interface/brackets.scm +++ b/extensions/ocaml/languages/ocaml-interface/brackets.scm @@ -1,3 +1,2 @@ ("(" @open ")" @close) ("{" @open "}" @close) -("<" @open ">" @close) diff --git a/extensions/ocaml/languages/ocaml-interface/config.toml b/extensions/ocaml/languages/ocaml-interface/config.toml index a1efdf18df22fb15ecc7cc2dd64f0610e3274107..a4378ec3edbab60a2e56bb7bc7aca7d8bd1af482 100644 --- a/extensions/ocaml/languages/ocaml-interface/config.toml +++ b/extensions/ocaml/languages/ocaml-interface/config.toml @@ -2,11 +2,10 @@ name = "OCaml Interface" code_fence_block_name = "ocaml" grammar = "ocaml_interface" path_suffixes = ["mli"] -block_comment = ["(* ", "*)"] +block_comment = ["(* ", " *)"] autoclose_before = ";,=)}" brackets = [ { start = "{", end = "}", close = true, newline = true }, - { start = "<", end = ">", close = true, newline = true }, { start = "[", end = "]", close = true, newline = true }, { start = "(", end = ")", close = true, newline = true } ] diff --git a/extensions/ocaml/languages/ocaml/brackets.scm b/extensions/ocaml/languages/ocaml/brackets.scm index 269d87778d70b2abc82c96b0a825683122df074d..1f5ee9bfa34682d4834b6a62b418b6854017504e 100644 --- a/extensions/ocaml/languages/ocaml/brackets.scm +++ b/extensions/ocaml/languages/ocaml/brackets.scm @@ -2,5 +2,4 @@ ("[" @open "]" @close) ("[|" @open "|]" @close) ("{" @open "}" @close) -("<" @open ">" @close) ("\"" @open "\"" @close) diff --git a/extensions/ocaml/languages/ocaml/config.toml b/extensions/ocaml/languages/ocaml/config.toml index 2cd81bde52c6ead3aad21914a0876d2f22cd02d0..7d5b4348d66bc3742d54165840aa6696e8543056 100644 --- a/extensions/ocaml/languages/ocaml/config.toml +++ b/extensions/ocaml/languages/ocaml/config.toml @@ -1,11 +1,11 @@ name = "OCaml" grammar = "ocaml" path_suffixes = ["ml"] -block_comment = ["(* ", "*)"] +block_comment = ["(* ", " *)"] autoclose_before = ";,=)}]" brackets = [ { start = "{", end = "}", close = true, newline = true }, - { start = "<", end = ">", close = true, newline = true }, + { start = "{|", end = "|", close = true, newline = true, not_in = ["string"] }, { start = "[", end = "]", close = true, newline = true }, { start = "[|", end = "|", close = true, newline = true, not_in = ["string"] }, { start = "(", end = ")", close = true, newline = true }, diff --git a/extensions/ocaml/languages/ocaml/highlights.scm b/extensions/ocaml/languages/ocaml/highlights.scm index 6623e1e5435fa5b4129be4b19e032de4895b6545..8029d3cc22edcffbfcac1ed5006c27e7c7487a7f 100644 --- a/extensions/ocaml/languages/ocaml/highlights.scm +++ b/extensions/ocaml/languages/ocaml/highlights.scm @@ -44,12 +44,27 @@ ; Variables ;---------- -[(type_variable) (value_pattern)] @variable +(value_pattern) @variable + +(type_variable) @variable.special ; Properties ;----------- -[(label_name) (field_name) (instance_variable_name)] @property +[(field_name) (instance_variable_name)] @property + +; Labels +;------- + +[(label_name) (parameter)] @label + +(parameter + pattern: (value_pattern) @label) +; despite the above rule, we should still label value_pattern as a variable +; when a label name is present +(parameter + (label_name) + pattern: (value_pattern) @variable) ; Constants ;---------- @@ -112,7 +127,7 @@ ; Punctuation ;------------ -["(" ")" "[" "]" "{" "}" "[|" "|]" "[<" "[>"] @punctuation.bracket +["(" ")" "[" "]" "{" "}" "[|" "|]" "[<" "[>" "[@@" "[@" "[%"] @punctuation.bracket (object_type ["<" ">"] @punctuation.bracket) @@ -132,7 +147,7 @@ (item_extension) (quoted_extension) (quoted_item_extension) - "%" + ] @attribute (attribute_id) @tag