{ "name": "R", "scopeName": "source.r", "patterns": [ { "name": "comment.line.pragma-mark.r", "match": "^(#pragma[ \\t]+mark)[ \\t](.*)", "captures": { "1": { "name": "comment.line.pragma.r" }, "2": { "name": "entity.name.pragma.name.r" } } }, { "begin": "(^[ \\t]+)?(?=#)", "end": "(?!\\G)", "patterns": [ { "name": "comment.line.number-sign.r", "begin": "#", "end": "\\n", "beginCaptures": { "0": { "name": "punctuation.definition.comment.r" } } } ], "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.r" } } }, { "name": "storage.type.r", "match": "\\b(logical|numeric|character|complex|matrix|array|data\\.frame|list|factor)(?=\\s*\\()" }, { "name": "keyword.control.r", "match": "\\b(function|if|break|next|repeat|else|for|return|switch|while|in|invisible)\\b" }, { "name": "constant.numeric.r", "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(i|L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" }, { "name": "constant.language.r", "match": "\\b(T|F|TRUE|FALSE|NULL|NA|Inf|NaN)\\b" }, { "name": "support.constant.misc.r", "match": "\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b" }, { "name": "keyword.operator.arithmetic.r", "match": "(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%in%|%o%|%x%|\\^)" }, { "name": "keyword.operator.assignment.r", "match": "(=|\u003c-|\u003c\u003c-|-\u003e|-\u003e\u003e)" }, { "name": "keyword.operator.comparison.r", "match": "(==|!=|\u003c\u003e|\u003c|\u003e|\u003c=|\u003e=)" }, { "name": "keyword.operator.logical.r", "match": "(!|\u0026{1,2}|[|]{1,2})" }, { "name": "keyword.other.r", "match": "(\\.\\.\\.|\\$|@|:|\\~)" }, { "name": "string.quoted.double.r", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.r", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.r" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.r" } } }, { "name": "string.quoted.single.r", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.r", "match": "\\\\." } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.r" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.r" } } }, { "name": "meta.function.r", "match": "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(\u003c?\u003c-|=(?!=))\\s*(function)", "captures": { "1": { "name": "entity.name.function.r" }, "2": { "name": "keyword.operator.assignment.r" }, "3": { "name": "keyword.control.r" } } }, { "name": "meta.method.declaration.r", "match": "(setMethod|setReplaceMethod|setGeneric|setGroupGeneric|setClass)\\s*\\(\\s*([[:alpha:]\\d]+\\s*=\\s*)?(\"|\\x{27})([a-zA-Z._\\[\\$@][a-zA-Z0-9._\\[]*?)\\3.*", "captures": { "1": { "name": "entity.name.tag.r" }, "4": { "name": "entity.name.type.r" } } }, { "match": "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*\\(" }, { "match": "([[:alpha:].][[:alnum:]._]*)\\s*(=(?!=))", "captures": { "1": { "name": "variable.parameter.r" }, "2": { "name": "keyword.operator.assignment.r" } } }, { "name": "invalid.illegal.variable.other.r", "match": "\\b([\\d_][[:alnum:]._]+)\\b" }, { "name": "entity.namespace.r", "match": "\\b([[:alnum:]_]+)(?=::)" }, { "name": "variable.other.r", "match": "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))" }, { "name": "meta.block.r", "begin": "\\{", "end": "\\}", "patterns": [ { "include": "source.r" } ], "beginCaptures": { "0": { "name": "punctuation.section.block.begin.r" } }, "endCaptures": { "0": { "name": "punctuation.section.block.end.r" } } } ] }