Created
May 7, 2021 00:56
-
-
Save forivall/d6a1fbc1ca902670ad51973b974ac177 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "https://raw.githubusercontent.com/Septh/tmlanguage/master/tmLanguage.schema.json", | |
"name": "Embedded Javascript", | |
"scopeName": "text.html.ejs", | |
"injectionSelector": "L:text.html", | |
"injections": { | |
"text.html.ejs - (meta.embedded.block.ejs | meta.embedded.line.ejs | meta.tag | comment), L:meta.tag, L:source.js.embedded.html": { | |
"patterns": [ | |
{ | |
"begin": "(^\\s*)(?=<%+#(?![^%]*%>))", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.whitespace.comment.leading.ejs" | |
} | |
}, | |
"end": "(?!\\G)(\\s*$\\n)?", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.whitespace.comment.trailing.ejs" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
} | |
] | |
}, | |
{ | |
"begin": "(^\\s*)(?=<%(?![^%]*%>))", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.whitespace.embedded.leading.ejs" | |
} | |
}, | |
"end": "(?!\\G)(\\s*$\\n)?", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.whitespace.embedded.trailing.ejs" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include":"#tag-ejs-single-line" | |
}, | |
{ | |
"include":"#tag-ejs-multi-line" | |
} | |
] | |
}, | |
{ | |
"include": "#tag-block-comment" | |
}, | |
{ | |
"include": "#tag-single-line-section-comment" | |
}, | |
{ | |
"include":"#tag-section-comment" | |
}, | |
{ | |
"include":"#tag-ejs-single-line" | |
}, | |
{ | |
"include":"#tag-ejs-multi-line" | |
} | |
] | |
}, | |
"meta.block.js - (comment.block, text.html.ejs.override-js)": { | |
"patterns": [ | |
{ | |
"begin": "\\G[_-]?([%?])(>)", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.tag.end.ejs" | |
}, | |
"1": { | |
"name": "text.html.ejs.override-js" | |
} | |
}, | |
"end": "(<)(%|\\?)(?![%#])[_=-]?", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.tag.begin.ejs" | |
}, | |
"1": { | |
"name": "text.html.ejs.override-js" | |
} | |
}, | |
"contentName": "text.html.ejs.override-js", | |
"patterns": [ | |
{ | |
"include": "text.html.ejs" | |
} | |
] | |
} | |
] | |
} | |
}, | |
"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": "punctuation.section.embedded.begin.ejs" | |
}, | |
"3": { | |
"name": "punctuation.definition.comment.ejs" | |
}, | |
"5": { | |
"name": "punctuation.definition.comment.ejs" | |
}, | |
"2": { | |
"name": "comment.block.ejs" | |
} | |
}, | |
"end": "([%?]>)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.section.embedded.end.ejs" | |
} | |
}, | |
"contentName": "comment.block.ejs", | |
"name":"meta.block.single.comment.ejs" | |
}, | |
"tag-section-comment": { | |
"name":"comment.block.ejs", | |
"begin":"(<[%?](?:(?!php)))\\s*((?=(\/\\*)))", | |
"beginCaptures": { | |
"1": { | |
"name": "punctuation.section.embedded.begin.ejs" | |
} | |
}, | |
"end": "(\\*\/)\\s*([%?]>)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.comment.ejs" | |
}, | |
"2": { | |
"name": "punctuation.section.embedded.end.ejs" | |
} | |
}, | |
"patterns":[ | |
{ | |
"name":"ejs-end-tag", | |
"match":"([%?]>)", | |
"captures":{ | |
"1":{ | |
"name":"punctuation.section.embedded.end.ejs" | |
} | |
} | |
}, | |
{ | |
"name":"ejs-begin-tag", | |
"match":"(<[%?](?:(?!php)))", | |
"captures":{ | |
"1":{ | |
"name":"punctuation.section.embedded.begin.ejs" | |
} | |
} | |
}, | |
{ | |
"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": "punctuation.section.embedded.begin.ejs" | |
}, | |
"3": { | |
"name": "meta.embedded.ejs", | |
"contentName": "source.js", | |
"patterns":[ | |
{ | |
"include":"source.js" | |
} | |
] | |
}, | |
"6": { | |
"name": "keyword.operator.relational.js" | |
} | |
}, | |
"end": "(([_-]?[%?]>))", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.section.embedded.end.ejs" | |
} | |
} | |
}, | |
"tag-ejs-multi-line": { | |
"contentName":"source.js", | |
"name": "meta.embedded.block.ejs", | |
"begin":"(<[%?](?:(?!php))[%_=-]?)(?!([^%]*?[_-]?[%?]>))", | |
"beginCaptures": { | |
"1": { | |
"name": "punctuation.section.embedded.begin.ejs" | |
}, | |
"3": { | |
"name": "meta.embedded.ejs", | |
"contentName": "source.js", | |
"patterns":[ | |
{ | |
"include":"source.js" | |
} | |
] | |
} | |
}, | |
"end": "(([_-]?[%?]>))", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.section.embedded.end.ejs" | |
} | |
}, | |
"patterns":[ | |
{ | |
"name": "meta.embedded.ejs.override-js", | |
"match": "(.(?![_-]?[%?]>))+", | |
"captures": { | |
"0": { | |
"patterns": [{ | |
"include": "source.js" | |
}] | |
} | |
} | |
}, { | |
"include": "source.js" | |
} | |
] | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
package.json
contributions.grammars
: