{ "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:]]*" } ] } } }