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"