| // CodeMirror, copyright (c) by Marijn Haverbeke and others |
| // Distributed under an MIT license: https://codemirror.net/LICENSE |
| |
| (function(mod) { |
| if (typeof exports == "object" && typeof module == "object") // CommonJS |
| mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), |
| require("../../addon/mode/multiplex")); |
| else if (typeof define == "function" && define.amd) // AMD |
| define(["../../lib/codemirror", "../htmlmixed/htmlmixed", |
| "../../addon/mode/multiplex"], mod); |
| else // Plain browser env |
| mod(CodeMirror); |
| })(function(CodeMirror) { |
| "use strict"; |
| |
| CodeMirror.defineMode("htmlembedded", function(config, parserConfig) { |
| var closeComment = parserConfig.closeComment || "--%>" |
| return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), { |
| open: parserConfig.openComment || "<%--", |
| close: closeComment, |
| delimStyle: "comment", |
| mode: {token: function(stream) { |
| stream.skipTo(closeComment) || stream.skipToEnd() |
| return "comment" |
| }} |
| }, { |
| open: parserConfig.open || parserConfig.scriptStartRegex || "<%", |
| close: parserConfig.close || parserConfig.scriptEndRegex || "%>", |
| mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec) |
| }); |
| }, "htmlmixed"); |
| |
| CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"}); |
| CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"}); |
| CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"}); |
| CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"}); |
| }); |