0
|
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
|
|
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
|
|
3
|
|
4 (function(mod) {
|
|
5 if (typeof exports == "object" && typeof module == "object") // CommonJS
|
|
6 mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
|
|
7 require("../../addon/mode/multiplex"));
|
|
8 else if (typeof define == "function" && define.amd) // AMD
|
|
9 define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
|
|
10 "../../addon/mode/multiplex"], mod);
|
|
11 else // Plain browser env
|
|
12 mod(CodeMirror);
|
|
13 })(function(CodeMirror) {
|
|
14 "use strict";
|
|
15
|
|
16 CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
|
|
17 var closeComment = parserConfig.closeComment || "--%>"
|
|
18 return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
|
|
19 open: parserConfig.openComment || "<%--",
|
|
20 close: closeComment,
|
|
21 delimStyle: "comment",
|
|
22 mode: {token: function(stream) {
|
|
23 stream.skipTo(closeComment) || stream.skipToEnd()
|
|
24 return "comment"
|
|
25 }}
|
|
26 }, {
|
|
27 open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
|
|
28 close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
|
|
29 mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
|
|
30 });
|
|
31 }, "htmlmixed");
|
|
32
|
|
33 CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
|
|
34 CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
|
|
35 CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
|
|
36 CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
|
|
37 });
|