{"name":"Redirect Rules","scopeName":"source.redirects","patterns":[{"include":"#main"}],"repository":{"code":{"name":"string.unquoted.code.redirects","match":"(?\u003c==)[a-z]{2}(?:-[A-Z]{2})?(?=\\s|$)"},"comment":{"name":"comment.line.hash.redirects","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.redirects"}}},"main":{"patterns":[{"include":"#comment"},{"include":"#uri"},{"include":"#query"},{"include":"#number"},{"include":"#code"},{"include":"#punct"},{"include":"#text"}]},"number":{"match":"(\\d+)(!)?","captures":{"1":{"name":"constant.numeric.integer.redirects"},"2":{"name":"constant.character.force.redirects"}}},"punct":{"patterns":[{"name":"punctuation.accessor.redirects","match":":|="},{"name":"punctuation.separator.redirects","match":",(?!\\s)"}]},"query":{"name":"keyword.other.query-selector.redirects","match":"[^\\s]+(?==)"},"splat":{"name":"variable.other.splat.redirects","match":":\\w+"},"text":{"name":"string.unquoted.text.redirects","match":"(?\u003c==)[^\\s]+"},"uri":{"name":"string.unquoted.uri.redirects","begin":"(?:[a-z]+:)?\\/","end":"[\\s$]","patterns":[{"include":"#wildcard"},{"include":"#splat"}]},"wildcard":{"name":"constant.character.wildcard.redirects","match":"\\*"}}}
