From de8e8453ff872779eb1c9a5f23880bea5d589c58 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 18 Mar 2016 15:43:28 -0400 Subject: [PATCH 01/31] remove firstLineMatch (fix #39) --- vue.YAML-tmLanguage | 1 - vue.tmLanguage | 2 -- 2 files changed, 3 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 0b6c348..50aca0d 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -311,7 +311,6 @@ repository: - include: '#tag-generic-attribute' - include: '#string-double-quoted' - include: '#string-single-quoted' -firstLineMatch: diff --git a/vue.tmLanguage b/vue.tmLanguage index 0c2da7f..ec441f6 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -6,8 +6,6 @@ vue - firstLineMatch - <!(?i:DOCTYPE)|<(?i:html)|<\?(?i:php) foldingStartMarker (?x) (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?> From 93797e2eb02200e54cfdeb0eaaec8c2699235ade Mon Sep 17 00:00:00 2001 From: jpokrzyk Date: Sun, 13 Mar 2016 13:02:04 -0400 Subject: [PATCH 02/31] Use the stylus plugin for the embedded stylus code --- vue.YAML-tmLanguage | 2 +- vue.tmLanguage | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 0b6c348..a57e4d5 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -77,7 +77,7 @@ patterns: patterns: - include: text.jade -- name: source.vue-stylus.embedded.html +- name: source.stylus.embedded.html begin: (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang="stylus(?:\?[^"]*)?") end: ()(?:\s*\n)? captures: diff --git a/vue.tmLanguage b/vue.tmLanguage index 0c2da7f..882f494 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -285,7 +285,7 @@ end (</)((?i:style))(>)(?:\s*\n)? name - source.vue-stylus.embedded.html + source.stylus.embedded.html patterns From c6b869648d2b8e170db7bdbaefc61aef3f092dad Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 9 Apr 2016 15:05:57 -0400 Subject: [PATCH 03/31] avoid highlighting & inside attribute values (fix #42) --- vue.YAML-tmLanguage | 10 ++++++--- vue.tmLanguage | 52 +++++++++++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 7e5e2c0..90dd365 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -240,15 +240,19 @@ patterns: repository: - entities: + string-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} + + entities: + patterns: - name: invalid.illegal.bad-ampersand.html match: '&' + - include: '#string-entities' string-double-quoted: name: string.quoted.double.html @@ -259,7 +263,7 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: - - include: '#entities' + - include: '#string-entities' string-single-quoted: name: string.quoted.single.html @@ -270,7 +274,7 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: - - include: '#entities' + - include: '#string-entities' tag-generic-attribute: name: entity.other.attribute-name.html diff --git a/vue.tmLanguage b/vue.tmLanguage index ebecdfb..94d25cf 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -796,31 +796,16 @@ patterns - - captures - - 1 - - name - punctuation.definition.entity.html - - 3 - - name - punctuation.definition.entity.html - - - match - (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) - name - constant.character.entity.html - match & name invalid.illegal.bad-ampersand.html + + include + #string-entities + string-double-quoted @@ -851,7 +836,32 @@ include - #entities + #string-entities + + + + string-entities + + patterns + + + captures + + 1 + + name + punctuation.definition.entity.html + + 3 + + name + punctuation.definition.entity.html + + + match + (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) + name + constant.character.entity.html @@ -883,7 +893,7 @@ include - #entities + #string-entities From 6e787b5c96da8c1abd51de0382a435a13433316a Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 9 Apr 2016 15:08:40 -0400 Subject: [PATCH 04/31] fix entities in plain text --- vue.YAML-tmLanguage | 2 +- vue.tmLanguage | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 90dd365..d0aebe6 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -250,9 +250,9 @@ repository: entities: patterns: + - include: '#string-entities' - name: invalid.illegal.bad-ampersand.html match: '&' - - include: '#string-entities' string-double-quoted: name: string.quoted.double.html diff --git a/vue.tmLanguage b/vue.tmLanguage index 94d25cf..77377db 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -796,16 +796,16 @@ patterns + + include + #string-entities + match & name invalid.illegal.bad-ampersand.html - - include - #string-entities - string-double-quoted From 26a39655ed3f1150bdd7de01035b92e505f1f17e Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 9 Apr 2016 17:08:18 -0400 Subject: [PATCH 05/31] support highlighting embedded expressions inside vue directives --- vue.YAML-tmLanguage | 45 +++++++++++-- vue.tmLanguage | 159 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 168 insertions(+), 36 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index d0aebe6..5d71ce8 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -240,17 +240,13 @@ patterns: repository: - string-entities: + 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} - - entities: - patterns: - - include: '#string-entities' - name: invalid.illegal.bad-ampersand.html match: '&' @@ -263,7 +259,7 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: - - include: '#string-entities' + - include: '#entities' string-single-quoted: name: string.quoted.single.html @@ -274,7 +270,38 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: - - include: '#string-entities' + - include: '#entities' + + vue-directive: + name: meta.directive.vue + begin: (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) + end: (?<='|") + 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 + - 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 tag-generic-attribute: name: entity.other.attribute-name.html @@ -311,10 +338,12 @@ repository: tag-stuff: patterns: + - include: '#vue-directive' - include: '#tag-id-attribute' - include: '#tag-generic-attribute' - include: '#string-double-quoted' - include: '#string-single-quoted' + foldingStartMarker: |- (?x) (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?> @@ -324,6 +353,7 @@ foldingStartMarker: |- |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) ) + foldingStopMarker: |- (?x) ( @@ -333,4 +363,5 @@ foldingStopMarker: |- |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) |^[^{]*\} ) + keyEquivalent: ^~H diff --git a/vue.tmLanguage b/vue.tmLanguage index 77377db..f861b2e 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -797,8 +797,23 @@ patterns - include - #string-entities + captures + + 1 + + name + punctuation.definition.entity.html + + 3 + + name + punctuation.definition.entity.html + + + match + (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) + name + constant.character.entity.html match @@ -836,32 +851,7 @@ include - #string-entities - - - - string-entities - - patterns - - - captures - - 1 - - name - punctuation.definition.entity.html - - 3 - - name - punctuation.definition.entity.html - - - match - (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) - name - constant.character.entity.html + #entities @@ -893,7 +883,7 @@ include - #string-entities + #entities @@ -999,6 +989,10 @@ patterns + + include + #vue-directive + include #tag-id-attribute @@ -1017,6 +1011,113 @@ + vue-directive + + begin + (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\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 + + + end + (?<='|") + name + meta.directive.vue + patterns + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.html + + + end + " + endCaptures + + 0 + + name + punctuation.definition.string.end.html + + + name + source.directive.vue + patterns + + + include + source.js + + + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.html + + + end + ' + endCaptures + + 0 + + name + punctuation.definition.string.end.html + + + name + source.directive.vue + patterns + + + include + source.js + + + + + scopeName text.html.vue From 16b6051f20b4ea994787147bf68e9064e7be9e1b Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 10 Apr 2016 13:39:11 -0400 Subject: [PATCH 06/31] also highlight interpolations --- vue.YAML-tmLanguage | 81 +++++++++++++++++++++++++++------------------ vue.tmLanguage | 61 ++++++++++++++++++++++++++++++++-- 2 files changed, 108 insertions(+), 34 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 5d71ce8..5bb10fc 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -6,6 +6,8 @@ fileTypes: [vue] uuid: 5512c10d-4cc5-434c-b8fc-53b912f55ab3 patterns: +- include: '#vue-interpolations' + - name: meta.tag.any.html begin: (<)([a-zA-Z0-9:-]++)(?=[^>]*>) beginCaptures: @@ -239,6 +241,48 @@ patterns: match: < repository: + vue-interpolations: + patterns: + - name: expression.embbeded.vue + begin: \{\{\{? + end: \}\}\}? + beginCaptures: + '0': {name: punctuation.definition.tag.begin.html} + endCaptures: + '0': {name: punctuation.definition.tag.end.html} + patterns: + - include: source.js + + vue-directives: + name: meta.directive.vue + begin: (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) + end: (?<='|") + 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 + - 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 entities: patterns: @@ -259,6 +303,7 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: + - include: '#vue-interpolations' - include: '#entities' string-single-quoted: @@ -270,39 +315,9 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: + - include: '#vue-interpolations' - include: '#entities' - vue-directive: - name: meta.directive.vue - begin: (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) - end: (?<='|") - 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 - - 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 - tag-generic-attribute: name: entity.other.attribute-name.html match: \b([a-zA-Z\-:]+) @@ -324,6 +339,7 @@ repository: 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 @@ -334,11 +350,12 @@ repository: endCaptures: '0': {name: punctuation.definition.string.end.html} patterns: + - include: '#vue-interpolations' - include: '#entities' tag-stuff: patterns: - - include: '#vue-directive' + - include: '#vue-directives' - include: '#tag-id-attribute' - include: '#tag-generic-attribute' - include: '#string-double-quoted' diff --git a/vue.tmLanguage b/vue.tmLanguage index f861b2e..47538c0 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -30,6 +30,10 @@ Vue Component patterns + + include + #vue-interpolations + begin (<)([a-zA-Z0-9:-]++)(?=[^>]*></\2>) @@ -849,6 +853,10 @@ string.quoted.double.html patterns + + include + #vue-interpolations + include #entities @@ -881,6 +889,10 @@ string.quoted.single.html patterns + + include + #vue-interpolations + include #entities @@ -944,6 +956,10 @@ string.quoted.double.html patterns + + include + #vue-interpolations + include #entities @@ -977,6 +993,10 @@ string.quoted.single.html patterns + + include + #vue-interpolations + include #entities @@ -991,7 +1011,7 @@ include - #vue-directive + #vue-directives include @@ -1011,7 +1031,7 @@ - vue-directive + vue-directives begin (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) @@ -1118,6 +1138,43 @@ + vue-interpolations + + patterns + + + begin + \{\{\{? + beginCaptures + + 0 + + name + punctuation.definition.tag.begin.html + + + end + \}\}\}? + endCaptures + + 0 + + name + punctuation.definition.tag.end.html + + + name + expression.embbeded.vue + patterns + + + include + source.js + + + + + scopeName text.html.vue From b4c91d1b323c6507ea214896f7cb2d9c83108bac Mon Sep 17 00:00:00 2001 From: Nikita Marchenko Date: Sun, 1 May 2016 17:32:22 +0300 Subject: [PATCH 07/31] Add pug-lang(ex. Jade) highlighting (#49) * Add pug-lang(ex. Jade) highlighting For use with https://github.com/davidrios/pug-tmbundle * Add pug-lang(ex. Jade) highlighting For use with https://github.com/davidrios/pug-tmbundle * Revert "Add pug-lang(ex. Jade) highlighting" This reverts commit 72eb5dfa6d5ceff5fb894b2ee0a56fba9842a476. --- vue.YAML-tmLanguage | 17 ++++++++++++++ vue.tmLanguage | 54 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 5bb10fc..4e5bf65 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -79,6 +79,23 @@ patterns: patterns: - include: text.jade +- name: text.pug.embedded.html + begin: (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang="pug(?:\?[^"]*)?") + end: ()(?:\s*\n)? + captures: + '1': {name: punctuation.definition.tag.begin.html} + '2': {name: entity.name.tag.style.html} + '3': {name: punctuation.definition.tag.html} + patterns: + - include: '#tag-stuff' + - begin: (>) + beginCaptures: + '1': {name: punctuation.definition.tag.end.html} + end: (?=]*lang="stylus(?:\?[^"]*)?") end: ()(?:\s*\n)? diff --git a/vue.tmLanguage b/vue.tmLanguage index 47538c0..ca42ee7 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -263,6 +263,60 @@ + + begin + (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang="pug(?:\?[^"]*)?") + captures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.style.html + + 3 + + name + punctuation.definition.tag.html + + + end + (</)((?i:template))(>)(?:\s*\n)? + name + text.pug.embedded.html + patterns + + + include + #tag-stuff + + + begin + (>) + beginCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + end + (?=</(?i:template)) + patterns + + + include + text.pug + + + + + begin (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang="stylus(?:\?[^"]*)?") From c191f160945f6a621286d3bc5e0910b56f1b3fe1 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 9 May 2016 13:26:06 -0400 Subject: [PATCH 08/31] treat script blocks with explicit non-js type as plain text --- vue.YAML-tmLanguage | 2 +- vue.tmLanguage | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 4e5bf65..e4b4e3e 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -179,7 +179,7 @@ patterns: - include: source.coffee - name: source.js.embedded.html - begin: (?:^\s+)?(<)((?i:script))\b(?![^>]*/>) + begin: (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*))) beginCaptures: '1': {name: punctuation.definition.tag.begin.html} '2': {name: entity.name.tag.script.html} diff --git a/vue.tmLanguage b/vue.tmLanguage index ca42ee7..d84cdaa 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -597,7 +597,7 @@ begin - (?:^\s+)?(<)((?i:script))\b(?![^>]*/>) + (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*))) beginCaptures 1 From 79ad8e9322955a47a4de0cd0f03e486ddcfbc085 Mon Sep 17 00:00:00 2001 From: Hilu luke Date: Tue, 10 May 2016 00:21:05 -0500 Subject: [PATCH 09/31] add we extension --- vue.sublime-settings | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vue.sublime-settings b/vue.sublime-settings index 9822417..515f40b 100644 --- a/vue.sublime-settings +++ b/vue.sublime-settings @@ -1,6 +1,7 @@ { "extensions": [ - "vue" + "vue", + "we" ] } From c2c7fe8361da96a0bf1fb437a1711f1205568c54 Mon Sep 17 00:00:00 2001 From: yuchuanxi Date: Thu, 2 Jun 2016 03:26:01 +0800 Subject: [PATCH 10/31] add new `lang` which value is `postcss`, will highlighting with `Syntax Hightlighting for PostCSS` (#53) --- vue.YAML-tmLanguage | 16 ++++++++++++++ vue.tmLanguage | 54 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index e4b4e3e..80b28ea 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -112,6 +112,22 @@ patterns: patterns: - include: source.stylus +- name: source.postcss.embedded.html + begin: (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang="postcss(?:\?[^"]*)?") + end: ()(?:\s*\n)? + captures: + '1': {name: punctuation.definition.tag.begin.html} + '2': {name: entity.name.tag.style.html} + '3': {name: punctuation.definition.tag.html} + patterns: + - include: '#tag-stuff' + - begin: (>) + beginCaptures: + '1': {name: punctuation.definition.tag.end.html} + end: (?=]*lang="(?:s(a|c)ss)(?:\?[^"]*)?") end: ()(?:\s*\n)? diff --git a/vue.tmLanguage b/vue.tmLanguage index d84cdaa..759e0e2 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -371,6 +371,60 @@ + + begin + (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang="postcss(?:\?[^"]*)?") + captures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.style.html + + 3 + + name + punctuation.definition.tag.html + + + end + (</)((?i:style))(>)(?:\s*\n)? + name + source.postcss.embedded.html + patterns + + + include + #tag-stuff + + + begin + (>) + beginCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + end + (?=</(?i:style)) + patterns + + + include + source.postcss + + + + + begin (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang="(?:s(a|c)ss)(?:\?[^"]*)?") From a29a875bf3e81f780e905c223a96261c04732659 Mon Sep 17 00:00:00 2001 From: kazuya kawaguchi Date: Mon, 6 Jun 2016 23:01:11 +0900 Subject: [PATCH 11/31] Update license (#55) * add license section * update LICENSE file * update author --- LICENSE | 2 +- README.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 954778d..f8fc693 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2013-2014 Yuxi Evan You +Copyright (c) 2013-2016 Evan You Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index dfd0447..8186ca2 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,7 @@ Sublime Text Syntax highlighting for single-file [Vue.js](http://vuejs.org) comp - Manual: clone this repo into your Sublime `Packages` folder. **NOTE:** You still need to install corresponding packages for pre-processors (e.g. Jade, SASS, CoffeeScript) to get proper syntax highlighting for them. + +### License + +[MIT](http://opensource.org/licenses/MIT) From 0cb7ccdaed7ae3b731b5d998952d3ea4d979bd29 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 24 Jun 2016 00:17:17 +1000 Subject: [PATCH 12/31] Add support for type="text/babel" (#57) --- vue.YAML-tmLanguage | 2 +- vue.tmLanguage | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 80b28ea..77b8735 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -195,7 +195,7 @@ patterns: - include: source.coffee - name: source.js.embedded.html - begin: (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*))) + begin: (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel).*))) beginCaptures: '1': {name: punctuation.definition.tag.begin.html} '2': {name: entity.name.tag.script.html} diff --git a/vue.tmLanguage b/vue.tmLanguage index 759e0e2..8e56b0e 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -651,7 +651,7 @@ begin - (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*))) + (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel).*))) beginCaptures 1 From 8e729750bc181d3d05d5e74cf7cb8f8c4c19627d Mon Sep 17 00:00:00 2001 From: fuzzthink Date: Sat, 23 Jul 2016 11:38:27 -0700 Subject: [PATCH 13/31] Added lang=livescript support (#62) --- vue.YAML-tmLanguage | 18 +++++++++++++ vue.tmLanguage | 62 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 77b8735..2d127a1 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -194,6 +194,24 @@ patterns: patterns: - include: source.coffee +- name: source.livescript.embedded.html + begin: (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang="livescript(?:\?[^"]*)?") + beginCaptures: + '1': {name: punctuation.definition.tag.begin.html} + '2': {name: entity.name.tag.script.html} + end: (?<=)(?:\s*\n)? + endCaptures: + '2': {name: punctuation.definition.tag.html} + patterns: + - include: '#tag-stuff' + - begin: (?) + end: (]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel).*))) beginCaptures: diff --git a/vue.tmLanguage b/vue.tmLanguage index 8e56b0e..1b959f0 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -649,6 +649,68 @@ + + begin + (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang="livescript(?:\?[^"]*)?") + beginCaptures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.script.html + + + end + (?<=</(script|SCRIPT))(>)(?:\s*\n)? + endCaptures + + 2 + + name + punctuation.definition.tag.html + + + name + source.livescript.embedded.html + patterns + + + include + #tag-stuff + + + begin + (?<!</(?:script|SCRIPT))(>) + captures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.script.html + + + end + (</)((?i:script)) + patterns + + + include + source.livescript + + + + + begin (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel).*))) From 909afa5384d6dcd01f7d883fe2b8b6067f970a26 Mon Sep 17 00:00:00 2001 From: Gustavo Vargas Date: Fri, 26 Aug 2016 11:05:10 -0300 Subject: [PATCH 14/31] added slm template syntax (#66) --- vue.YAML-tmLanguage | 16 ++++++++++++++ vue.tmLanguage | 54 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 2d127a1..7a44366 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -63,6 +63,22 @@ patterns: - name: invalid.illegal.bad-comments-or-CDATA.html match: (\s*)(?!--|>)\S(\s*) +- name: text.slm.embedded.html + begin: (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang="slm(?:\?[^"]*)?") + end: ()(?:\s*\n)? + captures: + '1': {name: punctuation.definition.tag.begin.html} + '2': {name: entity.name.tag.style.html} + '3': {name: punctuation.definition.tag.html} + patterns: + - include: '#tag-stuff' + - begin: (>) + beginCaptures: + '1': {name: punctuation.definition.tag.end.html} + end: (?=]*lang="jade(?:\?[^"]*)?") end: ()(?:\s*\n)? diff --git a/vue.tmLanguage b/vue.tmLanguage index 1b959f0..d9d96dd 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -209,6 +209,60 @@ + + begin + (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang="slm(?:\?[^"]*)?") + captures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.style.html + + 3 + + name + punctuation.definition.tag.html + + + end + (</)((?i:template))(>)(?:\s*\n)? + name + text.slm.embedded.html + patterns + + + include + #tag-stuff + + + begin + (>) + beginCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + end + (?=</(?i:template)) + patterns + + + include + text.slm + + + + + begin (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang="jade(?:\?[^"]*)?") From f95b61a40dbae2d415a5a9fed90d46a59a3df0cb Mon Sep 17 00:00:00 2001 From: Taylor Zane Glaeser Date: Wed, 14 Sep 2016 09:18:02 -0500 Subject: [PATCH 15/31] Resolved auto-closing tag bug (#67) (#69) --- vue.YAML-tmLanguage | 4 ++-- vue.tmLanguage | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vue.YAML-tmLanguage b/vue.YAML-tmLanguage index 7a44366..6c35f65 100644 --- a/vue.YAML-tmLanguage +++ b/vue.YAML-tmLanguage @@ -314,9 +314,9 @@ repository: begin: \{\{\{? end: \}\}\}? beginCaptures: - '0': {name: punctuation.definition.tag.begin.html} + '0': {name: punctuation.definition.generic.begin.html} endCaptures: - '0': {name: punctuation.definition.tag.end.html} + '0': {name: punctuation.definition.generic.end.html} patterns: - include: source.js diff --git a/vue.tmLanguage b/vue.tmLanguage index d9d96dd..b6a1fff 100644 --- a/vue.tmLanguage +++ b/vue.tmLanguage @@ -1374,7 +1374,7 @@ 0 name - punctuation.definition.tag.begin.html + punctuation.definition.generic.begin.html end @@ -1384,7 +1384,7 @@ 0 name - punctuation.definition.tag.end.html + punctuation.definition.generic.end.html name From e6f8cd966813296bc1b9eb63a82eda3d206fe171 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 22 Oct 2016 11:28:51 +0800 Subject: [PATCH 16/31] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 8186ca2..e49c74e 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,10 @@ Sublime Text Syntax highlighting for single-file [Vue.js](http://vuejs.org) comp **NOTE:** You still need to install corresponding packages for pre-processors (e.g. Jade, SASS, CoffeeScript) to get proper syntax highlighting for them. +### Enabling JSX Highlighting + +The ` + + diff --git a/samples/langs.vue b/samples/langs.vue new file mode 100644 index 0000000..bb6d2bc --- /dev/null +++ b/samples/langs.vue @@ -0,0 +1,28 @@ + + + + + + + From 473fb79450f08349b822de5d4a8ed53301875a25 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 26 Jan 2018 13:24:58 -0500 Subject: [PATCH 25/31] readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index e49c74e..577d8bc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Vue Syntax Highlight +**Note:** The `master` branch hosts the `tmLanguage` based implementation that is distributed to Sublime Text build < 3153. It is also used to power GitHub's syntax highlight of `*.vue` files in [linguist](https://github.com/github/linguist). + +For a newer implementation of the syntax that is distributed to build >=3153, See the [new](https://github.com/vuejs/vue-syntax-highlight/tree/new) branch. + +--- + Sublime Text Syntax highlighting for single-file [Vue.js](http://vuejs.org) components (enabled by [vue-loader](https://github.com/vuejs/vue-loader) or [vueify](https://github.com/vuejs/vueify)). ![screenshot](https://cloud.githubusercontent.com/assets/499550/11458853/99ed23aa-9696-11e5-9bf6-43c706487aee.png) From 5c2b5afbb3e71c87aca1eda626edbb4506571072 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 26 Jan 2018 13:26:22 -0500 Subject: [PATCH 26/31] use newer screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 577d8bc..57b07ad 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ For a newer implementation of the syntax that is distributed to build >=3153, Se Sublime Text Syntax highlighting for single-file [Vue.js](http://vuejs.org) components (enabled by [vue-loader](https://github.com/vuejs/vue-loader) or [vueify](https://github.com/vuejs/vueify)). -![screenshot](https://cloud.githubusercontent.com/assets/499550/11458853/99ed23aa-9696-11e5-9bf6-43c706487aee.png) +![screenshot](https://raw.githubusercontent.com/vuejs/vue-syntax-highlight/new/samples/screenshot.png) ### Install From 496004255cc43a3c0c8fc8a041e5ff1cc66bac01 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 28 Feb 2018 09:37:03 -0500 Subject: [PATCH 27/31] fix scss highlight (close #52) --- samples/basic.vue | 3 ++- samples/langs.vue | 13 +++++++++++++ vue.YAML-tmLanguage | 3 --- vue.tmLanguage | 8 -------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/samples/basic.vue b/samples/basic.vue index d192aa0..3c7d521 100644 --- a/samples/basic.vue +++ b/samples/basic.vue @@ -12,7 +12,8 @@ Things to verify: + @click="onClick('hello')" + @click.prevent="onClick('hello')"> Hello diff --git a/samples/langs.vue b/samples/langs.vue index bb6d2bc..b96fc7c 100644 --- a/samples/langs.vue +++ b/samples/langs.vue @@ -14,6 +14,19 @@ body color primary-color + + + +