├── vue.sublime-settings ├── Snippets ├── v.sublime-snippet ├── get.sublime-snippet ├── add.sublime-snippet ├── delete.sublime-snippet ├── set.sublime-snippet ├── log.sublime-snippet ├── vue-tag.sublime-snippet ├── eval.sublime-snippet ├── ipo.sublime-snippet ├── wat.sublime-snippet ├── vue.sublime-snippet ├── cdn.sublime-snippet ├── vue-filter.sublime-snippet ├── vue-extend.sublime-snippet ├── vue-dir.sublime-snippet └── vue-config.sublime-snippet ├── packages.json ├── package.json ├── LICENSE ├── vuejs-completions.sublime-settings ├── README.md ├── vue.YAML-tmLanguage └── vue.tmLanguage /vue.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": 3 | [ 4 | "vue", 5 | "we", 6 | "wpy" 7 | ] 8 | } -------------------------------------------------------------------------------- /Snippets/v.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | v 8 | source.js 9 | -------------------------------------------------------------------------------- /Snippets/get.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | get 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/add.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | add 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/delete.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | delete 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/set.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | set 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/log.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | log 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/vue-tag.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 4 | ]]> 5 | v-t 6 | text.html 7 | -------------------------------------------------------------------------------- /Snippets/eval.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | set 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/ipo.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | ipo 6 | source.js 7 | -------------------------------------------------------------------------------- /Snippets/wat.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | wat 8 | source.js 9 | -------------------------------------------------------------------------------- /Snippets/vue.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 9 | vue 10 | source.js 11 | -------------------------------------------------------------------------------- /Snippets/cdn.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 4 | ]]> 5 | vue-cdn 6 | text.html 7 | -------------------------------------------------------------------------------- /Snippets/vue-filter.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | vue-filter 8 | source.js 9 | -------------------------------------------------------------------------------- /Snippets/vue-extend.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | {{firstName}} {{lastName}} aka {{alias}}

