const lang = Object.freeze({ "displayName": "Erlang", "fileTypes": ["erl", "escript", "hrl", "xrl", "yrl"], "name": "erlang", "patterns": [{ "include": "#module-directive" }, { "include": "#import-export-directive" }, { "include": "#behaviour-directive" }, { "include": "#record-directive" }, { "include": "#define-directive" }, { "include": "#macro-directive" }, { "include": "#directive" }, { "include": "#function" }, { "include": "#everything-else" }], "repository": { "atom": { "patterns": [{ "begin": "(')", "beginCaptures": { "1": { "name": "punctuation.definition.symbol.begin.erlang" } }, "end": "(')", "endCaptures": { "1": { "name": "punctuation.definition.symbol.end.erlang" } }, "name": "constant.other.symbol.quoted.single.erlang", "patterns": [{ "captures": { "1": { "name": "punctuation.definition.escape.erlang" }, "3": { "name": "punctuation.definition.escape.erlang" } }, "match": `(\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})`, "name": "constant.other.symbol.escape.erlang" }, { "match": "\\\\\\^?.?", "name": "invalid.illegal.atom.erlang" }] }, { "match": "[a-z][a-zA-Z\\d@_]*+", "name": "constant.other.symbol.unquoted.erlang" }] }, "behaviour-directive": { "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.behaviour.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.type.class.behaviour.definition.erlang" }, "5": { "name": "punctuation.definition.parameters.end.erlang" }, "6": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", "name": "meta.directive.behaviour.erlang" }, "binary": { "begin": "(<<)", "beginCaptures": { "1": { "name": "punctuation.definition.binary.begin.erlang" } }, "end": "(>>)", "endCaptures": { "1": { "name": "punctuation.definition.binary.end.erlang" } }, "name": "meta.structure.binary.erlang", "patterns": [{ "captures": { "1": { "name": "punctuation.separator.binary.erlang" }, "2": { "name": "punctuation.separator.value-size.erlang" } }, "match": "(,)|(:)" }, { "include": "#internal-type-specifiers" }, { "include": "#everything-else" }] }, "character": { "patterns": [{ "captures": { "1": { "name": "punctuation.definition.character.erlang" }, "2": { "name": "constant.character.escape.erlang" }, "3": { "name": "punctuation.definition.escape.erlang" }, "5": { "name": "punctuation.definition.escape.erlang" } }, "match": `(\\$)((\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))`, "name": "constant.character.erlang" }, { "match": "\\$\\\\\\^?.?", "name": "invalid.illegal.character.erlang" }, { "captures": { "1": { "name": "punctuation.definition.character.erlang" } }, "match": "(\\$)[ \\S]", "name": "constant.character.erlang" }, { "match": "\\$.?", "name": "invalid.illegal.character.erlang" }] }, "comment": { "begin": "(^[ \\t]+)?(?=%)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.erlang" } }, "end": "(?!\\G)", "patterns": [{ "begin": "%", "beginCaptures": { "0": { "name": "punctuation.definition.comment.erlang" } }, "end": "\\n", "name": "comment.line.percentage.erlang" }] }, "define-directive": { "patterns": [{ "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+", "beginCaptures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.define.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.function.macro.definition.erlang" } }, "end": "(\\))\\s*+(\\.)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" }, "2": { "name": "punctuation.section.directive.end.erlang" } }, "name": "meta.directive.define.erlang", "patterns": [{ "include": "#everything-else" }] }, { "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()", "end": "(\\))\\s*+(\\.)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" }, "2": { "name": "punctuation.section.directive.end.erlang" } }, "name": "meta.directive.define.erlang", "patterns": [{ "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()", "beginCaptures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.define.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.function.macro.definition.erlang" }, "5": { "name": "punctuation.definition.parameters.begin.erlang" } }, "end": "(\\))\\s*(,)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" }, "2": { "name": "punctuation.separator.parameters.erlang" } }, "patterns": [{ "match": ",", "name": "punctuation.separator.parameters.erlang" }, { "include": "#everything-else" }] }, { "match": "\\|\\||\\||:|;|,|\\.|->", "name": "punctuation.separator.define.erlang" }, { "include": "#everything-else" }] }] }, "directive": { "patterns": [{ "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)", "beginCaptures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" } }, "end": "(\\)?)\\s*+(\\.)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" }, "2": { "name": "punctuation.section.directive.end.erlang" } }, "name": "meta.directive.erlang", "patterns": [{ "include": "#everything-else" }] }, { "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.erlang" }, "3": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)", "name": "meta.directive.erlang" }] }, "docstring": { "begin": '(?)|(;)|(,)" }, "internal-function-list": { "begin": "(\\[)", "beginCaptures": { "1": { "name": "punctuation.definition.list.begin.erlang" } }, "end": "(\\])", "endCaptures": { "1": { "name": "punctuation.definition.list.end.erlang" } }, "name": "meta.structure.list.function.erlang", "patterns": [{ "begin": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)", "beginCaptures": { "1": { "name": "entity.name.function.erlang" }, "2": { "name": "punctuation.separator.function-arity.erlang" } }, "end": "(,)|(?=\\])", "endCaptures": { "1": { "name": "punctuation.separator.list.erlang" } }, "patterns": [{ "include": "#everything-else" }] }, { "include": "#everything-else" }] }, "internal-function-parts": { "patterns": [{ "begin": "(?=\\()", "end": "(->)", "endCaptures": { "1": { "name": "punctuation.separator.clause-head-body.erlang" } }, "patterns": [{ "begin": "(\\()", "beginCaptures": { "1": { "name": "punctuation.definition.parameters.begin.erlang" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" } }, "patterns": [{ "match": ",", "name": "punctuation.separator.parameters.erlang" }, { "include": "#everything-else" }] }, { "match": ",|;", "name": "punctuation.separator.guards.erlang" }, { "include": "#everything-else" }] }, { "match": ",", "name": "punctuation.separator.expressions.erlang" }, { "include": "#everything-else" }] }, "internal-record-body": { "begin": "(\\{)", "beginCaptures": { "1": { "name": "punctuation.definition.class.record.begin.erlang" } }, "end": "(\\})", "endCaptures": { "1": { "name": "punctuation.definition.class.record.end.erlang" } }, "name": "meta.structure.record.erlang", "patterns": [{ "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))", "beginCaptures": { "2": { "name": "variable.other.field.erlang" }, "3": { "name": "variable.language.omitted.field.erlang" } }, "end": "(,)|(?=\\})", "endCaptures": { "1": { "name": "punctuation.separator.class.record.erlang" } }, "patterns": [{ "include": "#everything-else" }] }, { "include": "#everything-else" }] }, "internal-string-body": { "patterns": [{ "captures": { "1": { "name": "punctuation.definition.escape.erlang" }, "3": { "name": "punctuation.definition.escape.erlang" } }, "comment": "escape sequence", "match": `(\\\\)([bdefnrstv\\\\'"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})`, "name": "constant.character.escape.erlang" }, { "match": "\\\\\\^?.?", "name": "invalid.illegal.string.erlang" }, { "captures": { "1": { "name": "punctuation.definition.placeholder.erlang" }, "6": { "name": "punctuation.separator.placeholder-parts.erlang" }, "10": { "name": "punctuation.separator.placeholder-parts.erlang" } }, "comment": "io:fwrite format control sequence", "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]", "name": "constant.character.format.placeholder.other.erlang" }, { "captures": { "1": { "name": "punctuation.definition.placeholder.erlang" } }, "comment": "io:fread format control sequence", "match": "(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]", "name": "constant.character.format.placeholder.other.erlang" }, { "match": '~[^"]?', "name": "invalid.illegal.string.erlang" }] }, "internal-type-specifiers": { "begin": "(/)", "beginCaptures": { "1": { "name": "punctuation.separator.value-type.erlang" } }, "end": "(?=,|:|>>)", "patterns": [{ "captures": { "1": { "name": "storage.type.erlang" }, "2": { "name": "storage.modifier.signedness.erlang" }, "3": { "name": "storage.modifier.endianness.erlang" }, "4": { "name": "storage.modifier.unit.erlang" }, "5": { "name": "punctuation.separator.unit-specifiers.erlang" }, "6": { "name": "constant.numeric.integer.decimal.erlang" }, "7": { "name": "punctuation.separator.type-specifiers.erlang" } }, "match": "(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)" }] }, "keyword": { "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b", "name": "keyword.control.erlang" }, "language-constant": { "match": "\\b(false|true|undefined)\\b", "name": "constant.language" }, "list": { "begin": "(\\[)", "beginCaptures": { "1": { "name": "punctuation.definition.list.begin.erlang" } }, "end": "(\\])", "endCaptures": { "1": { "name": "punctuation.definition.list.end.erlang" } }, "name": "meta.structure.list.erlang", "patterns": [{ "match": "\\||\\|\\||,", "name": "punctuation.separator.list.erlang" }, { "include": "#everything-else" }] }, "macro-directive": { "patterns": [{ "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.ifdef.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.function.macro.erlang" }, "5": { "name": "punctuation.definition.parameters.end.erlang" }, "6": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", "name": "meta.directive.ifdef.erlang" }, { "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.ifndef.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.function.macro.erlang" }, "5": { "name": "punctuation.definition.parameters.end.erlang" }, "6": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", "name": "meta.directive.ifndef.erlang" }, { "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.undef.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.function.macro.erlang" }, "5": { "name": "punctuation.definition.parameters.end.erlang" }, "6": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", "name": "meta.directive.undef.erlang" }] }, "macro-usage": { "captures": { "1": { "name": "keyword.operator.macro.erlang" }, "2": { "name": "entity.name.function.macro.erlang" } }, "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)", "name": "meta.macro-usage.erlang" }, "module-directive": { "captures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.module.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.type.class.module.definition.erlang" }, "5": { "name": "punctuation.definition.parameters.end.erlang" }, "6": { "name": "punctuation.section.directive.end.erlang" } }, "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", "name": "meta.directive.module.erlang" }, "number": { "begin": "(?=\\d)", "end": "(?!\\d)", "patterns": [{ "captures": { "1": { "name": "punctuation.separator.integer-float.erlang" }, "2": { "name": "punctuation.separator.float-exponent.erlang" } }, "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?", "name": "constant.numeric.float.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "2(#)([0-1]++_)*[0-1]++", "name": "constant.numeric.integer.binary.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "3(#)([0-2]++_)*[0-2]++", "name": "constant.numeric.integer.base-3.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "4(#)([0-3]++_)*[0-3]++", "name": "constant.numeric.integer.base-4.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "5(#)([0-4]++_)*[0-4]++", "name": "constant.numeric.integer.base-5.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "6(#)([0-5]++_)*[0-5]++", "name": "constant.numeric.integer.base-6.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "7(#)([0-6]++_)*[0-6]++", "name": "constant.numeric.integer.base-7.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "8(#)([0-7]++_)*[0-7]++", "name": "constant.numeric.integer.octal.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "9(#)([0-8]++_)*[0-8]++", "name": "constant.numeric.integer.base-9.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "10(#)(\\d++_)*\\d++", "name": "constant.numeric.integer.decimal.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "11(#)([\\daA]++_)*[\\daA]++", "name": "constant.numeric.integer.base-11.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "12(#)([\\da-bA-B]++_)*[\\da-bA-B]++", "name": "constant.numeric.integer.base-12.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "13(#)([\\da-cA-C]++_)*[\\da-cA-C]++", "name": "constant.numeric.integer.base-13.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "14(#)([\\da-dA-D]++_)*[\\da-dA-D]++", "name": "constant.numeric.integer.base-14.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "15(#)([\\da-eA-E]++_)*[\\da-eA-E]++", "name": "constant.numeric.integer.base-15.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "16(#)([\\da-fA-F]++_)*[\\da-fA-F]++", "name": "constant.numeric.integer.hexadecimal.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "17(#)([\\da-gA-G]++_)*[\\da-gA-G]++", "name": "constant.numeric.integer.base-17.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "18(#)([\\da-hA-H]++_)*[\\da-hA-H]++", "name": "constant.numeric.integer.base-18.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "19(#)([\\da-iA-I]++_)*[\\da-iA-I]++", "name": "constant.numeric.integer.base-19.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "20(#)([\\da-jA-J]++_)*[\\da-jA-J]++", "name": "constant.numeric.integer.base-20.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "21(#)([\\da-kA-K]++_)*[\\da-kA-K]++", "name": "constant.numeric.integer.base-21.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "22(#)([\\da-lA-L]++_)*[\\da-lA-L]++", "name": "constant.numeric.integer.base-22.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "23(#)([\\da-mA-M]++_)*[\\da-mA-M]++", "name": "constant.numeric.integer.base-23.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "24(#)([\\da-nA-N]++_)*[\\da-nA-N]++", "name": "constant.numeric.integer.base-24.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "25(#)([\\da-oA-O]++_)*[\\da-oA-O]++", "name": "constant.numeric.integer.base-25.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "26(#)([\\da-pA-P]++_)*[\\da-pA-P]++", "name": "constant.numeric.integer.base-26.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++", "name": "constant.numeric.integer.base-27.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "28(#)([\\da-rA-R]++_)*[\\da-rA-R]++", "name": "constant.numeric.integer.base-28.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "29(#)([\\da-sA-S]++_)*[\\da-sA-S]++", "name": "constant.numeric.integer.base-29.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "30(#)([\\da-tA-T]++_)*[\\da-tA-T]++", "name": "constant.numeric.integer.base-30.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "31(#)([\\da-uA-U]++_)*[\\da-uA-U]++", "name": "constant.numeric.integer.base-31.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "32(#)([\\da-vA-V]++_)*[\\da-vA-V]++", "name": "constant.numeric.integer.base-32.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "33(#)([\\da-wA-W]++_)*[\\da-wA-W]++", "name": "constant.numeric.integer.base-33.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "34(#)([\\da-xA-X]++_)*[\\da-xA-X]++", "name": "constant.numeric.integer.base-34.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++", "name": "constant.numeric.integer.base-35.erlang" }, { "captures": { "1": { "name": "punctuation.separator.base-integer.erlang" } }, "match": "36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++", "name": "constant.numeric.integer.base-36.erlang" }, { "match": "\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++", "name": "invalid.illegal.integer.erlang" }, { "match": "(\\d++_)*\\d++", "name": "constant.numeric.integer.decimal.erlang" }] }, "parenthesized-expression": { "begin": "(\\()", "beginCaptures": { "1": { "name": "punctuation.section.expression.begin.erlang" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.section.expression.end.erlang" } }, "name": "meta.expression.parenthesized", "patterns": [{ "include": "#everything-else" }] }, "record-directive": { "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)", "beginCaptures": { "1": { "name": "punctuation.section.directive.begin.erlang" }, "2": { "name": "keyword.control.directive.import.erlang" }, "3": { "name": "punctuation.definition.parameters.begin.erlang" }, "4": { "name": "entity.name.type.class.record.definition.erlang" }, "5": { "name": "punctuation.separator.parameters.erlang" } }, "end": "(\\))\\s*+(\\.)", "endCaptures": { "1": { "name": "punctuation.definition.parameters.end.erlang" }, "2": { "name": "punctuation.section.directive.end.erlang" } }, "name": "meta.directive.record.erlang", "patterns": [{ "include": "#internal-record-body" }, { "include": "#comment" }] }, "record-usage": { "patterns": [{ "captures": { "1": { "name": "keyword.operator.record.erlang" }, "2": { "name": "entity.name.type.class.record.erlang" }, "3": { "name": "punctuation.separator.record-field.erlang" }, "4": { "name": "variable.other.field.erlang" } }, "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", "name": "meta.record-usage.erlang" }, { "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", "beginCaptures": { "1": { "name": "keyword.operator.record.erlang" }, "2": { "name": "entity.name.type.class.record.erlang" } }, "end": "(?<=\\})", "name": "meta.record-usage.erlang", "patterns": [{ "include": "#internal-record-body" }] }] }, "sigil-docstring": { "begin": '(~[bBsS]?)((["]{3,})\\s*)(\\S.*)?$', "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "meta.string.quoted.triple.begin.erlang" }, "3": { "name": "punctuation.definition.string.begin.erlang" }, "4": { "name": "invalid.illegal.string.erlang" } }, "comment": "Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line", "end": '^(\\s*(\\3))(?!")', "endCaptures": { "1": { "name": "meta.string.quoted.triple.end.erlang" }, "2": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.tripple.sigil.erlang" }, "sigil-string": { "patterns": [{ "include": "#sigil-string-parenthesis" }, { "include": "#sigil-string-parenthesis-verbatim" }, { "include": "#sigil-string-curly-brackets" }, { "include": "#sigil-string-curly-brackets-verbatim" }, { "include": "#sigil-string-square-brackets" }, { "include": "#sigil-string-square-brackets-verbatim" }, { "include": "#sigil-string-less-greater" }, { "include": "#sigil-string-less-greater-verbatim" }, { "include": "#sigil-string-single-character" }, { "include": "#sigil-string-single-character-verbatim" }, { "include": "#sigil-string-single-quote" }, { "include": "#sigil-string-single-quote-verbatim" }, { "include": "#sigil-string-double-quote" }, { "include": "#sigil-string-double-quote-verbatim" }] }, "sigil-string-curly-brackets": { "begin": "(~[bs]?)([{])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([}])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.curly-brackets.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-curly-brackets-verbatim": { "begin": "(~[BS])([{])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([}])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.curly-brackets.sigil.erlang" }, "sigil-string-double-quote": { "begin": '(~[bs]?)(")', "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.double.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-double-quote-verbatim": { "begin": '(~[BS])(")', "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.double.sigil.erlang" }, "sigil-string-less-greater": { "begin": "(~[bs]?)(<)", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(>)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.less-greater.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-less-greater-verbatim": { "begin": "(~[BS])(<)", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(>)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.less-greater.sigil.erlang" }, "sigil-string-parenthesis": { "begin": "(~[bs]?)([(])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([)])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.parenthesis.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-parenthesis-verbatim": { "begin": "(~[BS])([(])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([)])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.parenthesis.sigil.erlang" }, "sigil-string-single-character": { "begin": "(~[bs]?)([/\\|`#])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.other.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-single-character-verbatim": { "begin": "(~[BS])([/\\|`#])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.other.sigil.erlang" }, "sigil-string-single-quote": { "begin": "(~[bs]?)(')", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.single.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-single-quote-verbatim": { "begin": "(~[BS])(')", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "(\\2)", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.single.sigil.erlang" }, "sigil-string-square-brackets": { "begin": "(~[bs]?)([\\[])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([\\]])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.square-brackets.sigil.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "sigil-string-square-brackets-verbatim": { "begin": "(~[BS])([\\[])", "beginCaptures": { "1": { "name": "storage.type.string.erlang" }, "2": { "name": "punctuation.definition.string.begin.erlang" } }, "end": "([\\]])", "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.square-brackets.sigil.erlang" }, "string": { "begin": '(")', "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.erlang" } }, "end": '(")', "endCaptures": { "1": { "name": "punctuation.definition.string.end.erlang" } }, "name": "string.quoted.double.erlang", "patterns": [{ "include": "#internal-string-body" }] }, "symbolic-operator": { "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=", "name": "keyword.operator.symbolic.erlang" }, "textual-operator": { "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b", "name": "keyword.operator.textual.erlang" }, "tuple": { "begin": "(\\{)", "beginCaptures": { "1": { "name": "punctuation.definition.tuple.begin.erlang" } }, "end": "(\\})", "endCaptures": { "1": { "name": "punctuation.definition.tuple.end.erlang" } }, "name": "meta.structure.tuple.erlang", "patterns": [{ "match": ",", "name": "punctuation.separator.tuple.erlang" }, { "include": "#everything-else" }] }, "variable": { "captures": { "1": { "name": "variable.other.erlang" }, "2": { "name": "variable.language.omitted.erlang" } }, "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)" } }, "scopeName": "source.erlang", "aliases": ["erl"] }); var erlang = [ lang ]; export { erlang as default };