{"information_for_contributors":["This file has been converted from https://github.com/demyte/language-cshtml/blob/master/grammars/cshtml.json","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."],"version":"https://github.com/demyte/language-cshtml/commit/e6e54d5a86a28cc1e44609a32aaa10a244cd3f81","name":"ASP.NET Razor","scopeName":"text.html.cshtml","patterns":[{"include":"#razor-directives"},{"include":"#razor-code-block"},{"include":"#razor-else-if"},{"include":"#razor-if"},{"include":"#razor-else"},{"include":"#razor-foreach"},{"include":"#explicit-razor-expression"},{"include":"#implicit-razor-expression"},{"include":"text.html.basic"}],"repository":{"comments":{"begin":"@\\*","captures":{"0":{"name":"punctuation.definition.comment.source.cshtml"}},"end":"\\*@","name":"comment.block.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"}]},"explicit-razor-expression":{"name":"meta.expression.explicit.cshtml","begin":"(@)\\(","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"\\)"},"implicit-razor-expression":{"name":"meta.expression.implicit.cshtml","begin":"(@)([a-zA-Z0-9\\.\\_\\(\\)]+)","captures":{"0":{"name":"keyword.control.cshtml"}},"end":"$"},"using-directive":{"name":"meta.directive.using.cshtml","begin":"(@using)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-namespace-identifier"}],"end":"$"},"model-directive":{"name":"meta.directive.model.cshtml","begin":"(@model)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-type-name"}],"end":"$"},"inherits-directive":{"name":"meta.directive.inherits.cshtml","begin":"(@inherits)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-type-name"}],"end":"$"},"inject-directive":{"name":"meta.directive.inject.cshtml","begin":"(@inject)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-type-name"}],"end":"$"},"implements-directive":{"name":"meta.directive.implements.cshtml","begin":"(@implements)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-type-name"}],"end":"$"},"layout-directive":{"name":"meta.directive.layout.cshtml","begin":"(@layout)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"#csharp-type-name"}],"end":"$"},"page-directive":{"name":"meta.directive.page.cshtml","begin":"(@page)\\s+","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"$"},"functions-directive":{"name":"meta.directive.functions.cshtml","match":"(@functions)","captures":{"0":{"name":"keyword.control.cshtml"}}},"razor-if":{"begin":"(@if)","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"$"},"razor-else":{"begin":"(else)","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"$"},"razor-else-if":{"begin":"(else\\s+if)","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"$"},"razor-foreach":{"begin":"(@foreach)\\s+\\(","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"source.cs"}],"end":"\\)"},"razor-code-block":{"begin":"@?\\{","captures":{"0":{"name":"keyword.control.cshtml"}},"patterns":[{"include":"text.html.cshtml"},{"include":"source.cs"}],"end":"\\}"},"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:]]*"}]}}}