packages/vscode-extension-language-support-vue/assets/vetur/syntaxes/vue.yaml (503 lines of code) (raw):

# [PackageDev] target_format: plist, ext: tmLanguage name: Vue scopeName: source.vue fileTypes: [vue] uuid: 5512c10d-4cc5-434c-b8fc-53b912f55ab3 patterns: # comment - name: comment.block.html begin: <!-- end: --> captures: '0': { name: punctuation.definition.comment.html } # template - single line # <template src="index.html" /> - begin: (<)(?=template.*[^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } end: (/>) endCaptures: '1': { name: punctuation.definition.tag.end.html } patterns: - begin: (template) beginCaptures: '1': { name: entity.name.tag.template.html } end: (?=/>) patterns: - include: '#tag-stuff' # template - single line # <template src="index.html"></template> - begin: (<)(template)(?=[^>]*>[^/>]*</template>) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) # jade / pug - begin: (<)(template)\b(?=[^>]*lang=('jade'|"jade"|'pug'|"pug"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.pug begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) patterns: - include: text.pug # haml - begin: (<)(template)\b(?=[^>]*lang=('haml'|"haml"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.haml begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) patterns: - include: text.haml # slim - begin: (<)(template)\b(?=[^>]*lang=('slim'|"slim"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.slim begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) patterns: - include: text.slim # slm - begin: (<)(template)\b(?=[^>]*lang=('slm'|"slm"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.jade.slm begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) patterns: - include: text.jade.slm # liquid - begin: (<)(template)\b(?=[^>]*lang=('liquid'|"liquid"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: (</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.html.liquid begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</template>) patterns: - include: text.html.liquid # html - begin: (<)(template)(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } end: ^(</)(template)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.template.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: text.html.vue-html begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=^</template>) patterns: - include: text.html.vue-html # style - single line # <style src="index.css" /> - begin: (<)(style)\b(?=[^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (/>) endCaptures: '1': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' # style - single line # <style src="index.css"></style> - begin: (<)(style)(?=[^>]*>[^/>]*</style>) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) # sass / scss - begin: (<)(style)\b(?=[^>]*lang=('sass'|"sass"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.sass begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.sass - begin: (<)(style)\b(?=[^>]*lang=('scss'|"scss"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.css.scss begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.css.scss # less - begin: (<)(style)\b(?=[^>]*lang=('less'|"less"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.css.less begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.css.less # stylus - begin: (<)(style)\b(?=[^>]*lang=('stylus'|"stylus"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.stylus begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.stylus # postcss - begin: (<)(style)\b(?=[^>]*lang=('postcss'|"postcss"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.css.postcss begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.css.postcss # sugarss - begin: (<)(style)\b(?=[^>]*lang=(['"]sss['"]))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.css.sugarss begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.css.sugarss # css - begin: (<)(style)(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } end: (</)(style)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.style.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.css begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</style>) patterns: - include: source.css # script - single line # <script src="index.js" /> - begin: (<)(script)\b(?=[^>]*/>$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } end: (/>) endCaptures: '1': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' # script - single line # <script src="index.js"></script> - begin: (<)(script)(?=[^>]*>[^/>]*</script>) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } end: (</)(script)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</script>) # ts - begin: (<)(script)\b(?=[^>]*lang=('ts'|"ts"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } end: (</)(script)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.ts begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</script>) patterns: - include: source.ts # coffee - begin: (<)(script)\b(?=[^>]*lang=('coffee'|"coffee"))(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } end: (</)(script)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.coffee begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</script>) patterns: - include: source.coffee # js - begin: (<)(script)(?![^/>]*/>\s*$) beginCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } end: (</)(script)(>) endCaptures: '1': { name: punctuation.definition.tag.begin.html } '2': { name: entity.name.tag.script.html } '3': { name: punctuation.definition.tag.end.html } patterns: - include: '#tag-stuff' - contentName: source.js begin: (>) beginCaptures: '1': { name: punctuation.definition.tag.end.html } end: (?=</script>) patterns: - include: source.js # Repository repository: entities: patterns: - name: constant.character.entity.html match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) captures: '1': { name: punctuation.definition.entity.html } '3': { name: punctuation.definition.entity.html } - name: invalid.illegal.bad-ampersand.html match: '&' string-double-quoted: name: string.quoted.double.html begin: '"' beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: '"' endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: '#vue-interpolations' - include: '#entities' string-single-quoted: name: string.quoted.single.html begin: "'" beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: "'" endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: '#vue-interpolations' - include: '#entities' tag-generic-attribute: name: entity.other.attribute-name.html match: \b([a-zA-Z\-:_]+) tag-id-attribute: name: meta.attribute-with-value.id.html begin: \b(id)\b\s*(=) end: (?<='|") captures: '1': { name: entity.other.attribute-name.id.html } '2': { name: punctuation.separator.key-value.html } patterns: - name: string.quoted.double.html contentName: meta.toc-list.id.html begin: '"' beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: '"' endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: '#vue-interpolations' - include: '#entities' - name: string.quoted.single.html contentName: meta.toc-list.id.html begin: "'" beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: "'" endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: '#vue-interpolations' - include: '#entities' tag-stuff: patterns: - include: '#vue-directives' - include: '#tag-id-attribute' - include: '#tag-generic-attribute' - include: '#string-double-quoted' - include: '#string-single-quoted' vue-directives: name: meta.directive.vue begin: (?:\b(v-)|(:|@|#))([a-zA-Z0-9\-_]+)(?:\:([a-zA-Z\-_]+))?(?:\.([a-zA-Z\-_]+))*\s*(=) end: (?<='|")|(?=[\s<>`]) captures: '1': { name: entity.other.attribute-name.html } '2': { name: punctuation.separator.key-value.html } '3': { name: entity.other.attribute-name.html } '4': { name: entity.other.attribute-name.html } '5': { name: entity.other.attribute-name.html } '6': { name: punctuation.separator.key-value.html } patterns: - name: source.directive.vue begin: '`' beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: '`' endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: source.js#expression - name: source.directive.vue begin: '"' beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: '"' endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: source.js#expression - name: source.directive.vue begin: "'" beginCaptures: '0': { name: punctuation.definition.string.begin.html } end: "'" endCaptures: '0': { name: punctuation.definition.string.end.html } patterns: - include: source.js#expression vue-interpolations: patterns: - name: expression.embedded.vue begin: \{\{\{? beginCaptures: '0': { name: punctuation.definition.generic.begin.html } end: \}\}\}? endCaptures: '0': { name: punctuation.definition.generic.end.html } patterns: - include: source.js#expression