Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/addon/mode/multiplex.min.js |
(function(v){typeof exports=="object"&&typeof module=="object"?v(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],v):v(CodeMirror)})(function(v){"use strict";v.multiplexingMode=function(o){var y=Array.prototype.slice.call(arguments,1);function d(i,n,l,e){if(typeof n=="string"){var A=i.indexOf(n,l);return e&&A>-1?A+n.length:A}var c=n.exec(l?i.slice(l):i);return c?c.index+l+(e?c[0].length:0):-1}return{startState:function(){return{outer:v.startState(o),innerActive:null,inner:null,startingInner:!1}},copyState:function(i){return{outer:v.copyState(o,i.outer),innerActive:i.innerActive,inner:i.innerActive&&v.copyState(i.innerActive.mode,i.inner),startingInner:i.startingInner}},token:function(i,n){if(n.innerActive){var r=n.innerActive,e=i.string;if(!r.close&&i.sol())return n.innerActive=n.inner=null,this.token(i,n);var f=r.close&&!n.startingInner?d(e,r.close,i.pos,r.parseDelimiters):-1;if(f==i.pos&&!r.parseDelimiters)return i.match(r.close),n.innerActive=n.inner=null,r.delimStyle&&r.delimStyle+" "+r.delimStyle+"-close";f>-1&&(i.string=e.slice(0,f));var p=r.mode.token(i,n.inner);return f>-1?i.string=e:i.pos>i.start&&(n.startingInner=!1),f==i.pos&&r.parseDelimiters&&(n.innerActive=n.inner=null),r.innerStyle&&(p?p=p+" "+r.innerStyle:p=r.innerStyle),p}else{for(var l=1/0,e=i.string,A=0;A<y.length;++A){var c=y[A],f=d(e,c.open,i.pos);if(f==i.pos){c.parseDelimiters||i.match(c.open),n.startingInner=!!c.parseDelimiters,n.innerActive=c;var t=0;if(o.indent){var g=o.indent(n.outer,"","");g!==v.Pass&&(t=g)}return n.inner=v.startState(c.mode,t),c.delimStyle&&c.delimStyle+" "+c.delimStyle+"-open"}else f!=-1&&f<l&&(l=f)}l!=1/0&&(i.string=e.slice(0,l));var S=o.token(i,n.outer);return l!=1/0&&(i.string=e),S}},indent:function(i,n,l){var e=i.innerActive?i.innerActive.mode:o;return e.indent?e.indent(i.innerActive?i.inner:i.outer,n,l):v.Pass},blankLine:function(i){var n=i.innerActive?i.innerActive.mode:o;if(n.blankLine&&n.blankLine(i.innerActive?i.inner:i.outer),i.innerActive)i.innerActive.close===`
`&&(i.innerActive=i.inner=null);else for(var l=0;l<y.length;++l){var e=y[l];e.open===`
`&&(i.innerActive=e,i.inner=v.startState(e.mode,n.indent?n.indent(i.outer,"",""):0))}},electricChars:o.electricChars,innerMode:function(i){return i.inner?{state:i.inner,mode:i.innerActive.mode}:{state:i.outer,mode:o}}}}});