{ "displayName": "Ruby", "name": "ruby", "patterns": [ { "captures": { "1": { "name": "keyword.control.class.ruby" }, "11": { "name": "punctuation.separator.namespace.ruby" }, "2": { "name": "entity.name.type.class.ruby" }, "5": { "name": "punctuation.separator.namespace.ruby" }, "7": { "name": "punctuation.separator.inheritance.ruby" }, "8": { "name": "entity.other.inherited-class.ruby" } }, "match": "\\b(class)\\s+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)\\s*((<)\\s*(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*))?", "name": "meta.class.ruby" }, { "captures": { "1": { "name": "keyword.control.module.ruby" }, "2": { "name": "entity.name.type.module.ruby" }, "5": { "name": "punctuation.separator.namespace.ruby" } }, "match": "\\b(module)\\s+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)", "name": "meta.module.ruby" }, { "captures": { "1": { "name": "keyword.control.class.ruby" }, "2": { "name": "punctuation.separator.inheritance.ruby" } }, "match": "\\b(class)\\s*(<<)\\s*", "name": "meta.class.ruby" }, { "match": "(?>)=)" }, { "captures": { "1": { "name": "keyword.control.ruby" }, "3": { "name": "variable.ruby" }, "4": { "name": "keyword.operator.assignment.augmented.ruby" } }, "match": "(?>)=)" }, { "captures": { "1": { "name": "variable.ruby" } }, "match": "^\\s*([_a-z][0-9A-Z_a-z]*)\\s*(?==[^=>])" }, { "captures": { "1": { "name": "keyword.control.ruby" }, "3": { "name": "variable.ruby" } }, "match": "(?]" }, { "captures": { "1": { "name": "punctuation.definition.constant.hashkey.ruby" } }, "match": "(?>[A-Z_a-z]\\w*[!?]?)(:)(?!:)", "name": "constant.language.symbol.hashkey.ruby" }, { "captures": { "1": { "name": "punctuation.definition.constant.ruby" } }, "match": "(?[A-Z_a-z]\\w*[!?]?)(?=\\s*=>)", "name": "constant.language.symbol.hashkey.ruby" }, { "match": "(?)\\(", "beginCaptures": { "1": { "name": "support.function.kernel.ruby" } }, "end": "\\)", "patterns": [ { "begin": "(?=[\\&*A-Z_a-z])", "end": "(?=[),])", "patterns": [ { "include": "#method_parameters" } ] }, { "include": "#method_parameters" } ] }, { "begin": "(?=def\\b)(?<=^|\\s)(def)\\s+((?>[A-Z_a-z]\\w*(?>\\.|::))?(?>[A-Z_a-z]\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\&/`|]|\\*\\*?|=?~|[-+]@?|\\[]=?))\\s*(\\()", "beginCaptures": { "1": { "name": "keyword.control.def.ruby" }, "2": { "name": "entity.name.function.ruby" }, "3": { "name": "punctuation.definition.parameters.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.parameters.ruby" } }, "name": "meta.function.method.with-arguments.ruby", "patterns": [ { "begin": "(?=[\\&*A-Z_a-z])", "end": "(?=[),])", "patterns": [ { "include": "#method_parameters" } ] }, { "include": "#method_parameters" } ] }, { "begin": "(?=def\\b)(?<=^|\\s)(def)\\s+((?>[A-Z_a-z]\\w*(?>\\.|::))?(?>[A-Z_a-z]\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\&/`|]|\\*\\*?|=?~|[-+]@?|\\[]=?))[\\t ](?=[\\t ]*[^#;\\s])", "beginCaptures": { "1": { "name": "keyword.control.def.ruby" }, "2": { "name": "entity.name.function.ruby" } }, "end": "(?=;)|(?<=[]!\"')?`}\\w])(?=\\s*#|\\s*$)", "name": "meta.function.method.with-arguments.ruby", "patterns": [ { "begin": "(?=[\\&*A-Z_a-z])", "end": "(?=[,;]|\\s*#|\\s*$)", "patterns": [ { "include": "#method_parameters" } ] }, { "include": "#method_parameters" } ] }, { "captures": { "1": { "name": "keyword.control.def.ruby" }, "3": { "name": "entity.name.function.ruby" } }, "match": "(?=def\\b)(?<=^|\\s)(def)\\b(\\s+((?>[A-Z_a-z]\\w*(?>\\.|::))?(?>[A-Z_a-z]\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\&/`|]|\\*\\*?|=?~|[-+]@?|\\[]=?)))?", "name": "meta.function.method.without-arguments.ruby" }, { "match": "\\b(\\d(?>_?\\d)*(\\.(?![^\\s\\d])(?>_?\\d)*)?([Ee][-+]?\\d(?>_?\\d)*)?|0(?:[Xx]\\h(?>_?\\h)*|[Oo]?[0-7](?>_?[0-7])*|[Bb][01](?>_?[01])*|[Dd]\\d(?>_?\\d)*))\\b", "name": "constant.numeric.ruby" }, { "begin": ":'", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": "'", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\['\\\\]", "name": "constant.character.escape.ruby" } ] }, { "begin": ":\"", "beginCaptures": { "0": { "name": "punctuation.section.symbol.begin.ruby" } }, "end": "\"", "endCaptures": { "0": { "name": "punctuation.section.symbol.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "match": "(?|=>|==|=~|!~|!=|;|$|if|else|elsif|then|do|end|unless|while|until|or|and)|$)", "captures": { "1": { "name": "string.regexp.interpolated.ruby" }, "2": { "name": "punctuation.section.regexp.ruby" } }, "contentName": "string.regexp.interpolated.ruby", "end": "((/[eimnosux]*))", "patterns": [ { "include": "#regex_sub" } ] }, { "begin": "%r\\{", "beginCaptures": { "0": { "name": "punctuation.section.regexp.begin.ruby" } }, "end": "}[eimnosux]*", "endCaptures": { "0": { "name": "punctuation.section.regexp.end.ruby" } }, "name": "string.regexp.interpolated.ruby", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_curly_r" } ] }, { "begin": "%r\\[", "beginCaptures": { "0": { "name": "punctuation.section.regexp.begin.ruby" } }, "end": "][eimnosux]*", "endCaptures": { "0": { "name": "punctuation.section.regexp.end.ruby" } }, "name": "string.regexp.interpolated.ruby", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_brackets_r" } ] }, { "begin": "%r\\(", "beginCaptures": { "0": { "name": "punctuation.section.regexp.begin.ruby" } }, "end": "\\)[eimnosux]*", "endCaptures": { "0": { "name": "punctuation.section.regexp.end.ruby" } }, "name": "string.regexp.interpolated.ruby", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_parens_r" } ] }, { "begin": "%r<", "beginCaptures": { "0": { "name": "punctuation.section.regexp.begin.ruby" } }, "end": ">[eimnosux]*", "endCaptures": { "0": { "name": "punctuation.section.regexp.end.ruby" } }, "name": "string.regexp.interpolated.ruby", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_ltgt_r" } ] }, { "begin": "%r(\\W)", "beginCaptures": { "0": { "name": "punctuation.section.regexp.begin.ruby" } }, "end": "\\1[eimnosux]*", "endCaptures": { "0": { "name": "punctuation.section.regexp.end.ruby" } }, "name": "string.regexp.interpolated.ruby", "patterns": [ { "include": "#regex_sub" } ] }, { "begin": "%I\\[", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_brackets_i" } ] }, { "begin": "%I\\(", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_parens_i" } ] }, { "begin": "%I<", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_ltgt_i" } ] }, { "begin": "%I\\{", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_curly_i" } ] }, { "begin": "%I(\\W)", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "%i\\[", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[]\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_brackets" } ] }, { "begin": "%i\\(", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[)\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_parens" } ] }, { "begin": "%i<", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[>\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_ltgt" } ] }, { "begin": "%i\\{", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[\\\\}]", "name": "constant.character.escape.ruby" }, { "include": "#nest_curly" } ] }, { "begin": "%i(\\W)", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\." } ] }, { "begin": "%W\\[", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_brackets_i" } ] }, { "begin": "%W\\(", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_parens_i" } ] }, { "begin": "%W<", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_ltgt_i" } ] }, { "begin": "%W\\{", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_curly_i" } ] }, { "begin": "%W(\\W)", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "%w\\[", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[]\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_brackets" } ] }, { "begin": "%w\\(", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[)\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_parens" } ] }, { "begin": "%w<", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[>\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_ltgt" } ] }, { "begin": "%w\\{", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[\\\\}]", "name": "constant.character.escape.ruby" }, { "include": "#nest_curly" } ] }, { "begin": "%w(\\W)", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\." } ] }, { "begin": "%[Qx]?\\(", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_parens_i" } ] }, { "begin": "%[Qx]?\\[", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_brackets_i" } ] }, { "begin": "%[Qx]?\\{", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_curly_i" } ] }, { "begin": "%[Qx]?<", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_ltgt_i" } ] }, { "begin": "%[Qx](\\W)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "%([^=\\w\\s])", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.interpolated.ruby", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "%q\\(", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[)\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_parens" } ] }, { "begin": "%q<", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[>\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_ltgt" } ] }, { "begin": "%q\\[", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[]\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_brackets" } ] }, { "begin": "%q\\{", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\[\\\\}]", "name": "constant.character.escape.ruby" }, { "include": "#nest_curly" } ] }, { "begin": "%q(\\W)", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.definition.string.end.ruby" } }, "name": "string.quoted.other.ruby", "patterns": [ { "match": "\\\\." } ] }, { "begin": "%s\\(", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[)\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_parens" } ] }, { "begin": "%s<", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": ">", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[>\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_ltgt" } ] }, { "begin": "%s\\[", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[]\\\\]", "name": "constant.character.escape.ruby" }, { "include": "#nest_brackets" } ] }, { "begin": "%s\\{", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\[\\\\}]", "name": "constant.character.escape.ruby" }, { "include": "#nest_curly" } ] }, { "begin": "%s(\\W)", "beginCaptures": { "0": { "name": "punctuation.definition.symbol.begin.ruby" } }, "end": "\\1", "endCaptures": { "0": { "name": "punctuation.definition.symbol.end.ruby" } }, "name": "constant.language.symbol.ruby", "patterns": [ { "match": "\\\\." } ] }, { "captures": { "1": { "name": "punctuation.definition.constant.ruby" } }, "match": "(?[$A-Z_a-z]\\w*(?>[!?]|=(?![=>]))?|===?|<=>|>[=>]?|<[<=]?|[%\\&/`|]|\\*\\*?|=?~|[-+]@?|\\[]=?|@@?[A-Z_a-z]\\w*)", "name": "constant.language.symbol.ruby" }, { "begin": "^=begin", "captures": { "0": { "name": "punctuation.definition.comment.ruby" } }, "end": "^=end", "name": "comment.block.documentation.ruby" }, { "include": "#yard" }, { "begin": "(^[\\t ]+)?(?=#)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.ruby" } }, "end": "(?!\\G)", "patterns": [ { "begin": "#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.ruby" } }, "end": "\\n", "name": "comment.line.number-sign.ruby" } ] }, { "match": "(?<<[-~]([\"'`]?)((?:[_\\w]+_|)HTML)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.html", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)HTML)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "text.html", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "text.html.basic" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)HAML)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.haml", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)HAML)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "text.haml", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "text.haml" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)XML)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.xml", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)XML)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "text.xml", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "text.xml" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SQL)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.sql", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SQL)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.sql", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.sql" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)G(?:RAPHQL|QL))\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.graphql", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)G(?:RAPHQL|QL))\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.graphql", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.graphql" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)CSS)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.css", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)CSS)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.css", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.css" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)CPP)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.cpp", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)CPP)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.cpp", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.cpp" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)C)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.c", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)C)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.c", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.c" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)J(?:S|AVASCRIPT))\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.js", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)J(?:S|AVASCRIPT))\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.js", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.js" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)JQUERY)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.js.jquery", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)JQUERY)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.js.jquery", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.js.jquery" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SH(?:|ELL))\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.shell", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SH(?:|ELL))\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.shell", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.shell" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)LUA)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.lua", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)LUA)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.lua", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.lua" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)RUBY)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.ruby", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)RUBY)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.ruby", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.ruby" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)YA?ML)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.yaml", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)YA?ML)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "source.yaml", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "source.yaml" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?=(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SLIM)\\b\\1))", "end": "(?!\\G)", "name": "meta.embedded.block.slim", "patterns": [ { "begin": "(?><<[-~]([\"'`]?)((?:[_\\w]+_|)SLIM)\\b\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "text.slim", "end": "^\\s*\\2$\\n?", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "text.slim" }, { "include": "#escaped_char" } ] } ] }, { "begin": "(?>=\\s*<<([\"'`]?)(\\w+)\\1)", "beginCaptures": { "0": { "name": "string.definition.begin.ruby" } }, "contentName": "string.unquoted.heredoc.ruby", "end": "^\\2$", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "(?>((<<[-~]([\"'`]?)(\\w+)\\3,\\s?)*<<[-~]([\"'`]?)(\\w+)\\5))(.*)", "beginCaptures": { "1": { "name": "string.definition.begin.ruby" }, "7": { "patterns": [ { "include": "source.ruby" } ] } }, "contentName": "string.unquoted.heredoc.ruby", "end": "^\\s*\\6$", "endCaptures": { "0": { "name": "string.definition.end.ruby" } }, "patterns": [ { "include": "#heredoc" }, { "include": "#interpolated_ruby" }, { "include": "#escaped_char" } ] }, { "begin": "(?<=\\{|\\{\\s+|[^$0-:@-Z_a-z]do|^do|[^$0-:@-Z_a-z]do\\s+|^do\\s+)(\\|)", "captures": { "1": { "name": "punctuation.separator.variable.ruby" } }, "end": "(?", "name": "punctuation.separator.key-value" }, { "match": "->", "name": "support.function.kernel.ruby" }, { "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", "name": "keyword.operator.assignment.augmented.ruby" }, { "match": "<=>|<(?![<=])|>(?![<=>])|<=|>=|===?|=~|!=|!~|(?<=[\\t ])\\?", "name": "keyword.operator.comparison.ruby" }, { "match": "(?>", "name": "keyword.operator.other.ruby" }, { "match": ";", "name": "punctuation.separator.statement.ruby" }, { "match": ",", "name": "punctuation.separator.object.ruby" }, { "captures": { "1": { "name": "punctuation.separator.namespace.ruby" } }, "match": "(::)\\s*(?=[A-Z])" }, { "captures": { "1": { "name": "punctuation.separator.method.ruby" } }, "match": "(\\.|::)\\s*(?![A-Z])" }, { "match": ":", "name": "punctuation.separator.other.ruby" }, { "match": "\\{", "name": "punctuation.section.scope.begin.ruby" }, { "match": "}", "name": "punctuation.section.scope.end.ruby" }, { "match": "\\[", "name": "punctuation.section.array.begin.ruby" }, { "match": "]", "name": "punctuation.section.array.end.ruby" }, { "match": "[()]", "name": "punctuation.section.function.ruby" }, { "begin": "(?<=[^.]\\.|::)(?=[A-Za-z][!0-9?A-Z_a-z]*[^!0-9?A-Z_a-z])", "end": "(?<=[!0-9?A-Z_a-z])(?=[^!0-9?A-Z_a-z])", "name": "meta.function-call.ruby", "patterns": [ { "match": "([A-Za-z][!0-9?A-Z_a-z]*)(?=[^!0-9?A-Z_a-z])", "name": "entity.name.function.ruby" } ] }, { "begin": "([A-Za-z]\\w*[!?]?)(\\()", "beginCaptures": { "1": { "name": "entity.name.function.ruby" }, "2": { "name": "punctuation.section.function.ruby" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.section.function.ruby" } }, "name": "meta.function-call.ruby", "patterns": [ { "include": "$self" } ] } ], "repository": { "escaped_char": { "match": "\\\\(?:[0-7]{1,3}|x[A-Fa-f\\d]{1,2}|.)", "name": "constant.character.escape.ruby" }, "heredoc": { "begin": "^<<[-~]?\\w+", "end": "$", "patterns": [ { "include": "$self" } ] }, "interpolated_ruby": { "patterns": [ { "begin": "#\\{", "beginCaptures": { "0": { "name": "punctuation.section.embedded.begin.ruby" } }, "contentName": "source.ruby", "end": "}", "endCaptures": { "0": { "name": "punctuation.section.embedded.end.ruby" } }, "name": "meta.embedded.line.ruby", "patterns": [ { "include": "#nest_curly_and_self" }, { "include": "$self" } ] }, { "captures": { "1": { "name": "punctuation.definition.variable.ruby" } }, "match": "(#@)[A-Z_a-z]\\w*", "name": "variable.other.readwrite.instance.ruby" }, { "captures": { "1": { "name": "punctuation.definition.variable.ruby" } }, "match": "(#@@)[A-Z_a-z]\\w*", "name": "variable.other.readwrite.class.ruby" }, { "captures": { "1": { "name": "punctuation.definition.variable.ruby" } }, "match": "(#\\$)[A-Z_a-z]\\w*", "name": "variable.other.readwrite.global.ruby" } ] }, "method_parameters": { "patterns": [ { "include": "#parens" }, { "include": "#braces" }, { "include": "#brackets" }, { "include": "#params" }, { "include": "$self" } ], "repository": { "braces": { "begin": "\\{", "beginCaptures": { "0": { "name": "punctuation.section.scope.begin.ruby" } }, "end": "}", "endCaptures": { "0": { "name": "punctuation.section.scope.end.ruby" } }, "patterns": [ { "include": "#parens" }, { "include": "#braces" }, { "include": "#brackets" }, { "include": "$self" } ] }, "brackets": { "begin": "\\[", "beginCaptures": { "0": { "name": "punctuation.section.array.begin.ruby" } }, "end": "]", "endCaptures": { "0": { "name": "punctuation.section.array.end.ruby" } }, "patterns": [ { "include": "#parens" }, { "include": "#braces" }, { "include": "#brackets" }, { "include": "$self" } ] }, "params": { "captures": { "1": { "name": "storage.type.variable.ruby" }, "2": { "name": "constant.other.symbol.hashkey.parameter.function.ruby" }, "3": { "name": "punctuation.definition.constant.ruby" }, "4": { "name": "variable.parameter.function.ruby" } }, "match": "\\G(&|\\*\\*?)?(?:([A-Z_a-z]\\w*[!?]?(:))|([A-Z_a-z]\\w*))" }, "parens": { "begin": "\\(", "beginCaptures": { "0": { "name": "punctuation.section.function.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.function.end.ruby" } }, "patterns": [ { "include": "#parens" }, { "include": "#braces" }, { "include": "#brackets" }, { "include": "$self" } ] } } }, "nest_brackets": { "begin": "\\[", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "]", "patterns": [ { "include": "#nest_brackets" } ] }, "nest_brackets_i": { "begin": "\\[", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "]", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_brackets_i" } ] }, "nest_brackets_r": { "begin": "\\[", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "]", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_brackets_r" } ] }, "nest_curly": { "begin": "\\{", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "}", "patterns": [ { "include": "#nest_curly" } ] }, "nest_curly_and_self": { "patterns": [ { "begin": "\\{", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "}", "patterns": [ { "include": "#nest_curly_and_self" } ] }, { "include": "$self" } ] }, "nest_curly_i": { "begin": "\\{", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "}", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_curly_i" } ] }, "nest_curly_r": { "begin": "\\{", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "}", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_curly_r" } ] }, "nest_ltgt": { "begin": "<", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": ">", "patterns": [ { "include": "#nest_ltgt" } ] }, "nest_ltgt_i": { "begin": "<", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": ">", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_ltgt_i" } ] }, "nest_ltgt_r": { "begin": "<", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": ">", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_ltgt_r" } ] }, "nest_parens": { "begin": "\\(", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "\\)", "patterns": [ { "include": "#nest_parens" } ] }, "nest_parens_i": { "begin": "\\(", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "\\)", "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "include": "#nest_parens_i" } ] }, "nest_parens_r": { "begin": "\\(", "captures": { "0": { "name": "punctuation.section.scope.ruby" } }, "end": "\\)", "patterns": [ { "include": "#regex_sub" }, { "include": "#nest_parens_r" } ] }, "regex_sub": { "patterns": [ { "include": "#interpolated_ruby" }, { "include": "#escaped_char" }, { "captures": { "1": { "name": "punctuation.definition.arbitrary-repetition.ruby" }, "3": { "name": "punctuation.definition.arbitrary-repetition.ruby" } }, "match": "(\\{)\\d+(,\\d+)?(})", "name": "string.regexp.arbitrary-repetition.ruby" }, { "begin": "\\[(?:\\^?])?", "captures": { "0": { "name": "punctuation.definition.character-class.ruby" } }, "end": "]", "name": "string.regexp.character-class.ruby", "patterns": [ { "include": "#escaped_char" } ] }, { "begin": "\\(\\?#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.begin.ruby" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.definition.comment.end.ruby" } }, "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#escaped_char" } ] }, { "begin": "\\(", "captures": { "0": { "name": "punctuation.definition.group.ruby" } }, "end": "\\)", "name": "string.regexp.group.ruby", "patterns": [ { "include": "#regex_sub" } ] }, { "begin": "(?<=^|\\s)(#)\\s(?=[-\\t !,.0-9?A-Za-z[^\\x00-\\x7F]]*$)", "beginCaptures": { "1": { "name": "punctuation.definition.comment.ruby" } }, "end": "$\\n?", "endCaptures": { "0": { "name": "punctuation.definition.comment.ruby" } }, "name": "comment.line.number-sign.ruby" } ] }, "yard": { "patterns": [ { "include": "#yard_comment" }, { "include": "#yard_param_types" }, { "include": "#yard_option" }, { "include": "#yard_tag" }, { "include": "#yard_types" }, { "include": "#yard_directive" }, { "include": "#yard_see" }, { "include": "#yard_macro_attribute" } ] }, "yard_comment": { "begin": "^(\\s*)(#)(\\s*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\\s|$)", "beginCaptures": { "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_continuation": { "match": "^\\s*#", "name": "punctuation.definition.comment.ruby" }, "yard_directive": { "begin": "^(\\s*)(#)(\\s*)(@!)(endgroup|group|method|parse|scope|visibility)(\\s+((\\[).+(])))?(?=\\s)", "beginCaptures": { "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "7": { "name": "comment.line.type.yard.ruby" }, "8": { "name": "comment.line.punctuation.yard.ruby" }, "9": { "name": "comment.line.punctuation.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_macro_attribute": { "begin": "^(\\s*)(#)(\\s*)(@!)(attribute|macro)(\\s+((\\[).+(])))?(?=\\s)(\\s+([_a-z]\\w*:?))?", "beginCaptures": { "11": { "name": "comment.line.parameter.yard.ruby" }, "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "7": { "name": "comment.line.type.yard.ruby" }, "8": { "name": "comment.line.punctuation.yard.ruby" }, "9": { "name": "comment.line.punctuation.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_option": { "begin": "^(\\s*)(#)(\\s*)(@)(option)(?=\\s)(?>\\s+([_a-z]\\w*:?))?(?>\\s+((\\[).+(])))?(?>\\s+((\\S*)))?(?>\\s+((\\().+(\\))))?", "beginCaptures": { "10": { "name": "comment.line.keyword.yard.ruby" }, "11": { "name": "comment.line.hashkey.yard.ruby" }, "12": { "name": "comment.line.defaultvalue.yard.ruby" }, "13": { "name": "comment.line.punctuation.yard.ruby" }, "14": { "name": "comment.line.punctuation.yard.ruby" }, "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "6": { "name": "comment.line.parameter.yard.ruby" }, "7": { "name": "comment.line.type.yard.ruby" }, "8": { "name": "comment.line.punctuation.yard.ruby" }, "9": { "name": "comment.line.punctuation.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_param_types": { "begin": "^(\\s*)(#)(\\s*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\s)(?>\\s+(?>([_a-z]\\w*:?)|((\\[).+(]))))?(?>\\s+(?>((\\[).+(]))|([_a-z]\\w*:?)))?", "beginCaptures": { "10": { "name": "comment.line.type.yard.ruby" }, "11": { "name": "comment.line.punctuation.yard.ruby" }, "12": { "name": "comment.line.punctuation.yard.ruby" }, "13": { "name": "comment.line.parameter.yard.ruby" }, "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "6": { "name": "comment.line.parameter.yard.ruby" }, "7": { "name": "comment.line.type.yard.ruby" }, "8": { "name": "comment.line.punctuation.yard.ruby" }, "9": { "name": "comment.line.punctuation.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_see": { "begin": "^(\\s*)(#)(\\s*)(@)(see)(?=\\s)(\\s+(.+?))?(?=\\s|$)", "beginCaptures": { "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "7": { "name": "comment.line.parameter.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] }, "yard_tag": { "captures": { "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" } }, "match": "^(\\s*)(#)(\\s*)(@)(private)$", "name": "comment.line.number-sign.ruby" }, "yard_types": { "begin": "^(\\s*)(#)(\\s*)(@)(raise|return|yield(?:return)?)(?=\\s)(\\s+((\\[).+(])))?", "beginCaptures": { "2": { "name": "punctuation.definition.comment.ruby" }, "4": { "name": "comment.line.keyword.punctuation.yard.ruby" }, "5": { "name": "comment.line.keyword.yard.ruby" }, "7": { "name": "comment.line.type.yard.ruby" }, "8": { "name": "comment.line.punctuation.yard.ruby" }, "9": { "name": "comment.line.punctuation.yard.ruby" } }, "contentName": "comment.line.string.yard.ruby", "end": "^(?!\\s*#\\3\\s{2,}|\\s*#\\s*$)", "name": "comment.line.number-sign.ruby", "patterns": [ { "include": "#yard" }, { "include": "#yard_continuation" } ] } }, "scopeName": "source.ruby" }