{
	"information_for_contributors": [
		"This file has been converted from https://github.com/textmate/r.tmbundle/blob/master/Syntaxes/R.plist",
		"If you want to provide a fix or improvement, please create a pull request against the original repository.",
		"Once accepted there, we are happy to receive an update request."
	],
	"fileTypes": [
		"R",
		"r",
		"s",
		"S",
		"Rprofile"
	],
	"keyEquivalent": "^~R",
	"name": "R",
	"patterns": [
		{
			"captures": {
				"1": {
					"name": "comment.line.pragma.r"
				},
				"2": {
					"name": "entity.name.pragma.name.r"
				}
			},
			"match": "^(#pragma[ \\t]+mark)[ \\t](.*)",
			"name": "comment.line.pragma-mark.r"
		},
		{
			"begin": "(^[ \\t]+)?(?=#)",
			"beginCaptures": {
				"1": {
					"name": "punctuation.whitespace.comment.leading.r"
				}
			},
			"end": "(?!\\G)",
			"patterns": [
				{
					"begin": "#",
					"beginCaptures": {
						"0": {
							"name": "punctuation.definition.comment.r"
						}
					},
					"end": "\\n",
					"name": "comment.line.number-sign.r"
				}
			]
		},
		{
			"match": "\\b(logical|numeric|character|complex|matrix|array|data\\.frame|list|factor)(?=\\s*\\()",
			"name": "storage.type.r"
		},
		{
			"match": "\\b(function|if|break|next|repeat|else|for|return|switch|while|in|invisible)\\b",
			"name": "keyword.control.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.numeric.r"
		},
		{
			"match": "\\b(T|F|TRUE|FALSE|NULL|NA|Inf|NaN)\\b",
			"name": "constant.language.r"
		},
		{
			"match": "\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b",
			"name": "support.constant.misc.r"
		},
		{
			"match": "(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%in%|%o%|%x%|\\^)",
			"name": "keyword.operator.arithmetic.r"
		},
		{
			"match": "(=|<-|<<-|->|->>)",
			"name": "keyword.operator.assignment.r"
		},
		{
			"match": "(==|!=|<>|<|>|<=|>=)",
			"name": "keyword.operator.comparison.r"
		},
		{
			"match": "(!|&{1,2}|[|]{1,2})",
			"name": "keyword.operator.logical.r"
		},
		{
			"match": "(\\.\\.\\.|\\$|@|:|\\~)",
			"name": "keyword.other.r"
		},
		{
			"begin": "\"",
			"beginCaptures": {
				"0": {
					"name": "punctuation.definition.string.begin.r"
				}
			},
			"end": "\"",
			"endCaptures": {
				"0": {
					"name": "punctuation.definition.string.end.r"
				}
			},
			"name": "string.quoted.double.r",
			"patterns": [
				{
					"match": "\\\\.",
					"name": "constant.character.escape.r"
				}
			]
		},
		{
			"begin": "'",
			"beginCaptures": {
				"0": {
					"name": "punctuation.definition.string.begin.r"
				}
			},
			"end": "'",
			"endCaptures": {
				"0": {
					"name": "punctuation.definition.string.end.r"
				}
			},
			"name": "string.quoted.single.r",
			"patterns": [
				{
					"match": "\\\\.",
					"name": "constant.character.escape.r"
				}
			]
		},
		{
			"captures": {
				"1": {
					"name": "entity.name.function.r"
				},
				"2": {
					"name": "keyword.operator.assignment.r"
				},
				"3": {
					"name": "keyword.control.r"
				}
			},
			"match": "([[:alpha:].][[:alnum:]._]*)\\s*(<-)\\s*(function)",
			"name": "meta.function.r"
		},
		{
			"captures": {
				"1": {
					"name": "entity.name.tag.r"
				},
				"4": {
					"name": "entity.name.type.r"
				}
			},
			"match": "(setMethod|setReplaceMethod|setGeneric|setGroupGeneric|setClass)\\s*\\(\\s*([[:alpha:]\\d]+\\s*=\\s*)?(\"|\\x{27})([a-zA-Z._\\[\\$@][a-zA-Z0-9._\\[]*?)\\3.*",
			"name": "meta.method.declaration.r"
		},
		{
			"match": "([[:alpha:].][[:alnum:]._]*)\\s*\\("
		},
		{
			"captures": {
				"1": {
					"name": "variable.parameter.r"
				},
				"2": {
					"name": "keyword.operator.assignment.r"
				}
			},
			"match": "([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])"
		},
		{
			"match": "\\b([\\d_][[:alnum:]._]+)\\b",
			"name": "invalid.illegal.variable.other.r"
		},
		{
			"match": "\\b([[:alnum:]_]+)(?=::)",
			"name": "entity.namespace.r"
		},
		{
			"match": "\\b([[:alnum:]._]+)\\b",
			"name": "variable.other.r"
		},
		{
			"begin": "\\{",
			"beginCaptures": {
				"0": {
					"name": "punctuation.section.block.begin.r"
				}
			},
			"end": "\\}",
			"endCaptures": {
				"0": {
					"name": "punctuation.section.block.end.r"
				}
			},
			"name": "meta.block.r",
			"patterns": [
				{
					"include": "source.r"
				}
			]
		}
	],
	"scopeName": "source.r",
	"uuid": "B2E6B78D-6E70-11D9-A369-000D93B3A10E"
}