annotate .cms/lib/codemirror/mode/vue/vue.js @ 0:78edf6b517a0 draft

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