GPQAPP

Форк
0
77 строк · 2.8 Кб
1
// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
// Distributed under an MIT license: https://codemirror.net/LICENSE
3

4
(function (mod) {
5
  "use strict";
6
  if (typeof exports === "object" && typeof module === "object") {// CommonJS
7
    mod(require("../../lib/codemirror"),
8
        require("../../addon/mode/overlay"),
9
        require("../xml/xml"),
10
        require("../javascript/javascript"),
11
        require("../coffeescript/coffeescript"),
12
        require("../css/css"),
13
        require("../sass/sass"),
14
        require("../stylus/stylus"),
15
        require("../pug/pug"),
16
        require("../handlebars/handlebars"));
17
  } else if (typeof define === "function" && define.amd) { // AMD
18
    define(["../../lib/codemirror",
19
            "../../addon/mode/overlay",
20
            "../xml/xml",
21
            "../javascript/javascript",
22
            "../coffeescript/coffeescript",
23
            "../css/css",
24
            "../sass/sass",
25
            "../stylus/stylus",
26
            "../pug/pug",
27
            "../handlebars/handlebars"], mod);
28
  } else { // Plain browser env
29
    mod(CodeMirror);
30
  }
31
})(function (CodeMirror) {
32
  var tagLanguages = {
33
    script: [
34
      ["lang", /coffee(script)?/, "coffeescript"],
35
      ["type", /^(?:text|application)\/(?:x-)?coffee(?:script)?$/, "coffeescript"],
36
      ["lang", /^babel$/, "javascript"],
37
      ["type", /^text\/babel$/, "javascript"],
38
      ["type", /^text\/ecmascript-\d+$/, "javascript"]
39
    ],
40
    style: [
41
      ["lang", /^stylus$/i, "stylus"],
42
      ["lang", /^sass$/i, "sass"],
43
      ["lang", /^less$/i, "text/x-less"],
44
      ["lang", /^scss$/i, "text/x-scss"],
45
      ["type", /^(text\/)?(x-)?styl(us)?$/i, "stylus"],
46
      ["type", /^text\/sass/i, "sass"],
47
      ["type", /^(text\/)?(x-)?scss$/i, "text/x-scss"],
48
      ["type", /^(text\/)?(x-)?less$/i, "text/x-less"]
49
    ],
50
    template: [
51
      ["lang", /^vue-template$/i, "vue"],
52
      ["lang", /^pug$/i, "pug"],
53
      ["lang", /^handlebars$/i, "handlebars"],
54
      ["type", /^(text\/)?(x-)?pug$/i, "pug"],
55
      ["type", /^text\/x-handlebars-template$/i, "handlebars"],
56
      [null, null, "vue-template"]
57
    ]
58
  };
59

60
  CodeMirror.defineMode("vue-template", function (config, parserConfig) {
61
    var mustacheOverlay = {
62
      token: function (stream) {
63
        if (stream.match(/^\{\{.*?\}\}/)) return "meta mustache";
64
        while (stream.next() && !stream.match("{{", false)) {}
65
        return null;
66
      }
67
    };
68
    return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || "text/html"), mustacheOverlay);
69
  });
70

71
  CodeMirror.defineMode("vue", function (config) {
72
    return CodeMirror.getMode(config, {name: "htmlmixed", tags: tagLanguages});
73
  }, "htmlmixed", "xml", "javascript", "coffeescript", "css", "sass", "stylus", "pug", "handlebars");
74

75
  CodeMirror.defineMIME("script/x-vue", "vue");
76
  CodeMirror.defineMIME("text/x-vue", "vue");
77
});
78

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.