{"name":"ASP.NET Razor","scopeName":"text.html.cshtml","patterns":[{"include":"#comments"},{"include":"#razor-directives"},{"include":"#razor-code-block"},{"include":"#razor-else-if"},{"include":"#razor-if"},{"include":"#razor-else"},{"include":"#razor-foreach"},{"include":"#razor-for"},{"include":"#explicit-razor-expression"},{"include":"#implicit-razor-expression"},{"include":"text.html.basic"}],"repository":{"comments":{"name":"comment.block.cshtml","begin":"@\\*","end":"\\*@","captures":{"0":{"name":"punctuation.definition.comment.source.cshtml"}}},"csharp-namespace-identifier":{"patterns":[{"name":"entity.name.type.namespace.cs","match":"[_[:alpha:]][_[:alnum:]]*"}]},"csharp-type-name":{"patterns":[{"match":"([_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)","captures":{"1":{"name":"entity.name.type.alias.cs"},"2":{"name":"punctuation.separator.coloncolon.cs"}}},{"match":"([_[:alpha:]][_[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"storage.type.cs"},"2":{"name":"punctuation.accessor.cs"}}},{"match":"(\\.)\\s*([_[:alpha:]][_[:alnum:]]*)","captures":{"1":{"name":"punctuation.accessor.cs"},"2":{"name":"storage.type.cs"}}},{"name":"storage.type.cs","match":"[_[:alpha:]][_[:alnum:]]*"}]},"explicit-razor-expression":{"name":"meta.expression.explicit.cshtml","begin":"(@)\\(","end":"\\)","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"functions-directive":{"name":"meta.directive.functions.cshtml","match":"(@functions)","captures":{"0":{"name":"keyword.control.cshtml"}}},"implements-directive":{"name":"meta.directive.implements.cshtml","begin":"(@implements)\\s+","end":"$","patterns":[{"include":"#csharp-type-name"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"implicit-razor-expression":{"name":"meta.expression.implicit.cshtml","match":"(?\u003c!@)(@)([a-zA-Z0-9\\.\\_\\(\\)]+)","captures":{"0":{"name":"keyword.control.cshtml"}}},"inherits-directive":{"name":"meta.directive.inherits.cshtml","begin":"(@inherits)\\s+","end":"$","patterns":[{"include":"#csharp-type-name"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"inject-directive":{"name":"meta.directive.inject.cshtml","begin":"(@inject)\\s+","end":"$","patterns":[{"include":"#csharp-type-name"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"layout-directive":{"name":"meta.directive.layout.cshtml","begin":"(@layout)\\s+","end":"$","patterns":[{"include":"#csharp-type-name"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"model-directive":{"name":"meta.directive.model.cshtml","begin":"(@model)\\s+","end":"$","patterns":[{"include":"#csharp-type-name"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"page-directive":{"name":"meta.directive.page.cshtml","begin":"(@page)\\s+","end":"$","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-code-block":{"begin":"@?\\{","end":"\\}","patterns":[{"include":"text.html.cshtml"},{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-directives":{"name":"meta.directive.cshtml","patterns":[{"include":"#using-directive"},{"include":"#model-directive"},{"include":"#inherits-directive"},{"include":"#inject-directive"},{"include":"#implements-directive"},{"include":"#layout-directive"},{"include":"#page-directive"},{"include":"#functions-directive"}]},"razor-else":{"begin":"(else)","end":"$","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-else-if":{"begin":"(else\\s+if)","end":"$","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-for":{"begin":"(@for)\\s*\\(","end":"\\)","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-foreach":{"begin":"(@foreach)\\s*\\(","end":"\\)","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-if":{"begin":"(@if)","end":"$","patterns":[{"include":"source.cs"}],"captures":{"0":{"name":"keyword.control.cshtml"}}},"using-directive":{"name":"meta.directive.using.cshtml","begin":"(@)(?=using)(.*)","end":"(?=$)","captures":{"0":{"name":"keyword.control.cshtml"},"2":{"patterns":[{"include":"source.cs"}]}}}}}