{ "fileTypes": [ "reb", "r", "r2", "r3" ], "firstLineMatch": "^\\s*(?i)(REBOL)\\s\\[", "foldingStartMarker": "^([^;]*[\\[\\{\\(])+\\s*(\\;.*)?$", "foldingStopMarker": "^\\s*[\\]\\}\\)].*$", "name": "REBOL", "patterns": [ { "include": "#comments" }, { "include": "#type-literal" }, { "include": "#strings" }, { "include": "#values" }, { "include": "#words" } ], "repository": { "binary-base-sixteen": { "begin": "(16)?#\\{", "beginCaptures": { "0": { "name": "string.binary.prefix" } }, "end": "\\}", "endCaptures": { "0": { "name": "string.binary.prefix" } }, "name": "binary.base16.rebol", "patterns": [ { "match": "[0-9a-fA-F]{2,2}", "name": "string.binary.base16.rebol" }, { "match": ".", "name": "invalid.illegal.rebol" } ] }, "binary-base-sixtyfour": { "begin": "64#\\{", "beginCaptures": { "0": { "name": "string.binary.prefix" } }, "end": "\\}", "endCaptures": { "0": { "name": "string.binary.prefix" } }, "name": "binary.base64.rebol", "patterns": [ { "match": "[0-9a-zA-Z+/=\\s]*", "name": "string.binary.base64.rebol" }, { "match": ".", "name": "invalid.illegal.rebol" } ] }, "binary-base-two": { "begin": "2#\\{", "beginCaptures": { "0": { "name": "string.binary.prefix" } }, "end": "\\}", "endCaptures": { "0": { "name": "string.binary.prefix" } }, "name": "binary.base2.rebol", "patterns": [ { "match": "([01]\\s*){8}", "name": "string.binary.base2.rebol" }, { "match": ".", "name": "invalid.illegal.rebol" } ] }, "character": { "match": "#\"(\\^(\\(([0-9a-fA-F]+|del)\\)|.)|[^\\^\\\"])\"", "name": "string.character.rebol" }, "character-html": { "captures": { "0": { "name": "punctuation.definition.entity.html" }, "2": { "name": "punctuation.definition.entity.html" } }, "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", "name": "constant.character.entity.html" }, "character-inline": { "match": "\\^(\\(([0-9a-fA-F]+|del)\\)|.)", "name": "string.escaped.rebol" }, "comment-docline": { "match": ";-.*?(?=\\%>|$)", "name": "comment.docline.rebol" }, "comment-line": { "match": ";.*?(?=\\%>|$)", "name": "comment.line.rebol" }, "comment-multiline-block": { "begin": "comment\\s*\\[", "end": "\\]", "name": "comment.multiline.rebol", "patterns": [ { "include": "#comment-multiline-block-string" }, { "include": "#comment-multiline-string-nested" }, { "include": "#comment-multiline-block-nested" } ] }, "comment-multiline-block-nested": { "begin": "\\[", "end": "\\]", "name": "comment.multiline.rebol", "patterns": [ { "include": "#comment-multiline-block-string" }, { "include": "#comment-multiline-string-nested" }, { "include": "#comment-multiline-block-nested" } ] }, "comment-multiline-block-string": { "begin": "\"", "end": "\"", "name": "comment.multiline.rebol", "patterns": [ { "match": "\\^." } ] }, "comment-multiline-string": { "begin": "comment\\s*\\{", "end": "\\}", "name": "comment.multiline.rebol", "patterns": [ { "match": "\\^." }, { "include": "#comment-multiline-string-nested" } ] }, "comment-multiline-string-nested": { "begin": "\\{", "end": "\\}", "name": "comment.multiline.rebol", "patterns": [ { "match": "\\^." }, { "include": "#comment-multiline-string-nested" } ] }, "comment-todo": { "match": ";@@.*?(?=\\%>|$)", "name": "comment.todo.rebol" }, "comments": { "patterns": [ { "include": "#comment-docline" }, { "include": "#comment-todo" }, { "include": "#comment-line" }, { "include": "#comment-multiline-string" }, { "include": "#comment-multiline-block" } ] }, "doublequotedString": { "begin": "\"", "end": "\"", "name": "string.quoted.double.xml" }, "function-definition": { "begin": "([A-Za-z=\\!\\?\\*_\\+][A-Za-z0-9=_\\-\\!\\?\\*\\+\\.]*):\\s+(?i)(function|func|funct|routine|has)\\s*(\\[)", "beginCaptures": { "1": { "name": "support.variable.function.rebol" }, "2": { "name": "keyword.function" }, "3": { "name": "support.strong" } }, "end": "]", "endCaptures": { "0": { "name": "support.strong" } }, "name": "function.definition", "patterns": [ { "include": "#function-definition-block" }, { "include": "#comments" }, { "include": "#strings" }, { "include": "#word-setword" }, { "include": "#word-datatype" }, { "include": "#word-refinement" } ] }, "function-definition-block": { "begin": "\\[", "end": "]", "name": "function.definition.block", "patterns": [ { "include": "#comments" }, { "include": "#word-datatype" } ] }, "function-definition-does": { "captures": { "1": { "name": "support.variable.function.rebol" }, "2": { "name": "keyword.function" } }, "match": "([A-Za-z=\\!\\?\\*_\\+][A-Za-z0-9=_\\-\\!\\?\\*\\+\\.]*):\\s+(?i)(does|context)(?=\\s*|\\[)", "name": "function.definition.does" }, "parens": { "match": "(\\[|\\]|\\(|\\))", "name": "keyword.operator.comparison" }, "rsp-tag": { "begin": "<%=", "end": "%>", "name": "source.rebol", "patterns": [ { "include": "source.rebol" } ] }, "singlequotedString": { "begin": "'", "end": "'", "name": "string.quoted.single.xml" }, "string-email": { "match": "[^\\s\\n:/\\[\\]\\(\\)]+@[^\\s\\n:/\\[\\]\\(\\)]+", "name": "string.email.rebol" }, "string-file": { "match": "%[^\\s\\n\\[\\]\\(\\)]+", "name": "string.file.rebol" }, "string-file-quoted": { "begin": "%\"", "beginCaptures": { "0": { "name": "string.file.quoted.rebol" } }, "end": "\"", "endCaptures": { "0": { "name": "string.file.quoted.rebol" } }, "name": "string.file.quoted.rebol", "patterns": [ { "match": "%[A-Fa-f0-9]{2}", "name": "string.escape.ssraw" } ] }, "string-issue": { "match": "#[^\\s\\n\\[\\]\\(\\)\\/]*", "name": "string.issue.rebol" }, "string-multiline": { "begin": "\\{", "end": "\\}", "name": "string.multiline.rebol", "patterns": [ { "include": "#rsp-tag" }, { "include": "#character-inline" }, { "include": "#character-html" }, { "include": "#string-nested-multiline" } ] }, "string-nested-multiline": { "begin": "\\{", "end": "\\}", "name": "string.multiline.rebol", "patterns": [ { "include": "#string-nested-multiline" } ] }, "string-quoted": { "begin": "\"", "end": "\"", "name": "string.rebol", "patterns": [ { "include": "#rsp-tag" }, { "include": "#character-inline" }, { "include": "#character-html" } ] }, "string-tag": { "begin": "<(?:\\/|%\\=?\\ )?(?:([-_a-zA-Z0-9]+):)?([-_a-zA-Z0-9:]+)", "beginCaptures": { "0": { "name": "entity.other.namespace.xml" }, "1": { "name": "entity.name.tag.xml" } }, "end": "(?:\\s/|\\ %)?>", "name": "entity.tag.rebol", "patterns": [ { "captures": { "0": { "name": "entity.other.namespace.xml" }, "1": { "name": "entity.other.attribute-name.xml" } }, "match": " (?:([-_a-zA-Z0-9]+):)?([_a-zA-Z-]+)" }, { "include": "#singlequotedString" }, { "include": "#doublequotedString" } ] }, "string-url": { "match": "[A-Za-z][\\w]{1,9}:(/{0,3}[^\\s\\n\\[\\]\\(\\)]+|//)", "name": "string.url.rebol" }, "strings": { "patterns": [ { "include": "#character" }, { "include": "#string-quoted" }, { "include": "#string-multiline" }, { "include": "#string-tag" }, { "include": "#string-file-quoted" }, { "include": "#string-file" }, { "include": "#string-url" }, { "include": "#string-email" }, { "include": "#binary-base-two" }, { "include": "#binary-base-sixtyfour" }, { "include": "#binary-base-sixteen" }, { "include": "#string-issue" } ] }, "type-literal": { "begin": "#\\[(?:(\\w+!)|(true|false|none))", "beginCaptures": { "0": { "name": "native.datatype.rebol" }, "1": { "name": "logic.rebol" } }, "end": "]", "name": "series.literal.rebol", "patterns": [ { "include": "$self" } ] }, "value-date": { "captures": { "1": { "name": "time.rebol" } }, "match": "\\d{1,2}\\-([A-Za-z]{3}|January|Febuary|March|April|May|June|July|August|September|October|November|December)\\-\\d{4}(/\\d{1,2}[:]\\d{1,2}([:]\\d{1,2}(\\.\\d{1,5})?)?([+-]\\d{1,2}[:]\\d{1,2})?)?", "name": "date.rebol" }, "value-money": { "match": "(?=|<>|<|>|>>|>>>|<<|\\+|-|=|\\*|%|/|\\b(and|or|xor))(?=\\s|\\(|\\[|\\)|\\]|/|;|\\\"|{)", "name": "keyword.operator.comparison" }, "word-refinement": { "match": "/[^\\s\\n\\[\\]\\(\\)]*", "name": "keyword.refinement.rebol" }, "word-setword": { "match": "[^:\\s\\n\\[\\]\\(\\)]*:", "name": "support.variable.setword.rebol" }, "words": { "name": "word.rebol", "patterns": [ { "include": "#function-definition" }, { "include": "#function-definition-does" }, { "include": "#word-refinement" }, { "include": "#word-operator" }, { "include": "#word-getword" }, { "include": "#word-setword" }, { "include": "#word-refinement" }, { "include": "#word-datatype" }, { "include": "#word-group4" }, { "include": "#word-group1" }, { "include": "#word-group2" }, { "include": "#word-group3" }, { "include": "#word-group5" }, { "include": "#word" } ] } }, "scopeName": "source.rebol", "uuid": "39c6f621-44b8-40fe-95d4-ed7dca2b39ac" }