1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| // CodeMirror, copyright (c) by Marijn Haverbeke and others
| // Distributed under an MIT license: https://codemirror.net/LICENSE
|
| (function (mod) {
| "use strict";
| if (typeof exports === "object" && typeof module === "object") {// CommonJS
| mod(require("../../lib/codemirror"),
| require("../../addon/mode/overlay"),
| require("../xml/xml"),
| require("../javascript/javascript"),
| require("../coffeescript/coffeescript"),
| require("../css/css"),
| require("../sass/sass"),
| require("../stylus/stylus"),
| require("../pug/pug"),
| require("../handlebars/handlebars"));
| } else if (typeof define === "function" && define.amd) { // AMD
| define(["../../lib/codemirror",
| "../../addon/mode/overlay",
| "../xml/xml",
| "../javascript/javascript",
| "../coffeescript/coffeescript",
| "../css/css",
| "../sass/sass",
| "../stylus/stylus",
| "../pug/pug",
| "../handlebars/handlebars"], mod);
| } else { // Plain browser env
| mod(CodeMirror);
| }
| })(function (CodeMirror) {
| var tagLanguages = {
| script: [
| ["lang", /coffee(script)?/, "coffeescript"],
| ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"],
| ["lang", /^babel$/, "javascript"],
| ["type", /^text\/babel$/, "javascript"],
| ["type", /^text\/ecmascript-\d+$/, "javascript"]
| ],
| style: [
| ["lang", /^stylus$/i, "stylus"],
| ["lang", /^sass$/i, "sass"],
| ["lang", /^less$/i, "text/x-less"],
| ["lang", /^scss$/i, "text/x-scss"],
| ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
| ["type", /^text\/sass/i, "sass"],
| ["type", /^(text\/)?(x-)?scss$/i, "text/x-scss"],
| ["type", /^(text\/)?(x-)?less$/i, "text/x-less"]
| ],
| template: [
| ["lang", /^vue-template$/i, "vue"],
| ["lang", /^pug$/i, "pug"],
| ["lang", /^handlebars$/i, "handlebars"],
| ["type", /^(text\/)?(x-)?pug$/i, "pug"],
| ["type", /^text\/x-handlebars-template$/i, "handlebars"],
| [null, null, "vue-template"]
| ]
| };
|
| CodeMirror.defineMode("vue-template", function (config, parserConfig) {
| var mustacheOverlay = {
| token: function (stream) {
| if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";
| while (stream.next() && !stream.match("{{", false)) {}
| return null;
| }
| };
| return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
| });
|
| CodeMirror.defineMode("vue", function (config) {
| return CodeMirror.getMode(config, {name: "htmlmixed", tags: tagLanguages});
| }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "pug", "handlebars");
|
| CodeMirror.defineMIME("script/x-vue", "vue");
| CodeMirror.defineMIME("text/x-vue", "vue");
| });
|
|