{ "name": "Embedded Javascript", "scopeName": "text.html.ejs", "injectionSelector": "L:text.html", "patterns": [ { "include": "#tag-block-comment" }, { "include": "#tag-single-line-section-comment" }, { "include":"#tag-section-comment" }, { "include":"#tag-ejs-single-line" }, { "include":"#tag-ejs-multi-line" } ], "repository": { "tag-block-comment": { "begin": "<[%?]#", "beginCaptures": { "0": { "name": "punctuation.definition.comment.ejs" } }, "end": "[%?]>", "endCaptures": { "0": { "name": "punctuation.definition.comment.ejs" } }, "name": "comment.block.ejs" }, "tag-single-line-section-comment": { "begin": "(<[%?](?:(?!php))[%_=-]?)\\s*((\/\\*)(.*)(\\*\/))(?=(\\s*([%?]>)))", "captures": { "1": { "name": "keyword.operator.relational.js" }, "3": { "name": "punctuation.definition.comment.ejs" }, "5": { "name": "punctuation.definition.comment.ejs" }, "2": { "name": "comment.block.ejs" } }, "end": "([%?]>)", "endCaptures": { "1": { "name": "keyword.operator.relational.js" } }, "contentName": "comment.block.ejs", "name":"meta.block.single.comment.ejs" }, "tag-section-comment": { "name":"comment.block.ejs", "begin":"(<[%?](?:(?!php)))\\s*((?=(\/\\*)))", "beginCaptures": { "1": { "name": "keyword.operator.relational.js" } }, "end": "(\\*\/)\\s*([%?]>)", "endCaptures": { "1": { "name": "punctuation.definition.comment.ejs" }, "2": { "name": "keyword.operator.relational.js" } }, "patterns":[ { "name":"ejs-end-tag", "match":"([%?]>)", "captures":{ "1":{ "name":"keyword.operator.relational.js" } } }, { "name":"ejs-begin-tag", "match":"(<[%?](?:(?!php)))", "captures":{ "1":{ "name":"keyword.operator.relational.js" } } }, { "include":"text.html.ejs" } ] }, "tag-ejs-single-line": { "name": "meta.tag.metadata.script.ejs", "begin":"(<[%?](?:(?!php))[%_=-]?)(?!(\\s*\\*\/))(((?!([_-]?[%?]>)).)+)(?=([_-]?[%?]>))", "beginCaptures": { "0": { "contentName":"source.js", "name": "meta.embedded.*" }, "1": { "name": "keyword.operator.relational.js" }, "3": { "name": "meta.embedded.ejs", "contentName": "source.js", "patterns":[ { "include":"source.js" } ] }, "6": { "name": "keyword.operator.relational.js" } }, "end": "(([_-]?[%?]>))", "endCaptures": { "1": { "name": "keyword.operator.relational.js" } } }, "tag-ejs-multi-line": { "contentName":"source.js", "name": "meta.block.ejs", "begin":"(<[%?](?:(?!php))[%_=-]?)(?!(\\s*\\*\/))", "beginCaptures": { "1": { "name": "keyword.operator.relational.js" }, "3": { "name": "meta.embedded.ejs", "contentName": "source.js", "patterns":[ { "include":"source.js" } ] } }, "end": "(([_-]?[%?]>))", "endCaptures": { "1": { "name": "keyword.operator.relational.js" } }, "patterns":[ { "include":"source.js" } ] } } }