'} 5 | }) 6 | 7 | ]]>
8 | vue-extend 9 | source.js 10 |
-------------------------------------------------------------------------------- /Snippets/vue-dir.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 15 | vue-dir 16 | source.js 17 | -------------------------------------------------------------------------------- /Snippets/vue-config.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 21 | vue-config 22 | source.js 23 | -------------------------------------------------------------------------------- /packages.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "package": { 4 | "name": "Vuejs Complete Package", 5 | "details": "https://github.com/BrainBuzzer/vuejs-sublime-complete", 6 | "homepage": "https://github.com/BrainBuzzer/vuejs-sublime-complete", 7 | "author": "Aditya Giri", 8 | "issues": "https://github.com/BrainBuzzer/vuejs-sublime-complete/issues", 9 | "releases": [ 10 | { 11 | "sublime_text": "*", 12 | "tags": true 13 | } 14 | ] 15 | } 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vuejs-sublime-complete", 3 | "version": "0.0.1", 4 | "description": "Complete Vue.js package for sublime", 5 | "main": "vuejs", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/BrainBuzzer/vuejs-sublime-complete.git" 9 | }, 10 | "keywords": [ 11 | "javascript", 12 | "sublime", 13 | "text", 14 | "snippets", 15 | "syntax", 16 | "highlighting", 17 | "vuejs" 18 | ], 19 | "author": "Aditya Giri", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/BrainBuzzer/vuejs-sublime-complete/issues" 23 | }, 24 | "homepage": "https://github.com/BrainBuzzer/vuejs-sublime-complete" 25 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Aditya Giri 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /vuejs-completions.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "vuejs_attributes":[ 4 | [ 5 | "v-text\tVueJS", 6 | "v-text=\"'${1:textContext}'\"" 7 | ], 8 | [ 9 | "v-html\tVueJS", 10 | "v-html=\"'${1:html}'\"" 11 | ], 12 | [ 13 | "v-show\tVueJS", 14 | "v-show=\"'${1:none}'\"" 15 | ], 16 | [ 17 | "v-class\tVueJS", 18 | "v-class=\"'${1:classOnly}'\"" 19 | ], 20 | [ 21 | "v-attr\tVueJS", 22 | "v-attr=\"'${1:moreAttributes}'\"" 23 | ], 24 | [ 25 | "v-style\tVueJS", 26 | "v-style=\"'${1:cssStyleOnly}'\"" 27 | ], 28 | [ 29 | "v-on\tVueJS", 30 | "v-on=\"'${1:onClick}'\"" 31 | ], 32 | [ 33 | "v-model\tVueJS", 34 | "v-model=\"'${1:model}'\"" 35 | ], 36 | [ 37 | "v-if\tVueJS", 38 | "v-if=\"'${1:your_if_statement}'\"" 39 | ], 40 | [ 41 | "v-repeat\tVueJS", 42 | "v-repeat=\"'${1:array}'\"" 43 | ], 44 | [ 45 | "v-transition\tVueJS", 46 | "v-transition=\"'${1}'\"" 47 | ], 48 | [ 49 | "v-ref\tVueJS", 50 | "v-ref=\"'$1'\"" 51 | ], 52 | [ 53 | "v-el\tVueJS", 54 | "v-el=\"'$1'\"" 55 | ], 56 | [ 57 | "v-pre\tVueJS", 58 | "v-pre" 59 | ], 60 | [ 61 | "v-cloak\tVueJS", 62 | "v-cloak" 63 | ] 64 | 65 | ] 66 | 67 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VueJS Code completion for sublime 2 | 3 | This package is a complete set of snippets and vue syntax highlighting and is **under development** version number is 0.3.3 . This package is built by [Aditya Giri](https://github.com/BrainBuzzer) and is being used by [LivonAir](http://livonair.com). 4 | 5 | ## Installation 6 | 7 | ### Manually 8 | 9 | To install this package, clone this repository in your machine and move to your packages folder. You can find packages folder by clicking on Preferences->Browse Packages. 10 | 11 | ### Package Control 12 | 13 | Go ahead and search for __vuejs complete package.__ Just install it. 14 | 15 | ## Usage 16 | 17 | ### Syntax Highlighting 18 | 19 | We are providing syntax highlighting as it is from a fork of vuejs/vuejs-syntax-highlight. You need not to configure it. It is already configured for you. 20 | 21 | ### Snippets 22 | 23 | We provide following set of snippets. Have a look at them. They may be increased or decreased as per the version of VueJS. Just put those letters and press tab 24 | 25 | **v**: 26 | This is a simple trigger which may be used like this: 27 | ```js 28 | var demo = new Vue({ 29 | data [v]Press tab here to transform in something like this: 30 | data: { 31 | // Your text here 32 | } 33 | }) 34 | ``` 35 | **vue**: 36 | This one is great if you have a brand new js file and you want to trigger the whole thing at once. 37 | ```js 38 | var vm = new Vue({ 39 | el: "#replace" 40 | }) 41 | ``` 42 | **vue-config**: 43 | This snippet is for expanding config of the whole VueJS. It looks like this: 44 | ```js 45 | { 46 | debug: true, 47 | strict: false, 48 | prefix: 'v-', 49 | delimiters: ['{{', '}}']}, 50 | silent: false, 51 | interpolate: true, 52 | async: true, 53 | proto: true 54 | } 55 | ``` 56 | **vue-dir**: 57 | Create a custom directive very easily using this snippet. You custom directive will look like this. 58 | ```js 59 | Vue.directive('my-directive', { 60 | bind: function () {}, 61 | update: function (newValue, oldValue) {}, 62 | unbind: function () {} 63 | }) 64 | ``` 65 | **vue-filter**: 66 | Create a custom filter using this snippet. 67 | ```js 68 | Vue.filter('my-filter', function (value) { 69 | // Content 70 | }) 71 | ``` 72 | **vue-cdn**: 73 | Get a cdn snippet which would expand to something like this: 74 | ```html 75 | 76 | ``` 77 | **vue-extend**: 78 | A snippet for extend function. 79 | ```js 80 | var Profile = Vue.extend({ 81 | template: '

{{firstName}} {{lastName}} aka {{alias}}

