lib/code_rippa/syntax/ocaml.syntax in code_rippa-0.0.7 vs lib/code_rippa/syntax/ocaml.syntax in code_rippa-1.0.0
- old
+ new
@@ -1,764 +1,766 @@
----
+---
name: OCaml
-fileTypes:
+fileTypes:
- ml
- mli
scopeName: source.ocaml
-repository:
- moduleref:
- patterns:
+repository:
+ moduleref:
+ patterns:
- name: meta.module-reference.ocaml
- beginCaptures:
- "1":
+ beginCaptures:
+ '1':
name: support.other.module.ocaml
- "2":
+ '2':
name: punctuation.separator.module-reference.ocaml
- match: \b([A-Z][a-zA-Z0-9'_]*)(\.)
- variables:
- patterns:
+ match: "\\b([A-Z][a-zA-Z0-9'_]*)(\\.)"
+ variables:
+ patterns:
- name: variable.parameter.unit.ocaml
- match: \(\)
+ match: "\\(\\)"
- include: "#constants"
- include: "#moduleref"
- name: variable.parameter.labeled.ocaml
- begin: (~)([a-z][a-zA-Z0-9'_]*)(\s*:\s*)?
- beginCaptures:
- "1":
+ begin: "(~)([a-z][a-zA-Z0-9'_]*)(\\s*:\\s*)?"
+ beginCaptures:
+ '1':
name: punctuation.definition.labeled-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.ocaml
- "3":
+ '3':
name: punctuation.separator.label.ocaml
- end: \s
- patterns:
+ end: "\\s"
+ patterns:
- include: "#variables"
- name: variable.parameter.optional.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.definition.optional-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.optional.ocaml
- match: (\?)([a-z][a-zA-Z0-9_]*)
+ match: "(\\?)([a-z][a-zA-Z0-9_]*)"
- name: variable.parameter.optional.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.optional-parameter.ocaml
- begin: (\?)(\()([a-z_][a-zA-Z0-9'_]*)\s*(=)
- beginCaptures:
- "1":
+ begin: "(\\?)(\\()([a-z_][a-zA-Z0-9'_]*)\\s*(=)"
+ beginCaptures:
+ '1':
name: punctuation.definition.optional-parameter.ocaml
- "2":
+ '2':
name: punctuation.definition.optional-parameter.ocaml
- "3":
+ '3':
name: entity.name.tag.label.optional.ocaml
- "4":
+ '4':
name: punctuation.separator.optional-parameter-assignment.ocaml
- end: (\))
- patterns:
- - include: $self
+ end: "(\\))"
+ patterns:
+ - include: "$self"
- name: meta.parameter.type-constrained.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.section.type-constraint.ocaml
- begin: (\()(?=(~[a-z][a-zA-Z0-9_]*:|("(\\"|[^"])*")|[^\(\)~"])+(?<!:)(:>|:(?![:=])))
- beginCaptures:
- "1":
+ begin: "(\\()(?=(~[a-z][a-zA-Z0-9_]*:|(\"(\\\\\"|[^\"])*\")|[^\\(\\)~\"])+(?<!:)(:>|:(?![:=])))"
+ beginCaptures:
+ '1':
name: punctuation.section.type-constraint.ocaml
- end: (\))
- patterns:
+ end: "(\\))"
+ patterns:
- name: storage.type.ocaml
- begin: (?<!:)(:>|:(?![:=]))
- beginCaptures:
- "1":
+ begin: "(?<!:)(:>|:(?![:=]))"
+ beginCaptures:
+ '1':
name: punctuation.separator.type-constraint.ocaml
- end: (?=\))
- patterns:
+ end: "(?=\\))"
+ patterns:
- name: meta.paren.group
- begin: \(
- end: \)
+ begin: "\\("
+ end: "\\)"
- include: "#variables"
- include: "#comments"
- name: meta.paren-group.ocaml
- begin: \(
- end: \)
- patterns:
+ begin: "\\("
+ end: "\\)"
+ patterns:
- include: "#variables"
- name: variable.parameter.tuple.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.tuple.ocaml
- begin: (\()
- beginCaptures:
- "1":
+ begin: "(\\()"
+ beginCaptures:
+ '1':
name: punctuation.definition.tuple.ocaml
- end: (\))
- patterns:
+ end: "(\\))"
+ patterns:
- include: "#matchpatterns"
- include: "#variables"
- name: punctuation.separator.tuple.ocaml
match: ","
- name: variable.parameter.record.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.record.ocaml
- begin: (\{)
- beginCaptures:
- "1":
+ begin: "(\\{)"
+ beginCaptures:
+ '1':
name: punctuation.definition.record.ocaml
- end: (\})
- patterns:
+ end: "(\\})"
+ patterns:
- include: "#moduleref"
- name: meta.recordfield.match.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.separator.record.ocaml
- begin: \b([a-z][a-zA-Z0-9'_]*)\s*(=)
- beginCaptures:
- "1":
+ begin: "\\b([a-z][a-zA-Z0-9'_]*)\\s*(=)"
+ beginCaptures:
+ '1':
name: entity.name.tag.record.ocaml
- "2":
+ '2':
name: punctuation.separator.record.field-assignment.ocaml
- end: (;)|(?=\})
- patterns:
+ end: "(;)|(?=\\})"
+ patterns:
- include: "#matchpatterns"
- include: "#storagetypes"
- name: variable.parameter.ocaml
- match: \b[a-z_][a-zA-Z0-9'_]*
- typedefs:
- patterns:
+ match: "\\b[a-z_][a-zA-Z0-9'_]*"
+ typedefs:
+ patterns:
- name: punctuation.separator.variant-definition.ocaml
- match: \|
+ match: "\\|"
- include: "#comments"
- name: meta.paren-group.ocaml
- begin: \(
- end: \)
- patterns:
+ begin: "\\("
+ end: "\\)"
+ patterns:
- include: "#typedefs"
- name: keyword.other.ocaml
- match: \bof\b
+ match: "\\bof\\b"
- include: "#storagetypes"
- name: storage.type.ocaml
- match: (?<=\s|\()['a-z_][a-zA-Z0-9_]*\b
+ match: "(?<=\\s|\\()['a-z_][a-zA-Z0-9_]*\\b"
- name: meta.module.type.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: support.other.module.ocaml
- "2":
+ '2':
name: storage.type.module.ocaml
- match: \b((?:[A-Z][a-zA-Z0-9'_]*)(?:\.[A-Z][a-zA-Z0-9'_]+)*)(\.[a-zA-Z0-9'_]+)
+ match: "\\b((?:[A-Z][a-zA-Z0-9'_]*)(?:\\.[A-Z][a-zA-Z0-9'_]+)*)(\\.[a-zA-Z0-9'_]+)"
- name: meta.polymorphic-variant.definition.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.polymorphic-variant.ocaml
- begin: (\[(>|<)?)
- beginCaptures:
- "1":
+ begin: "(\\[(>|<)?)"
+ beginCaptures:
+ '1':
name: punctuation.definition.polymorphic-variant.ocaml
- end: (\])
- patterns:
+ end: "(\\])"
+ patterns:
- include: "#typedefs"
- - include: $self
+ - include: "$self"
- name: punctuation.separator.algebraic-type.ocaml
- match: \|
- storagetypes:
- patterns:
+ match: "\\|"
+ storagetypes:
+ patterns:
- name: storage.type.ocaml
- match: \b(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)\b
+ match: "\\b(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)\\b"
- name: storage.type.variant.polymorphic.ocaml
match: "#[a-z_][a-zA-Z0-9_]*"
- module-signature:
- patterns:
+ module-signature:
+ patterns:
- name: meta.module.signature.val.ocaml
- begin: (val)\s+([a-z_][a-zA-Z0-9_']*)\s*(:)
- beginCaptures:
- "1":
+ begin: "(val)\\s+([a-z_][a-zA-Z0-9_']*)\\s*(:)"
+ beginCaptures:
+ '1':
name: keyword.other.ocaml
- "2":
+ '2':
name: entity.name.type.value-signature.ocaml
- "3":
+ '3':
name: punctuation.separator.type-constraint.ocaml
- end: (?=\b(type|val|external|class|module|end)\b)|^\s*$
- patterns:
+ end: "(?=\\b(type|val|external|class|module|end)\\b)|^\\s*$"
+ patterns:
- name: variable.parameter.optional.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.definition.optional-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.optional.ocaml
- "3":
+ '3':
name: punctuation.separator.optional-parameter.ocaml
- match: (\?)([a-z][a-zA-Z0-9_]*)\s*(:)
+ match: "(\\?)([a-z][a-zA-Z0-9_]*)\\s*(:)"
- name: variable.parameter.labeled.ocaml
- begin: (~)([a-z][a-zA-Z0-9'_]*)\s*(:)\s*
- beginCaptures:
- "1":
+ begin: "(~)([a-z][a-zA-Z0-9'_]*)\\s*(:)\\s*"
+ beginCaptures:
+ '1':
name: punctuation.definition.labeled-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.ocaml
- "3":
+ '3':
name: punctuation.separator.label.ocaml
- end: \s
- patterns:
+ end: "\\s"
+ patterns:
- include: "#variables"
- include: "#typedefs"
- name: meta.module.signature.external.ocaml
- begin: (external)\s+([a-z_][a-zA-Z0-9_']*)\s*(:)
- beginCaptures:
- "1":
+ begin: "(external)\\s+([a-z_][a-zA-Z0-9_']*)\\s*(:)"
+ beginCaptures:
+ '1':
name: keyword.other.ocaml
- "2":
+ '2':
name: entity.name.type.external-signature.ocaml
- "3":
+ '3':
name: punctuation.separator.type-constraint.ocaml
- end: (?=\b(type|val|external|class|module|end)\b)|^\s*$
- patterns:
+ end: "(?=\\b(type|val|external|class|module|end)\\b)|^\\s*$"
+ patterns:
- name: variable.parameter.optional.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.definition.optional-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.optional.ocaml
- "3":
+ '3':
name: punctuation.separator.optional-parameter.ocaml
- match: (\?)([a-z][a-zA-Z0-9_]*)\s*(:)
+ match: "(\\?)([a-z][a-zA-Z0-9_]*)\\s*(:)"
- name: variable.parameter.labeled.ocaml
- begin: (~)([a-z][a-zA-Z0-9'_]*)\s*(:)\s*
- beginCaptures:
- "1":
+ begin: "(~)([a-z][a-zA-Z0-9'_]*)\\s*(:)\\s*"
+ beginCaptures:
+ '1':
name: punctuation.definition.labeled-parameter.ocaml
- "2":
+ '2':
name: entity.name.tag.label.ocaml
- "3":
+ '3':
name: punctuation.separator.label.ocaml
- end: \s
- patterns:
+ end: "\\s"
+ patterns:
- include: "#variables"
- include: "#strings"
- include: "#typedefs"
- matchpatterns:
- patterns:
+ matchpatterns:
+ patterns:
- name: constant.language.universal-match.ocaml
- match: \b_\b
+ match: "\\b_\\b"
- name: punctuation.separator.match-pattern.ocaml
- match: \|(?=\s*\S)
+ match: "\\|(?=\\s*\\S)"
- name: meta.match-option.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.match-option.ocaml
- begin: (\()(?=(?!=.*?->).*?\|)
- beginCaptures:
- "1":
+ begin: "(\\()(?=(?!=.*?->).*?\\|)"
+ beginCaptures:
+ '1':
name: punctuation.definition.match-option.ocaml
- end: (\))
- patterns:
+ end: "(\\))"
+ patterns:
- name: punctuation.separator.match-option.ocaml
- match: \|
+ match: "\\|"
- include: "#matchpatterns"
- include: "#moduleref"
- include: "#constants"
- include: "#variables"
- - include: $self
- comments:
- patterns:
+ - include: "$self"
+ comments:
+ patterns:
- name: comment.block.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: comment.block.empty.ocaml
- match: \(\*\*?(\*)\)
+ match: "\\(\\*\\*?(\\*)\\)"
- name: comment.block.ocaml
- begin: \(\*
- end: \*\)
- patterns:
+ begin: "\\(\\*"
+ end: "\\*\\)"
+ patterns:
- include: "#comments"
- name: comment.block.ocamlyacc
- begin: /\*
- end: \*/
- patterns:
+ begin: "/\\*"
+ end: "\\*/"
+ patterns:
- include: "#comments"
- name: comment.block.string.quoted.double.ocaml
- begin: (?=[^\\])(")
+ begin: "(?=[^\\\\])(\")"
end: "\""
- patterns:
+ patterns:
- name: comment.block.string.constant.character.escape.ocaml
- match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
- lists:
- patterns:
+ match: "\\\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\])"
+ lists:
+ patterns:
- name: meta.list.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.list.end.ocaml
- begin: (\[)(?!\||<|>)
- beginCaptures:
- "1":
+ begin: "(\\[)(?!\\||<|>)"
+ beginCaptures:
+ '1':
name: punctuation.definition.list.begin.ocaml
- end: (?<!\||>)(])
- patterns:
+ end: "(?<!\\||>)(])"
+ patterns:
- include: "#lists"
- - include: $self
- strings:
- patterns:
+ - include: "$self"
+ strings:
+ patterns:
- name: string.quoted.double.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.string.end.ocaml
- begin: (?=[^\\])(")
- beginCaptures:
- "1":
+ begin: "(?=[^\\\\])(\")"
+ beginCaptures:
+ '1':
name: punctuation.definition.string.begin.ocaml
- end: (")
- patterns:
+ end: "(\")"
+ patterns:
- name: punctuation.separator.string.ignore-eol.ocaml
- match: \\$[ \t]*
+ match: "\\\\$[ \\t]*"
- name: constant.character.string.escape.ocaml
- match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
+ match: "\\\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\])"
- name: constant.character.regexp.escape.ocaml
- match: \\[\|\(\)1-9$^.*+?\[\]]
+ match: "\\\\[\\|\\(\\)1-9$^.*+?\\[\\]]"
- name: invalid.illegal.character.string.escape
- match: \\(?!(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]|[\|\(\)1-9$^.*+?\[\]]|$[ \t]*))(?:.)
- constants:
- patterns:
+ match: "\\\\(?!(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\]|[\\|\\(\\)1-9$^.*+?\\[\\]]|$[
+ \\t]*))(?:.)"
+ constants:
+ patterns:
- name: constant.language.pseudo-variable.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: meta.empty-typing-pair.ocaml
- "2":
+ '2':
name: meta.empty-typing-pair.parens.ocaml
- "3":
+ '3':
name: meta.empty-typing-pair.ocaml
- match: (?:\[\s*(\])|\((\))|\(\s*(\)))
+ match: "(?:\\[\\s*(\\])|\\((\\))|\\(\\s*(\\)))"
- name: constant.language.boolean.ocaml
- match: \b(true|false)\b
+ match: "\\b(true|false)\\b"
- name: constant.numeric.floating-point.ocaml
- match: \b-?[0-9][0-9_]*((\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))
+ match: "\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"
- name: constant.numeric.integer.nativeint.ocaml
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))n
+ match: "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))n"
- name: constant.numeric.integer.int64.ocaml
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))L
+ match: "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))L"
- name: constant.numeric.integer.int32.ocaml
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))l
+ match: "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))l"
- name: constant.numeric.integer.ocaml
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))
+ match: "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"
- name: constant.character.ocaml
match: "'(.|\\\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\]))'"
- arrays:
- patterns:
+ arrays:
+ patterns:
- name: meta.array.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.array.end.ocaml
- begin: (\[\|)
- beginCaptures:
- "1":
+ begin: "(\\[\\|)"
+ beginCaptures:
+ '1':
name: punctuation.definition.array.begin.ocaml
- end: (\|])
- patterns:
+ end: "(\\|])"
+ patterns:
- include: "#arrays"
- - include: $self
+ - include: "$self"
uuid: F816FA69-6EE8-11D9-BF2D-000D93589AF6
-foldingStartMarker: (\b(module|class|)\s.*?=\s*$|\bbegin|sig|struct|(object(\s*\(_?[a-z]+\))?)\s*$|\bwhile\s.*?\bdo\s*$|^let(?:\s+rec)?\s+[a-z_][a-zA-Z0-9_]*\s+(?!=)\S)
-patterns:
+foldingStartMarker: "(\\b(module|class|)\\s.*?=\\s*$|\\bbegin|sig|struct|(object(\\s*\\(_?[a-z]+\\))?)\\s*$|\\bwhile\\s.*?\\bdo\\s*$|^let(?:\\s+rec)?\\s+[a-z_][a-zA-Z0-9_]*\\s+(?!=)\\S)"
+patterns:
- name: meta.module.binding
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.module-binding.ocaml
- "2":
+ '2':
name: keyword.other.module-definition.ocaml
- "3":
+ '3':
name: support.other.module.ocaml
- "4":
+ '4':
name: punctuation.separator.module-binding.ocmal
- match: \b(let)\s+(module)\s+([A-Z][a-zA-Z0-9'_]*)\s*(=)
+ match: "\\b(let)\\s+(module)\\s+([A-Z][a-zA-Z0-9'_]*)\\s*(=)"
- name: meta.function.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.separator.function.type-constraint.ocaml
- "2":
+ '2':
name: storage.type.ocaml
- "3":
+ '3':
name: keyword.operator.ocaml
- "4":
+ '4':
name: keyword.operator.ocaml
- begin: \b(let|and)\s+(?!\(\*)((rec\s+)([a-z_][a-zA-Z0-9_']*)\b|([a-z_][a-zA-Z0-9_']*|\([^)]+\))(?=\s)((?=\s*=\s*(?=fun(?:ction)\b))|(?!\s*=)))
- beginCaptures:
- "1":
+ begin: "\\b(let|and)\\s+(?!\\(\\*)((rec\\s+)([a-z_][a-zA-Z0-9_']*)\\b|([a-z_][a-zA-Z0-9_']*|\\([^)]+\\))(?=\\s)((?=\\s*=\\s*(?=fun(?:ction)\\b))|(?!\\s*=)))"
+ beginCaptures:
+ '1':
name: keyword.other.function-definition.ocaml
- "3":
+ '3':
name: keyword.other.funtion-definition.ocaml
- "4":
+ '4':
name: entity.name.function.ocaml
- "5":
+ '5':
name: entity.name.function.ocaml
- end: (?:(:)\s*([^=]+))?(?:(=)|(=)\s*(?=fun(?:ction)\b))
- patterns:
+ end: "(?:(:)\\s*([^=]+))?(?:(=)|(=)\\s*(?=fun(?:ction)\\b))"
+ patterns:
- include: "#variables"
- name: meta.function.anonymous.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.function.anonymous.ocaml
- begin: (\()(?=fun\s)
- beginCaptures:
- "1":
+ begin: "(\\()(?=fun\\s)"
+ beginCaptures:
+ '1':
name: punctuation.definition.function.anonymous.ocaml
- end: (\))
- patterns:
+ end: "(\\))"
+ patterns:
- name: meta.function.anonymous.definition.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.separator.function-definition.ocaml
- begin: (?<=\()(fun)\s
- beginCaptures:
- "1":
+ begin: "(?<=\\()(fun)\\s"
+ beginCaptures:
+ '1':
name: keyword.other.function-definition.ocaml
- end: (->)
- patterns:
+ end: "(->)"
+ patterns:
- include: "#variables"
- - include: $self
+ - include: "$self"
- name: meta.type-definition-group.ocaml
- begin: ^\s*(?=type\s)
- end: \b(?=let|end)|^\s*$
- patterns:
+ begin: "^\\s*(?=type\\s)"
+ end: "\\b(?=let|end)|^\\s*$"
+ patterns:
- name: meta.type-definition.ocaml
- begin: \b(type|and)\s+([^=]*)(=)?
- beginCaptures:
- "1":
+ begin: "\\b(type|and)\\s+([^=]*)(=)?"
+ beginCaptures:
+ '1':
name: keyword.other.type-definition.ocaml
- "2":
+ '2':
name: storage.type.user-defined.ocaml
- "3":
+ '3':
name: punctuation.separator.type-definition.ocaml
- end: (?=\b(type|and|let|end)\b)|(?=^\s*$)
- patterns:
+ end: "(?=\\b(type|and|let|end)\\b)|(?=^\\s*$)"
+ patterns:
- include: "#typedefs"
- name: meta.pattern-match.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.separator.match-definition.ocaml
- "2":
+ '2':
name: keyword.control.match-condition.ocaml
- begin: \b(with|function)(?=(\s*$|.*->))\b|((?<!\|)(\|)(?!\|)(?=.*->))
- beginCaptures:
- "1":
+ begin: "\\b(with|function)(?=(\\s*$|.*->))\\b|((?<!\\|)(\\|)(?!\\|)(?=.*->))"
+ beginCaptures:
+ '1':
name: keyword.control.match-definition.ocaml
- "2":
+ '2':
name: keyword.other.function-definition.ocaml
- "3":
+ '3':
name: keyword.control.match-definition.ocaml
- end: (?:(->)|\b(when)\b|\s(?=\|))
- patterns:
+ end: "(?:(->)|\\b(when)\\b|\\s(?=\\|))"
+ patterns:
- include: "#matchpatterns"
- name: meta.class.type-definition.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.class-type-definition.ocaml
- "2":
+ '2':
name: entity.name.type.class-type.ocaml
- "4":
+ '4':
name: storage.type.user-defined.ocaml
- match: ^[ \t]*(class\s+type\s+)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
+ match: "^[ \\t]*(class\\s+type\\s+)((\\[\\s*('[A-Za-z][a-zA-Z0-9_']*(?:\\s*,\\s*'[A-Za-z][a-zA-Z0-9_']*)*)\\s*\\]\\s+)?[a-z_][a-zA-Z0-9'_]*)"
- name: meta.class.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.operator.ocaml
- begin: ^[ \t]*(class)(?:\s+(?!(?:virtual)\s+))((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
- beginCaptures:
- "1":
+ begin: "^[ \\t]*(class)(?:\\s+(?!(?:virtual)\\s+))((\\[\\s*('[A-Za-z][a-zA-Z0-9_']*(?:\\s*,\\s*'[A-Za-z][a-zA-Z0-9_']*)*)\\s*\\]\\s+)?[a-z_][a-zA-Z0-9'_]*)"
+ beginCaptures:
+ '1':
name: keyword.other.class-definition.ocaml
- "2":
+ '2':
name: entity.name.type.class.ocaml
- "4":
+ '4':
name: storage.type.user-defined.ocaml
- end: (=)
- patterns:
+ end: "(=)"
+ patterns:
- include: "#variables"
- name: meta.class.virtual.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.operator.ocaml
- begin: ^[ \t]*(class\s+virtual\s+)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
- beginCaptures:
- "1":
+ begin: "^[ \\t]*(class\\s+virtual\\s+)((\\[\\s*('[A-Za-z][a-zA-Z0-9_']*(?:\\s*,\\s*'[A-Za-z][a-zA-Z0-9_']*)*)\\s*\\]\\s+)?[a-z_][a-zA-Z0-9'_]*)"
+ beginCaptures:
+ '1':
name: keyword.other.class-definition.ocaml
- "2":
+ '2':
name: entity.name.type.class.ocaml
- "4":
+ '4':
name: storage.type.user-defined.ocaml
- end: (=)
- patterns:
+ end: "(=)"
+ patterns:
- include: "#variables"
- name: meta.class.virtual.type-definition.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.class-type-definition.ocaml
- "2":
+ '2':
name: entity.name.type.class-type.ocaml
- "4":
+ '4':
name: storage.type.user-defined.ocaml
- match: ^[ \t]*(class\s+type\s+virtual)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
+ match: "^[ \\t]*(class\\s+type\\s+virtual)((\\[\\s*('[A-Za-z][a-zA-Z0-9_']*(?:\\s*,\\s*'[A-Za-z][a-zA-Z0-9_']*)*)\\s*\\]\\s+)?[a-z_][a-zA-Z0-9'_]*)"
- name: meta.record.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.record.ocaml
- begin: (\{)
- beginCaptures:
- "1":
+ begin: "(\\{)"
+ beginCaptures:
+ '1':
name: punctuation.definition.record.ocaml
- end: (\})
- patterns:
+ end: "(\\})"
+ patterns:
- name: keyword.other.language.ocaml
- match: \bwith\b
+ match: "\\bwith\\b"
- name: meta.record.definition.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.operator.ocaml
- begin: (\bmutable\s+)?\b([a-z_][a-zA-Z0-9_']*)\s*(:)
- beginCaptures:
- "1":
+ begin: "(\\bmutable\\s+)?\\b([a-z_][a-zA-Z0-9_']*)\\s*(:)"
+ beginCaptures:
+ '1':
name: keyword.other.storage.modifier.ocaml
- "2":
+ '2':
name: source.ocaml
- "3":
+ '3':
name: punctuation.definition.record.ocaml
- end: (;|(?=}))
- patterns:
+ end: "(;|(?=}))"
+ patterns:
- include: "#typedefs"
- - include: $self
+ - include: "$self"
- name: meta.object.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.control.object.ocaml
- "2":
+ '2':
name: punctuation.terminator.expression.ocaml
- begin: \b(object)\s*(?:(\()(_?[a-z]+)(\)))?\s*$
- beginCaptures:
- "1":
+ begin: "\\b(object)\\s*(?:(\\()(_?[a-z]+)(\\)))?\\s*$"
+ beginCaptures:
+ '1':
name: keyword.other.object-definition.ocaml
- "2":
+ '2':
name: punctuation.definition.self-binding.ocaml
- "3":
+ '3':
name: entity.name.type.self-binding.ocaml
- "4":
+ '4':
name: punctuation.definition.self-binding.ocaml
- end: \b(end)\b
- patterns:
+ end: "\\b(end)\\b"
+ patterns:
- name: meta.method.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.operator.ocaml
- begin: \b(method)\s+(virtual\s+)?(private\s+)?([a-z_][a-zA-Z0-9'_]*)
- beginCaptures:
- "1":
+ begin: "\\b(method)\\s+(virtual\\s+)?(private\\s+)?([a-z_][a-zA-Z0-9'_]*)"
+ beginCaptures:
+ '1':
name: keyword.other.method-definition.ocaml
- "2":
+ '2':
name: keyword.other.method-definition.ocaml
- "3":
+ '3':
name: keyword.other.method-restriction.ocaml
- "4":
+ '4':
name: entity.name.function.method.ocaml
- end: (=|:)
- patterns:
+ end: "(=|:)"
+ patterns:
- include: "#variables"
- name: meta.object.type-constraint.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: storage.type.polymorphic-variant.ocaml
- "2":
+ '2':
name: storage.type.ocaml
- "3":
+ '3':
name: storage.type.user-defined.ocaml
- begin: (constraint)\s+([a-z_'][a-zA-Z0-9'_]*)\s+(=)
- beginCaptures:
- "1":
+ begin: "(constraint)\\s+([a-z_'][a-zA-Z0-9'_]*)\\s+(=)"
+ beginCaptures:
+ '1':
name: keyword.other.language.ocaml
- "2":
+ '2':
name: storage.type.user-defined.ocaml
- "3":
+ '3':
name: keyword.operator.ocaml
- end: (#[a-z_][a-zA-Z0-9'_]*)|(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)|([a-z_][a-zA-Z0-9'_]*)\s*$
- - include: $self
+ end: "(#[a-z_][a-zA-Z0-9'_]*)|(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)|([a-z_][a-zA-Z0-9'_]*)\\s*$"
+ - include: "$self"
- name: meta.method-call.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.separator.method-call.ocaml
- match: (?<=\w|\)|')(#)[a-z_][a-zA-Z0-9'_]*
+ match: "(?<=\\w|\\)|')(#)[a-z_][a-zA-Z0-9'_]*"
- name: meta.module.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.module-definition.ocaml
- "2":
+ '2':
name: entity.name.type.module.ocaml
- "3":
+ '3':
name: punctuation.separator.module-definition.ocaml
- "4":
+ '4':
name: entity.name.type.module-type.ocaml
- match: ^[ \t]*(module)\s+([A-Z_][a-zA-Z0-9'_]*)(?:\s*(:)\s*([A-Z][a-zA-Z0-9'_]*)?)?
+ match: "^[ \\t]*(module)\\s+([A-Z_][a-zA-Z0-9'_]*)(?:\\s*(:)\\s*([A-Z][a-zA-Z0-9'_]*)?)?"
- name: meta.module.type.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.module-type-definition.ocaml
- "2":
+ '2':
name: entity.name.type.module-type.ocaml
- match: ^[ \t]*(module\s+type\s+)([A-Z][a-zA-Z0-9'_]*)
+ match: "^[ \\t]*(module\\s+type\\s+)([A-Z][a-zA-Z0-9'_]*)"
- name: meta.module.signature.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.other.module.signature.ocaml
- "2":
+ '2':
name: punctuation.terminator.expression.ocaml
- "3":
+ '3':
name: keyword.operator.ocaml
- begin: \b(sig)\b
- beginCaptures:
- "1":
+ begin: "\\b(sig)\\b"
+ beginCaptures:
+ '1':
name: keyword.other.module.signature.ocaml
- end: \b(end)\b
- patterns:
+ end: "\\b(end)\\b"
+ patterns:
- include: "#module-signature"
- - include: $self
+ - include: "$self"
- name: meta.module.structure.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.other.module.structure.ocaml
- begin: \b(struct)\b
- beginCaptures:
- "1":
+ begin: "\\b(struct)\\b"
+ beginCaptures:
+ '1':
name: keyword.other.module.structure.ocaml
- end: \b(end)\b
- patterns:
- - include: $self
+ end: "\\b(end)\\b"
+ patterns:
+ - include: "$self"
- include: "#moduleref"
- name: meta.module.open.ocaml
- begin: \b(open)\s+([A-Z][a-zA-Z0-9'_]*)(?=(\.[A-Z][a-zA-Z0-9_]*)*)
- beginCaptures:
- "1":
+ begin: "\\b(open)\\s+([A-Z][a-zA-Z0-9'_]*)(?=(\\.[A-Z][a-zA-Z0-9_]*)*)"
+ beginCaptures:
+ '1':
name: keyword.other.ocaml
- "2":
+ '2':
name: support.other.module.ocaml
- end: (\s|$)
- patterns:
+ end: "(\\s|$)"
+ patterns:
- name: support.other.module.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.separator.module-reference.ocaml
- match: (\.)([A-Z][a-zA-Z0-9'_]*)
+ match: "(\\.)([A-Z][a-zA-Z0-9'_]*)"
- name: meta.exception.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: keyword.other.ocaml
- "2":
+ '2':
name: entity.name.type.exception.ocaml
- match: \b(exception)\s+([A-Z][a-zA-Z0-9'_]*)\b
+ match: "\\b(exception)\\s+([A-Z][a-zA-Z0-9'_]*)\\b"
- name: source.camlp4.embedded.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.definition.camlp4-stream.ocaml
- begin: (?=(\[<)(?![^\[]+?[^>]]))
- end: (>])
- patterns:
+ begin: "(?=(\\[<)(?![^\\[]+?[^>]]))"
+ end: "(>])"
+ patterns:
- include: source.camlp4.ocaml
- include: "#strings"
- include: "#constants"
- include: "#comments"
- include: "#lists"
- include: "#arrays"
- name: meta.type-constraint.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: punctuation.separator.type-constraint.ocaml
- "2":
+ '2':
name: storage.type.ocaml
- "3":
+ '3':
name: punctuation.section.type-constraint.ocaml
- begin: (\()(?=(~[a-z][a-zA-Z0-9_]*:|("(\\"|[^"])*")|[^\(\)~"])+(?<!:)(:>|:(?![:=])))
- beginCaptures:
- "1":
+ begin: "(\\()(?=(~[a-z][a-zA-Z0-9_]*:|(\"(\\\\\"|[^\"])*\")|[^\\(\\)~\"])+(?<!:)(:>|:(?![:=])))"
+ beginCaptures:
+ '1':
name: punctuation.section.type-constraint.ocaml
- end: (?<!:)(:>|:(?![:=]))(.*?)(\))
- patterns:
- - include: $self
+ end: "(?<!:)(:>|:(?![:=]))(.*?)(\\))"
+ patterns:
+ - include: "$self"
- name: keyword.other.directive.ocaml
- match: ^[ \t]*#[a-zA-Z]+
+ match: "^[ \\t]*#[a-zA-Z]+"
- name: keyword.other.directive.line-number.ocaml
- match: ^[ \t]*#[0-9]*
+ match: "^[ \\t]*#[0-9]*"
- include: "#storagetypes"
- name: keyword.other.storage.modifier.ocaml
- match: \b(mutable|ref)\b
+ match: "\\b(mutable|ref)\\b"
- name: entity.name.type.variant.polymorphic.ocaml
- match: `[A-Za-z][a-zA-Z0-9'_]*\b
+ match: "`[A-Za-z][a-zA-Z0-9'_]*\\b"
- name: entity.name.type.variant.ocaml
- match: \b[A-Z][a-zA-Z0-9'_]*\b
+ match: "\\b[A-Z][a-zA-Z0-9'_]*\\b"
- name: keyword.operator.symbol.ocaml
match: "!=|:=|>|<"
- name: keyword.operator.infix.floating-point.ocaml
match: "[*+/-]\\."
- name: keyword.operator.prefix.floating-point.ocaml
- match: ~-\.
+ match: "~-\\."
- name: punctuation.definition.list.constructor.ocaml
match: "::"
- name: punctuation.terminator.expression.ocaml
- match: ;;
+ match: ";;"
- name: punctuation.separator.ocaml
- match: ;
+ match: ";"
- name: punctuation.separator.function-return.ocaml
- match: ->
+ match: "->"
- name: keyword.operator.infix.ocaml
match: "[=<>@^&+\\-*/$%|][|!$%&*+./:<=>?@^~-]*"
- name: keyword.operator.prefix.ocaml
- match: \bnot\b|!|[!\?~][!$%&*+./:<=>?@^~-]+
+ match: "\\bnot\\b|!|[!\\?~][!$%&*+./:<=>?@^~-]+"
- name: entity.name.tag.label.ocaml
- captures:
- "1":
+ captures:
+ '1':
name: punctuation.separator.argument-label.ocaml
- match: ~[a-z][a-z0-9'_]*(:)?
+ match: "~[a-z][a-z0-9'_]*(:)?"
- name: meta.begin-end-group.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.control.begin-end.ocaml
- begin: \b(begin)\b
- beginCaptures:
- "1":
+ begin: "\\b(begin)\\b"
+ beginCaptures:
+ '1':
name: keyword.control.begin-end.ocaml
- end: \b(end)\b
- patterns:
- - include: $self
+ end: "\\b(end)\\b"
+ patterns:
+ - include: "$self"
- name: meta.for-loop.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.control.for-loop.ocaml
- begin: \b(for)\b
- beginCaptures:
- "1":
+ begin: "\\b(for)\\b"
+ beginCaptures:
+ '1':
name: keyword.control.for-loop.ocaml
- end: \b(done)\b
- patterns:
+ end: "\\b(done)\\b"
+ patterns:
- name: keyword.control.loop.ocaml
- match: \bdo\b
- - include: $self
+ match: "\\bdo\\b"
+ - include: "$self"
- name: meta.while-loop.ocaml
- endCaptures:
- "1":
+ endCaptures:
+ '1':
name: keyword.control.while-loop.ocaml
- begin: \b(while)\b
- beginCaptures:
- "1":
+ begin: "\\b(while)\\b"
+ beginCaptures:
+ '1':
name: keyword.control.while-loop.ocaml
- end: \b(done)\b
- patterns:
+ end: "\\b(done)\\b"
+ patterns:
- name: keyword.control.loop.ocaml
- match: \bdo\b
- - include: $self
+ match: "\\bdo\\b"
+ - include: "$self"
- name: meta.paren-group.ocaml
- begin: \(
- end: \)
- patterns:
- - include: $self
+ begin: "\\("
+ end: "\\)"
+ patterns:
+ - include: "$self"
- name: keyword.operator.ocaml
- match: \b(and|land|lor|lsl|lsr|lxor|mod|or)\b
+ match: "\\b(and|land|lor|lsl|lsr|lxor|mod|or)\\b"
- name: keyword.control.ocaml
- match: \b(downto|if|else|match|then|to|when|with|try)\b
+ match: "\\b(downto|if|else|match|then|to|when|with|try)\\b"
- name: keyword.other.ocaml
- match: \b(as|assert|class|constraint|exception|functor|in|include|inherit|initializer|lazy|let|mod|module|mutable|new|object|open|private|rec|sig|struct|type|val|virtual)\b
+ match: "\\b(as|assert|class|constraint|exception|functor|in|include|inherit|initializer|lazy|let|mod|module|mutable|new|object|open|private|rec|sig|struct|type|val|virtual)\\b"
- include: "#module-signature"
- name: invalid.illegal.unrecognized-character.ocaml
- match: "(\xE2\x80\x99|\xE2\x80\x98|\xE2\x80\x9C|\xE2\x80\x9D)"
-foldingStopMarker: (\bend(\s+in)?[ \t]*(;{1,2}|=)?|\bdone;?|^\s*;;|^\s*in)[ \t]*$
-keyEquivalent: ^~O
+ match: "(’|‘|“|”)"
+foldingStopMarker: "(\\bend(\\s+in)?[ \\t]*(;{1,2}|=)?|\\bdone;?|^\\s*;;|^\\s*in)[
+ \\t]*$"
+keyEquivalent: "^~O"