{ "aliases": [ "rb", "gemspec", "podspec", "thor", "irb" ], "keywords": { "keyword": "and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor", "literal": "true false nil" }, "illegal": "\\\/\\*", "contains": [ { "className": "comment", "begin": "#", "end": "$", "contains": [ { "className": "doctag", "begin": "@[A-Za-z]+" }, { "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b" }, { "className": "doctag", "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", "relevance": 0 } ] }, { "className": "comment", "begin": "^\\=begin", "end": "^\\=end", "contains": [ { "$ref": "#contains.0.contains.0" }, { "$ref": "#contains.0.contains.1" }, { "className": "doctag", "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", "relevance": 0 } ], "relevance": 10 }, { "className": "comment", "begin": "^__END__", "end": "\\n$", "contains": [ { "$ref": "#contains.0.contains.1" }, { "className": "doctag", "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", "relevance": 0 } ] }, { "begin": "^\\s*=>", "starts": { "end": "$", "contains": [ { "className": "string", "contains": [ { "begin": "\\\\[\\s\\S]", "relevance": 0 }, { "className": "subst", "begin": "#\\{", "end": "}", "keywords": { "$ref": "#keywords" }, "contains": { "$ref": "#contains.3.starts.contains" } } ], "variants": [ { "begin": "'", "end": "'" }, { "begin": "\"", "end": "\"" }, { "begin": "`", "end": "`" }, { "begin": "%[qQwWx]?\\(", "end": "\\)" }, { "begin": "%[qQwWx]?\\[", "end": "\\]" }, { "begin": "%[qQwWx]?{", "end": "}" }, { "begin": "%[qQwWx]?<", "end": ">" }, { "begin": "%[qQwWx]?\/", "end": "\/" }, { "begin": "%[qQwWx]?%", "end": "%" }, { "begin": "%[qQwWx]?-", "end": "-" }, { "begin": "%[qQwWx]?\\|", "end": "\\|" }, { "begin": "\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b" }, { "begin": "<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b", "returnBegin": true, "contains": [ { "begin": "<<[-~]?'?" }, { "begin": "\\w+", "endSameAsBegin": true, "contains": [ { "$ref": "#contains.3.starts.contains.0.contains.0" }, { "$ref": "#contains.3.starts.contains.0.contains.1" } ] } ] } ] }, { "begin": "#<", "end": ">" }, { "className": "class", "beginKeywords": "class module", "end": "$|;", "illegal": "=", "contains": [ { "className": "title", "begin": "[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?", "relevance": 0 }, { "begin": "<\\s*", "contains": [ { "begin": "([a-zA-Z]\\w*::)?[a-zA-Z]\\w*" } ] }, { "$ref": "#contains.0" }, { "$ref": "#contains.1" }, { "$ref": "#contains.2" } ] }, { "className": "function", "beginKeywords": "def", "end": "$|;", "contains": [ { "className": "title", "begin": "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-\/+%^&*~`|]|\\[\\]=?", "relevance": 0 }, { "className": "params", "begin": "\\(", "end": "\\)", "endsParent": true, "keywords": { "$ref": "#keywords" }, "contains": { "$ref": "#contains.3.starts.contains" } }, { "$ref": "#contains.0" }, { "$ref": "#contains.1" }, { "$ref": "#contains.2" } ] }, { "begin": "[a-zA-Z]\\w*::" }, { "className": "symbol", "begin": "[a-zA-Z_]\\w*(\\!|\\?)?:", "relevance": 0 }, { "className": "symbol", "begin": ":(?!\\s)", "contains": [ { "$ref": "#contains.3.starts.contains.0" }, { "begin": "[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-\/+%^&*~`|]|\\[\\]=?" } ], "relevance": 0 }, { "className": "number", "begin": "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", "relevance": 0 }, { "begin": "(\\$\\W)|((\\$|\\@\\@?)(\\w+))" }, { "className": "params", "begin": "\\|", "end": "\\|", "keywords": { "$ref": "#keywords" } }, { "begin": "(!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|\/=|\/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~|unless)\\s*", "keywords": "unless", "contains": [ { "$ref": "#contains.3.starts.contains.1" }, { "className": "regexp", "contains": [ { "$ref": "#contains.3.starts.contains.0.contains.0" }, { "$ref": "#contains.3.starts.contains.0.contains.1" } ], "illegal": "\\n", "variants": [ { "begin": "\/", "end": "\/[a-z]*" }, { "begin": "%r{", "end": "}[a-z]*" }, { "begin": "%r\\(", "end": "\\)[a-z]*" }, { "begin": "%r!", "end": "![a-z]*" }, { "begin": "%r\\[", "end": "\\][a-z]*" } ] }, { "$ref": "#contains.0" }, { "$ref": "#contains.1" }, { "$ref": "#contains.2" } ], "relevance": 0 }, { "$ref": "#contains.0" }, { "$ref": "#contains.1" }, { "$ref": "#contains.2" } ] } }, { "className": "meta", "begin": "^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)", "starts": { "end": "$", "contains": { "$ref": "#contains.3.starts.contains" } } }, { "$ref": "#contains.3.starts.contains.0" }, { "$ref": "#contains.3.starts.contains.1" }, { "$ref": "#contains.3.starts.contains.2" }, { "$ref": "#contains.3.starts.contains.3" }, { "$ref": "#contains.3.starts.contains.4" }, { "$ref": "#contains.3.starts.contains.5" }, { "$ref": "#contains.3.starts.contains.6" }, { "$ref": "#contains.3.starts.contains.7" }, { "$ref": "#contains.3.starts.contains.8" }, { "$ref": "#contains.3.starts.contains.9" }, { "$ref": "#contains.3.starts.contains.10" }, { "$ref": "#contains.0" }, { "$ref": "#contains.1" }, { "$ref": "#contains.2" } ] }