' 82 | }) 83 | ``` 84 | **wat**: 85 | Add a $watch property to any of your object. 86 | ```js 87 | vm.$watch('someObject', callback, { 88 | content 89 | }) 90 | ``` 91 | **get**: 92 | Add get easily. 93 | ```js 94 | vm.$get(expression) 95 | ``` 96 | **set**: 97 | Setter in easy way: 98 | ```js 99 | vm.$set(key, value) 100 | ``` 101 | **add**: 102 | ```js 103 | vm.$add(key, value) 104 | ``` 105 | **delete**: 106 | ```js 107 | vm.$delete(key) 108 | ``` 109 | **eval**: 110 | ```js 111 | vm.$eval(msg | uppercase) 112 | ``` 113 | **interpolate**: 114 | ```js 115 | vm.$interpolate(templateString) 116 | ``` 117 | **log**: 118 | ```js 119 | vm.$log([keypath-optional]) 120 | ``` 121 | And yeah __There are even more that are coming soon__. 122 | 123 | ## ToDo 124 | 125 | * Add more snippets 126 | * Add autocomplete for html 127 | 128 | ## Maintainer 129 | 130 | This library is crafted and maintained by [Aditya Giri](http://github.com/BrainBuzzer). If you would like to contact him for any library, them his email address is [dtrg21@gmail.com](mailto:dtrg21@gmail.com). 131 | 132 | This library is a part of a blogging platform [LivonAir](http://livonair.com) 133 | -------------------------------------------------------------------------------- /vue.YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | --- 3 | name: Vue Component 4 | scopeName: text.html.vue 5 | fileTypes: [vue] 6 | uuid: 5512c10d-4cc5-434c-b8fc-53b912f55ab3 7 | 8 | patterns: 9 | - include: '#vue-interpolations' 10 | 11 | - name: meta.tag.any.html 12 | begin: (<)([a-zA-Z0-9:-]++)(?=[^>]*>) 13 | beginCaptures: 14 | '1': {name: punctuation.definition.tag.begin.html} 15 | '2': {name: entity.name.tag.html} 16 | end: (>)(<)(/)(\2)(>) 17 | endCaptures: 18 | '1': {name: punctuation.definition.tag.end.html} 19 | '2': {name: punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html} 20 | '3': {name: punctuation.definition.tag.begin.html} 21 | '4': {name: entity.name.tag.html} 22 | '5': {name: punctuation.definition.tag.end.html} 23 | patterns: 24 | - include: '#tag-stuff' 25 | 26 | - name: meta.tag.preprocessor.xml.html 27 | begin: (<\?)(xml) 28 | end: (\?>) 29 | captures: 30 | '1': {name: punctuation.definition.tag.html} 31 | '2': {name: entity.name.tag.xml.html} 32 | patterns: 33 | - include: '#tag-generic-attribute' 34 | - include: '#string-double-quoted' 35 | - include: '#string-single-quoted' 36 | 37 | - name: comment.block.html 38 | begin: )$ 455 | |<\?(?:php)?.*\b(if|for(each)?|while)\b.+: 456 | |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) 457 | |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) 458 | ) 459 | 460 | foldingStopMarker: |- 461 | (?x) 462 | ( 463 | |^(?!.*?$ 465 | |<\?(?:php)?.*\bend(if|for(each)?|while)\b 466 | |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) 467 | |^[^{]*\} 468 | ) 469 | 470 | keyEquivalent: ^~H -------------------------------------------------------------------------------- /vue.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | vue 8 | 9 | foldingStartMarker 10 | (?x) 11 | (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?> 12 | |<!--(?!.*--\s*>) 13 | |^<!--\ \#tminclude\ (?>.*?-->)$ 14 | |<\?(?:php)?.*\b(if|for(each)?|while)\b.+: 15 | |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) 16 | |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) 17 | ) 18 | foldingStopMarker 19 | (?x) 20 | (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)> 21 | |^(?!.*?<!--).*?--\s*> 22 | |^<!--\ end\ tminclude\ -->$ 23 | |<\?(?:php)?.*\bend(if|for(each)?|while)\b 24 | |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) 25 | |^[^{]*\} 26 | ) 27 | keyEquivalent 28 | ^~H 29 | name 30 | Vue Component 31 | patterns 32 | 33 | 34 | include 35 | #vue-interpolations 36 | 37 | 38 | begin 39 | (<)([a-zA-Z0-9:-]++)(?=[^>]*></\2>) 40 | beginCaptures 41 | 42 | 1 43 | 44 | name 45 | punctuation.definition.tag.begin.html 46 | 47 | 2 48 | 49 | name 50 | entity.name.tag.html 51 | 52 | 53 | end 54 | (>)(<)(/)(\2)(>) 55 | endCaptures 56 | 57 | 1 58 | 59 | name 60 | punctuation.definition.tag.end.html 61 | 62 | 2 63 | 64 | name 65 | punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html 66 | 67 | 3 68 | 69 | name 70 | punctuation.definition.tag.begin.html 71 | 72 | 4 73 | 74 | name 75 | entity.name.tag.html 76 | 77 | 5 78 | 79 | name 80 | punctuation.definition.tag.end.html 81 | 82 | 83 | name 84 | meta.tag.any.html 85 | patterns 86 | 87 | 88 | include 89 | #tag-stuff 90 | 91 | 92 | 93 | 94 | begin 95 | (<\?)(xml) 96 | captures 97 | 98 | 1 99 | 100 | name 101 | punctuation.definition.tag.html 102 | 103 | 2 104 | 105 | name 106 | entity.name.tag.xml.html 107 | 108 | 109 | end 110 | (\?>) 111 | name 112 | meta.tag.preprocessor.xml.html 113 | patterns 114 | 115 | 116 | include 117 | #tag-generic-attribute 118 | 119 | 120 | include 121 | #string-double-quoted 122 | 123 | 124 | include 125 | #string-single-quoted 126 | 127 | 128 | 129 | 130 | begin 131 | <!-- 132 | captures 133 | 134 | 0 135 | 136 | name 137 | punctuation.definition.comment.html 138 | 139 | 140 | end 141 | --\s*> 142 | name 143 | comment.block.html 144 | patterns 145 | 146 | 147 | match 148 | -- 149 | name 150 | invalid.illegal.bad-comments-or-CDATA.html 151 | 152 | 153 | 154 | 155 | begin 156 | <! 157 | captures 158 | 159 | 0 160 | 161 | name 162 | punctuation.definition.tag.html 163 | 164 | 165 | end 166 | > 167 | name 168 | meta.tag.sgml.html 169 | patterns 170 | 171 | 172 | begin 173 | (?i:DOCTYPE) 174 | captures 175 | 176 | 1 177 | 178 | name 179 | entity.name.tag.doctype.html 180 | 181 | 182 | end 183 | (?=>) 184 | name 185 | meta.tag.sgml.doctype.html 186 | patterns 187 | 188 | 189 | match 190 | "[^">]*" 191 | name 192 | string.quoted.double.doctype.identifiers-and-DTDs.html 193 | 194 | 195 | 196 | 197 | begin 198 | \[CDATA\[ 199 | end 200 | ]](?=>) 201 | name 202 | constant.other.inline-data.html 203 | 204 | 205 | match 206 | (\s*)(?!--|>)\S(\s*) 207 | name 208 | invalid.illegal.bad-comments-or-CDATA.html 209 | 210 | 211 | 212 | 213 | begin 214 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])slm\1?) 215 | captures 216 | 217 | 1 218 | 219 | name 220 | punctuation.definition.tag.begin.html 221 | 222 | 2 223 | 224 | name 225 | entity.name.tag.style.html 226 | 227 | 3 228 | 229 | name 230 | punctuation.definition.tag.html 231 | 232 | 233 | end 234 | (</)((?i:template))(>)(?:\s*\n)? 235 | name 236 | text.slm.embedded.html 237 | patterns 238 | 239 | 240 | include 241 | #tag-stuff 242 | 243 | 244 | begin 245 | (>) 246 | beginCaptures 247 | 248 | 1 249 | 250 | name 251 | punctuation.definition.tag.end.html 252 | 253 | 254 | end 255 | (?=</(?i:template)) 256 | patterns 257 | 258 | 259 | include 260 | text.slm 261 | 262 | 263 | 264 | 265 | 266 | 267 | begin 268 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])jade\1?) 269 | captures 270 | 271 | 1 272 | 273 | name 274 | punctuation.definition.tag.begin.html 275 | 276 | 2 277 | 278 | name 279 | entity.name.tag.style.html 280 | 281 | 3 282 | 283 | name 284 | punctuation.definition.tag.html 285 | 286 | 287 | end 288 | (</)((?i:template))(>)(?:\s*\n)? 289 | name 290 | text.jade.embedded.html 291 | patterns 292 | 293 | 294 | include 295 | #tag-stuff 296 | 297 | 298 | begin 299 | (>) 300 | beginCaptures 301 | 302 | 1 303 | 304 | name 305 | punctuation.definition.tag.end.html 306 | 307 | 308 | end 309 | (?=</(?i:template)) 310 | patterns 311 | 312 | 313 | include 314 | text.jade 315 | 316 | 317 | 318 | 319 | 320 | 321 | begin 322 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])pug\1?) 323 | captures 324 | 325 | 1 326 | 327 | name 328 | punctuation.definition.tag.begin.html 329 | 330 | 2 331 | 332 | name 333 | entity.name.tag.style.html 334 | 335 | 3 336 | 337 | name 338 | punctuation.definition.tag.html 339 | 340 | 341 | end 342 | (</)((?i:template))(>)(?:\s*\n)? 343 | name 344 | text.pug.embedded.html 345 | patterns 346 | 347 | 348 | include 349 | #tag-stuff 350 | 351 | 352 | begin 353 | (>) 354 | beginCaptures 355 | 356 | 1 357 | 358 | name 359 | punctuation.definition.tag.end.html 360 | 361 | 362 | end 363 | (?=</(?i:template)) 364 | patterns 365 | 366 | 367 | include 368 | text.pug 369 | 370 | 371 | 372 | 373 | 374 | 375 | begin 376 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])stylus\1?) 377 | captures 378 | 379 | 1 380 | 381 | name 382 | punctuation.definition.tag.begin.html 383 | 384 | 2 385 | 386 | name 387 | entity.name.tag.style.html 388 | 389 | 3 390 | 391 | name 392 | punctuation.definition.tag.html 393 | 394 | 395 | end 396 | (</)((?i:style))(>)(?:\s*\n)? 397 | name 398 | source.stylus.embedded.html 399 | patterns 400 | 401 | 402 | include 403 | #tag-stuff 404 | 405 | 406 | begin 407 | (>) 408 | beginCaptures 409 | 410 | 1 411 | 412 | name 413 | punctuation.definition.tag.end.html 414 | 415 | 416 | end 417 | (?=</(?i:style)) 418 | patterns 419 | 420 | 421 | include 422 | source.stylus 423 | 424 | 425 | 426 | 427 | 428 | 429 | begin 430 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])postcss\1?) 431 | captures 432 | 433 | 1 434 | 435 | name 436 | punctuation.definition.tag.begin.html 437 | 438 | 2 439 | 440 | name 441 | entity.name.tag.style.html 442 | 443 | 3 444 | 445 | name 446 | punctuation.definition.tag.html 447 | 448 | 449 | end 450 | (</)((?i:style))(>)(?:\s*\n)? 451 | name 452 | source.postcss.embedded.html 453 | patterns 454 | 455 | 456 | include 457 | #tag-stuff 458 | 459 | 460 | begin 461 | (>) 462 | beginCaptures 463 | 464 | 1 465 | 466 | name 467 | punctuation.definition.tag.end.html 468 | 469 | 470 | end 471 | (?=</(?i:style)) 472 | patterns 473 | 474 | 475 | include 476 | source.postcss 477 | 478 | 479 | 480 | 481 | 482 | 483 | begin 484 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])sass\1?) 485 | captures 486 | 487 | 1 488 | 489 | name 490 | punctuation.definition.tag.begin.html 491 | 492 | 2 493 | 494 | name 495 | entity.name.tag.style.html 496 | 497 | 3 498 | 499 | name 500 | punctuation.definition.tag.html 501 | 502 | 503 | end 504 | (</)((?i:style))(>)(?:\s*\n)? 505 | name 506 | source.sass.embedded.html 507 | patterns 508 | 509 | 510 | include 511 | #tag-stuff 512 | 513 | 514 | begin 515 | (>) 516 | beginCaptures 517 | 518 | 1 519 | 520 | name 521 | punctuation.definition.tag.end.html 522 | 523 | 524 | end 525 | (?=</(?i:style)) 526 | patterns 527 | 528 | 529 | include 530 | source.sass 531 | 532 | 533 | 534 | 535 | 536 | 537 | begin 538 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])scss\1?) 539 | captures 540 | 541 | 1 542 | 543 | name 544 | punctuation.definition.tag.begin.html 545 | 546 | 2 547 | 548 | name 549 | entity.name.tag.style.html 550 | 551 | 3 552 | 553 | name 554 | punctuation.definition.tag.html 555 | 556 | 557 | end 558 | (</)((?i:style))(>)(?:\s*\n)? 559 | name 560 | source.scss.embedded.html 561 | patterns 562 | 563 | 564 | include 565 | #tag-stuff 566 | 567 | 568 | begin 569 | (>) 570 | beginCaptures 571 | 572 | 1 573 | 574 | name 575 | punctuation.definition.tag.end.html 576 | 577 | 578 | end 579 | (?=</(?i:style)) 580 | patterns 581 | 582 | 583 | include 584 | source.scss 585 | 586 | 587 | 588 | 589 | 590 | 591 | begin 592 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])less\1?) 593 | captures 594 | 595 | 1 596 | 597 | name 598 | punctuation.definition.tag.begin.html 599 | 600 | 2 601 | 602 | name 603 | entity.name.tag.style.html 604 | 605 | 3 606 | 607 | name 608 | punctuation.definition.tag.html 609 | 610 | 611 | end 612 | (</)((?i:style))(>)(?:\s*\n)? 613 | name 614 | source.less.embedded.html 615 | patterns 616 | 617 | 618 | include 619 | #tag-stuff 620 | 621 | 622 | begin 623 | (>) 624 | beginCaptures 625 | 626 | 1 627 | 628 | name 629 | punctuation.definition.tag.end.html 630 | 631 | 632 | end 633 | (?=</(?i:style)) 634 | patterns 635 | 636 | 637 | include 638 | source.less 639 | 640 | 641 | 642 | 643 | 644 | 645 | begin 646 | (?:^\s+)?(<)((?i:style))\b(?![^>]*/>) 647 | captures 648 | 649 | 1 650 | 651 | name 652 | punctuation.definition.tag.begin.html 653 | 654 | 2 655 | 656 | name 657 | entity.name.tag.style.html 658 | 659 | 3 660 | 661 | name 662 | punctuation.definition.tag.html 663 | 664 | 665 | end 666 | (</)((?i:style))(>)(?:\s*\n)? 667 | name 668 | source.css.embedded.html 669 | patterns 670 | 671 | 672 | include 673 | #tag-stuff 674 | 675 | 676 | begin 677 | (>) 678 | beginCaptures 679 | 680 | 1 681 | 682 | name 683 | punctuation.definition.tag.end.html 684 | 685 | 686 | end 687 | (?=</(?i:style)) 688 | patterns 689 | 690 | 691 | include 692 | source.css 693 | 694 | 695 | 696 | 697 | 698 | 699 | begin 700 | (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang=(['"])coffee\1?) 701 | beginCaptures 702 | 703 | 1 704 | 705 | name 706 | punctuation.definition.tag.begin.html 707 | 708 | 2 709 | 710 | name 711 | entity.name.tag.script.html 712 | 713 | 714 | end 715 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 716 | endCaptures 717 | 718 | 2 719 | 720 | name 721 | punctuation.definition.tag.html 722 | 723 | 724 | name 725 | source.coffee.embedded.html 726 | patterns 727 | 728 | 729 | include 730 | #tag-stuff 731 | 732 | 733 | begin 734 | (?<!</(?:script|SCRIPT))(>) 735 | captures 736 | 737 | 1 738 | 739 | name 740 | punctuation.definition.tag.begin.html 741 | 742 | 2 743 | 744 | name 745 | entity.name.tag.script.html 746 | 747 | 748 | end 749 | (</)((?i:script)) 750 | patterns 751 | 752 | 753 | include 754 | source.coffee 755 | 756 | 757 | 758 | 759 | 760 | 761 | begin 762 | (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang=(['"])livescript\1?) 763 | beginCaptures 764 | 765 | 1 766 | 767 | name 768 | punctuation.definition.tag.begin.html 769 | 770 | 2 771 | 772 | name 773 | entity.name.tag.script.html 774 | 775 | 776 | end 777 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 778 | endCaptures 779 | 780 | 2 781 | 782 | name 783 | punctuation.definition.tag.html 784 | 785 | 786 | name 787 | source.livescript.embedded.html 788 | patterns 789 | 790 | 791 | include 792 | #tag-stuff 793 | 794 | 795 | begin 796 | (?<!</(?:script|SCRIPT))(>) 797 | captures 798 | 799 | 1 800 | 801 | name 802 | punctuation.definition.tag.begin.html 803 | 804 | 2 805 | 806 | name 807 | entity.name.tag.script.html 808 | 809 | 810 | end 811 | (</)((?i:script)) 812 | patterns 813 | 814 | 815 | include 816 | source.livescript 817 | 818 | 819 | 820 | 821 | 822 | 823 | begin 824 | (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel).*))) 825 | beginCaptures 826 | 827 | 1 828 | 829 | name 830 | punctuation.definition.tag.begin.html 831 | 832 | 2 833 | 834 | name 835 | entity.name.tag.script.html 836 | 837 | 838 | end 839 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 840 | endCaptures 841 | 842 | 2 843 | 844 | name 845 | punctuation.definition.tag.html 846 | 847 | 848 | name 849 | source.js.embedded.html 850 | patterns 851 | 852 | 853 | include 854 | #tag-stuff 855 | 856 | 857 | begin 858 | (?<!</(?:script|SCRIPT))(>) 859 | captures 860 | 861 | 1 862 | 863 | name 864 | punctuation.definition.tag.begin.html 865 | 866 | 2 867 | 868 | name 869 | entity.name.tag.script.html 870 | 871 | 872 | end 873 | (</)((?i:script)) 874 | patterns 875 | 876 | 877 | captures 878 | 879 | 1 880 | 881 | name 882 | punctuation.definition.comment.js 883 | 884 | 885 | match 886 | (//).*?((?=</script)|$\n?) 887 | name 888 | comment.line.double-slash.js 889 | 890 | 891 | begin 892 | /\* 893 | captures 894 | 895 | 0 896 | 897 | name 898 | punctuation.definition.comment.js 899 | 900 | 901 | end 902 | \*/|(?=</script) 903 | name 904 | comment.block.js 905 | 906 | 907 | include 908 | source.js 909 | 910 | 911 | 912 | 913 | 914 | 915 | begin 916 | (</?)((?i:body|head|html)\b) 917 | captures 918 | 919 | 1 920 | 921 | name 922 | punctuation.definition.tag.begin.html 923 | 924 | 2 925 | 926 | name 927 | entity.name.tag.structure.any.html 928 | 929 | 930 | end 931 | (>) 932 | endCaptures 933 | 934 | 1 935 | 936 | name 937 | punctuation.definition.tag.end.html 938 | 939 | 940 | name 941 | meta.tag.structure.any.html 942 | patterns 943 | 944 | 945 | include 946 | #tag-stuff 947 | 948 | 949 | 950 | 951 | begin 952 | (</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b) 953 | beginCaptures 954 | 955 | 1 956 | 957 | name 958 | punctuation.definition.tag.begin.html 959 | 960 | 2 961 | 962 | name 963 | entity.name.tag.block.any.html 964 | 965 | 966 | end 967 | (>) 968 | endCaptures 969 | 970 | 1 971 | 972 | name 973 | punctuation.definition.tag.end.html 974 | 975 | 976 | name 977 | meta.tag.block.any.html 978 | patterns 979 | 980 | 981 | include 982 | #tag-stuff 983 | 984 | 985 | 986 | 987 | begin 988 | (</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b) 989 | beginCaptures 990 | 991 | 1 992 | 993 | name 994 | punctuation.definition.tag.begin.html 995 | 996 | 2 997 | 998 | name 999 | entity.name.tag.inline.any.html 1000 | 1001 | 1002 | end 1003 | ((?: ?/)?>) 1004 | endCaptures 1005 | 1006 | 1 1007 | 1008 | name 1009 | punctuation.definition.tag.end.html 1010 | 1011 | 1012 | name 1013 | meta.tag.inline.any.html 1014 | patterns 1015 | 1016 | 1017 | include 1018 | #tag-stuff 1019 | 1020 | 1021 | 1022 | 1023 | begin 1024 | (</?)([a-zA-Z0-9:-]+) 1025 | beginCaptures 1026 | 1027 | 1 1028 | 1029 | name 1030 | punctuation.definition.tag.begin.html 1031 | 1032 | 2 1033 | 1034 | name 1035 | entity.name.tag.other.html 1036 | 1037 | 1038 | end 1039 | (>) 1040 | endCaptures 1041 | 1042 | 1 1043 | 1044 | name 1045 | punctuation.definition.tag.end.html 1046 | 1047 | 1048 | name 1049 | meta.tag.other.html 1050 | patterns 1051 | 1052 | 1053 | include 1054 | #tag-stuff 1055 | 1056 | 1057 | 1058 | 1059 | include 1060 | #entities 1061 | 1062 | 1063 | match 1064 | <> 1065 | name 1066 | invalid.illegal.incomplete.html 1067 | 1068 | 1069 | match 1070 | < 1071 | name 1072 | invalid.illegal.bad-angle-bracket.html 1073 | 1074 | 1075 | repository 1076 | 1077 | entities 1078 | 1079 | patterns 1080 | 1081 | 1082 | captures 1083 | 1084 | 1 1085 | 1086 | name 1087 | punctuation.definition.entity.html 1088 | 1089 | 3 1090 | 1091 | name 1092 | punctuation.definition.entity.html 1093 | 1094 | 1095 | match 1096 | (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) 1097 | name 1098 | constant.character.entity.html 1099 | 1100 | 1101 | match 1102 | & 1103 | name 1104 | invalid.illegal.bad-ampersand.html 1105 | 1106 | 1107 | 1108 | string-double-quoted 1109 | 1110 | begin 1111 | " 1112 | beginCaptures 1113 | 1114 | 0 1115 | 1116 | name 1117 | punctuation.definition.string.begin.html 1118 | 1119 | 1120 | end 1121 | " 1122 | endCaptures 1123 | 1124 | 0 1125 | 1126 | name 1127 | punctuation.definition.string.end.html 1128 | 1129 | 1130 | name 1131 | string.quoted.double.html 1132 | patterns 1133 | 1134 | 1135 | include 1136 | #vue-interpolations 1137 | 1138 | 1139 | include 1140 | #entities 1141 | 1142 | 1143 | 1144 | string-single-quoted 1145 | 1146 | begin 1147 | ' 1148 | beginCaptures 1149 | 1150 | 0 1151 | 1152 | name 1153 | punctuation.definition.string.begin.html 1154 | 1155 | 1156 | end 1157 | ' 1158 | endCaptures 1159 | 1160 | 0 1161 | 1162 | name 1163 | punctuation.definition.string.end.html 1164 | 1165 | 1166 | name 1167 | string.quoted.single.html 1168 | patterns 1169 | 1170 | 1171 | include 1172 | #vue-interpolations 1173 | 1174 | 1175 | include 1176 | #entities 1177 | 1178 | 1179 | 1180 | tag-generic-attribute 1181 | 1182 | match 1183 | \b([a-zA-Z\-:]+) 1184 | name 1185 | entity.other.attribute-name.html 1186 | 1187 | tag-id-attribute 1188 | 1189 | begin 1190 | \b(id)\b\s*(=) 1191 | captures 1192 | 1193 | 1 1194 | 1195 | name 1196 | entity.other.attribute-name.id.html 1197 | 1198 | 2 1199 | 1200 | name 1201 | punctuation.separator.key-value.html 1202 | 1203 | 1204 | end 1205 | (?<='|") 1206 | name 1207 | meta.attribute-with-value.id.html 1208 | patterns 1209 | 1210 | 1211 | begin 1212 | " 1213 | beginCaptures 1214 | 1215 | 0 1216 | 1217 | name 1218 | punctuation.definition.string.begin.html 1219 | 1220 | 1221 | contentName 1222 | meta.toc-list.id.html 1223 | end 1224 | " 1225 | endCaptures 1226 | 1227 | 0 1228 | 1229 | name 1230 | punctuation.definition.string.end.html 1231 | 1232 | 1233 | name 1234 | string.quoted.double.html 1235 | patterns 1236 | 1237 | 1238 | include 1239 | #vue-interpolations 1240 | 1241 | 1242 | include 1243 | #entities 1244 | 1245 | 1246 | 1247 | 1248 | begin 1249 | ' 1250 | beginCaptures 1251 | 1252 | 0 1253 | 1254 | name 1255 | punctuation.definition.string.begin.html 1256 | 1257 | 1258 | contentName 1259 | meta.toc-list.id.html 1260 | end 1261 | ' 1262 | endCaptures 1263 | 1264 | 0 1265 | 1266 | name 1267 | punctuation.definition.string.end.html 1268 | 1269 | 1270 | name 1271 | string.quoted.single.html 1272 | patterns 1273 | 1274 | 1275 | include 1276 | #vue-interpolations 1277 | 1278 | 1279 | include 1280 | #entities 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | tag-stuff 1287 | 1288 | patterns 1289 | 1290 | 1291 | include 1292 | #vue-directives 1293 | 1294 | 1295 | include 1296 | #tag-id-attribute 1297 | 1298 | 1299 | include 1300 | #tag-generic-attribute 1301 | 1302 | 1303 | include 1304 | #string-double-quoted 1305 | 1306 | 1307 | include 1308 | #string-single-quoted 1309 | 1310 | 1311 | 1312 | vue-directives 1313 | 1314 | begin 1315 | (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) 1316 | captures 1317 | 1318 | 1 1319 | 1320 | name 1321 | entity.other.attribute-name.html 1322 | 1323 | 2 1324 | 1325 | name 1326 | punctuation.separator.key-value.html 1327 | 1328 | 3 1329 | 1330 | name 1331 | entity.other.attribute-name.html 1332 | 1333 | 4 1334 | 1335 | name 1336 | entity.other.attribute-name.html 1337 | 1338 | 5 1339 | 1340 | name 1341 | entity.other.attribute-name.html 1342 | 1343 | 6 1344 | 1345 | name 1346 | punctuation.separator.key-value.html 1347 | 1348 | 1349 | end 1350 | (?<='|") 1351 | name 1352 | meta.directive.vue 1353 | patterns 1354 | 1355 | 1356 | begin 1357 | " 1358 | beginCaptures 1359 | 1360 | 0 1361 | 1362 | name 1363 | punctuation.definition.string.begin.html 1364 | 1365 | 1366 | end 1367 | " 1368 | endCaptures 1369 | 1370 | 0 1371 | 1372 | name 1373 | punctuation.definition.string.end.html 1374 | 1375 | 1376 | name 1377 | source.directive.vue 1378 | patterns 1379 | 1380 | 1381 | include 1382 | source.js 1383 | 1384 | 1385 | 1386 | 1387 | begin 1388 | ' 1389 | beginCaptures 1390 | 1391 | 0 1392 | 1393 | name 1394 | punctuation.definition.string.begin.html 1395 | 1396 | 1397 | end 1398 | ' 1399 | endCaptures 1400 | 1401 | 0 1402 | 1403 | name 1404 | punctuation.definition.string.end.html 1405 | 1406 | 1407 | name 1408 | source.directive.vue 1409 | patterns 1410 | 1411 | 1412 | include 1413 | source.js 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | vue-interpolations 1420 | 1421 | patterns 1422 | 1423 | 1424 | begin 1425 | \{\{\{? 1426 | beginCaptures 1427 | 1428 | 0 1429 | 1430 | name 1431 | punctuation.definition.generic.begin.html 1432 | 1433 | 1434 | end 1435 | \}\}\}? 1436 | endCaptures 1437 | 1438 | 0 1439 | 1440 | name 1441 | punctuation.definition.generic.end.html 1442 | 1443 | 1444 | name 1445 | expression.embbeded.vue 1446 | patterns 1447 | 1448 | 1449 | include 1450 | source.js 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | scopeName 1458 | text.html.vue 1459 | uuid 1460 | 5512c10d-4cc5-434c-b8fc-53b912f55ab3 1461 | 1462 | --------------------------------------------------------------------------------