diff --git a/extensions/handlebars/OSSREADME.json b/extensions/handlebars/OSSREADME.json new file mode 100644 index 00000000000..4cd9f77af8b --- /dev/null +++ b/extensions/handlebars/OSSREADME.json @@ -0,0 +1,7 @@ +// ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: +[{ + "name": "daaain/Handlebars", + "version": "0.0.0", + "license": "MIT", + "repositoryURL": "https://github.com/daaain/Handlebars" +}] diff --git a/extensions/handlebars/language-configuration.json b/extensions/handlebars/language-configuration.json new file mode 100644 index 00000000000..0aa8cec1ade --- /dev/null +++ b/extensions/handlebars/language-configuration.json @@ -0,0 +1,23 @@ +{ + "comments": { + "blockComment": [ "" ] + }, + "brackets": [ + [""], + ["<", ">"], + ["{{", "}}"] + ], + "autoClosingPairs": [ + { "open": "{", "close": "}"}, + { "open": "[", "close": "]"}, + { "open": "(", "close": ")" }, + { "open": "'", "close": "'" }, + { "open": "\"", "close": "\"" }, + { "open": "<", "close": ">" } + ], + "surroundingPairs": [ + { "open": "'", "close": "'" }, + { "open": "\"", "close": "\"" }, + { "open": "<", "close": ">" } + ] +} \ No newline at end of file diff --git a/extensions/handlebars/package.json b/extensions/handlebars/package.json new file mode 100644 index 00000000000..09fbef8bf67 --- /dev/null +++ b/extensions/handlebars/package.json @@ -0,0 +1,24 @@ +{ + "name": "handlebars", + "version": "0.1.0", + "publisher": "vscode", + "engines": { + "vscode": "0.10.x" + }, + "scripts": { + "update-grammar": "node ../../build/npm/update-grammar.js daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.json" + }, + "contributes": { + "languages": [{ + "id": "handlebars", + "extensions": [ ".handlebars", ".hbs"], + "aliases": [ "Handlebars", "handlebars" ], + "mimetypes": ["text/x-handlebars-template"] + }], + "grammars": [{ + "language": "handlebars", + "scopeName": "text.html.handlebars", + "path": "./syntaxes/Handlebars.json" + }] + } +} diff --git a/extensions/handlebars/syntaxes/Handlebars.json b/extensions/handlebars/syntaxes/Handlebars.json new file mode 100644 index 00000000000..b354cb6f2f9 --- /dev/null +++ b/extensions/handlebars/syntaxes/Handlebars.json @@ -0,0 +1,854 @@ +{ + "name": "Handlebars", + "repository": { + "html_tags": { + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>(<)/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "meta.scope.between-tag-pair.html" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "meta.tag.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml.html", + "patterns": [ + { + "include": "#tag_generic_attribute" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "