Index: third_party/WebKit/Source/devtools/front_end/cm/htmlembedded.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/cm/htmlembedded.js b/third_party/WebKit/Source/devtools/front_end/cm/htmlembedded.js |
index e8f7ba803f64fe3d2986f3797dc91e6e0a7eceb4..464dc57f83870244ac3dca6382d7ad64c6d09fe3 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/cm/htmlembedded.js |
+++ b/third_party/WebKit/Source/devtools/front_end/cm/htmlembedded.js |
@@ -3,84 +3,26 @@ |
(function(mod) { |
if (typeof exports == "object" && typeof module == "object") // CommonJS |
- mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed")); |
+ mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), |
+ require("../../addon/mode/multiplex")); |
else if (typeof define == "function" && define.amd) // AMD |
- define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod); |
+ 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) { |
- |
- //config settings |
- var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i, |
- scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i; |
- |
- //inner modes |
- var scriptingMode, htmlMixedMode; |
- |
- //tokenizer when in html mode |
- function htmlDispatch(stream, state) { |
- if (stream.match(scriptStartRegex, false)) { |
- state.token=scriptingDispatch; |
- return scriptingMode.token(stream, state.scriptState); |
- } |
- else |
- return htmlMixedMode.token(stream, state.htmlState); |
- } |
- |
- //tokenizer when in scripting mode |
- function scriptingDispatch(stream, state) { |
- if (stream.match(scriptEndRegex, false)) { |
- state.token=htmlDispatch; |
- return htmlMixedMode.token(stream, state.htmlState); |
- } |
- else |
- return scriptingMode.token(stream, state.scriptState); |
- } |
- |
- |
- return { |
- startState: function() { |
- scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec); |
- htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, "htmlmixed"); |
- return { |
- token : parserConfig.startOpen ? scriptingDispatch : htmlDispatch, |
- htmlState : CodeMirror.startState(htmlMixedMode), |
- scriptState : CodeMirror.startState(scriptingMode) |
- }; |
- }, |
- |
- token: function(stream, state) { |
- return state.token(stream, state); |
- }, |
- |
- indent: function(state, textAfter) { |
- if (state.token == htmlDispatch) |
- return htmlMixedMode.indent(state.htmlState, textAfter); |
- else if (scriptingMode.indent) |
- return scriptingMode.indent(state.scriptState, textAfter); |
- }, |
- |
- copyState: function(state) { |
- return { |
- token : state.token, |
- htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState), |
- scriptState : CodeMirror.copyState(scriptingMode, state.scriptState) |
- }; |
- }, |
- |
- innerMode: function(state) { |
- if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode}; |
- else return {state: state.htmlState, mode: htmlMixedMode}; |
- } |
- }; |
-}, "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"}); |
- |
+ "use strict"; |
+ |
+ CodeMirror.defineMode("htmlembedded", function(config, parserConfig) { |
+ return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), { |
lushnikov
2016/07/20 01:40:13
don't we have to add this mode?
einbinder
2016/07/21 20:35:50
Done.
|
+ 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"}); |
}); |