diff --git a/package.json b/package.json index e91f6db..847c2df 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,16 @@ "id": "vogue", "aliases": ["Vogue", "vogue"], "extensions": [".v"], + "filenames": [".v"], "configuration": "./language-configuration.json" }], "grammars": [{ "language": "vogue", - "scopeName": "main.v", - "path": "./syntaxes/vogue.tmLanguage.json" + "scopeName": "source.vogue", + "path": "./syntaxes/vogue.tmLanguage.json", + "embeddedLanguages": { + "source.js": "javescript" + } }] } } \ No newline at end of file diff --git a/syntaxes/vogue.tmLanguage.json b/syntaxes/vogue.tmLanguage.json index 6c81a9a..e7f5896 100644 --- a/syntaxes/vogue.tmLanguage.json +++ b/syntaxes/vogue.tmLanguage.json @@ -7,13 +7,32 @@ }, { "include": "#strings" + }, + { + "include": "#inlinejs" } ], "repository": { + "inlinejs": { + "begin": "\\[\\[", + "beginCaptures": { + "0": { "name": "begin.brace.nearley" } + }, + "end": "\\]\\]", + "endCaptures": { + "0": { "name": "end.brace.nearley" } + }, + "name": "source.js.embedded.nearley", + "patterns": [ + { + "include": "source.js" + } + ] + }, "keywords": { "patterns": [{ "name": "keyword.control.vogue", - "match": "\\b(if|while|for|return|global|function|link)\\b" + "match": "\\b(namespace|required|restore|link)\\b" }] }, "strings": {