Path: blob/master/web-gui/buildyourownbotnet/assets/js/codemirror/mode/htmlembedded/htmlembedded.js
1294 views
CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {12//config settings3var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i,4scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i;56//inner modes7var scriptingMode, htmlMixedMode;89//tokenizer when in html mode10function htmlDispatch(stream, state) {11if (stream.match(scriptStartRegex, false)) {12state.token=scriptingDispatch;13return scriptingMode.token(stream, state.scriptState);14}15else16return htmlMixedMode.token(stream, state.htmlState);17}1819//tokenizer when in scripting mode20function scriptingDispatch(stream, state) {21if (stream.match(scriptEndRegex, false)) {22state.token=htmlDispatch;23return htmlMixedMode.token(stream, state.htmlState);24}25else26return scriptingMode.token(stream, state.scriptState);27}282930return {31startState: function() {32scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec);33htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, "htmlmixed");34return {35token : parserConfig.startOpen ? scriptingDispatch : htmlDispatch,36htmlState : CodeMirror.startState(htmlMixedMode),37scriptState : CodeMirror.startState(scriptingMode)38};39},4041token: function(stream, state) {42return state.token(stream, state);43},4445indent: function(state, textAfter) {46if (state.token == htmlDispatch)47return htmlMixedMode.indent(state.htmlState, textAfter);48else if (scriptingMode.indent)49return scriptingMode.indent(state.scriptState, textAfter);50},5152copyState: function(state) {53return {54token : state.token,55htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState),56scriptState : CodeMirror.copyState(scriptingMode, state.scriptState)57};58},5960innerMode: function(state) {61if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode};62else return {state: state.htmlState, mode: htmlMixedMode};63}64};65}, "htmlmixed");6667CodeMirror.defineMIME("application/x-ejs", { name: "htmlembedded", scriptingModeSpec:"javascript"});68CodeMirror.defineMIME("application/x-aspx", { name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});69CodeMirror.defineMIME("application/x-jsp", { name: "htmlembedded", scriptingModeSpec:"text/x-java"});70CodeMirror.defineMIME("application/x-erb", { name: "htmlembedded", scriptingModeSpec:"ruby"});717273