2016-04-20 10:11:40 +00:00
! function ( e ) { if ( "object" == typeof exports && "object" == typeof module ) module . exports = e ( ) ; else { if ( "function" == typeof define && define . amd ) return define ( [ ] , e ) ; ( this || window ) . CodeMirror = e ( ) } } ( function ( ) { "use strict" ; function e ( r , n ) { if ( ! ( this instanceof e ) ) return new e ( r , n ) ; this . options = n = n ? ji ( n ) : { } , ji ( ta , n , ! 1 ) , p ( n ) ; var i = n . value ; "string" == typeof i && ( i = new Sa ( i , n . mode , null , n . lineSeparator ) ) , this . doc = i ; var o = new e . inputStyles [ n . inputStyle ] ( this ) , a = this . display = new t ( r , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , s ( this ) , n . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , n . autofocus && ! Eo && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , selectingText : ! 1 , draggingText : ! 1 , highlight : new Oi , keySeq : null , specialChars : null } ; var l = this ; ko && 11 > xo && setTimeout ( function ( ) { l . display . input . reset ( ! 0 ) } , 20 ) , Ht ( this ) , Zi ( ) , xt ( this ) , this . curOp . forceUpdate = ! 0 , Yn ( this , i ) , n . autofocus && ! Eo || l . hasFocus ( ) ? setTimeout ( Di ( vr , this ) , 20 ) : yr ( this ) ; for ( var u in ra ) ra . hasOwnProperty ( u ) && ra [ u ] ( this , n [ u ] , na ) ; w ( this ) , n . finishInit && n . finishInit ( this ) ; for ( var d = 0 ; d < sa . length ; ++ d ) sa [ d ] ( this ) ; _t ( this ) , wo && n . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , r ) { var n = this ; this . input = r , n . scrollbarFiller = Hi ( "div" , null , "CodeMirror-scrollbar-filler" ) , n . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , n . gutterFiller = Hi ( "div" , null , "CodeMirror-gutter-filler" ) , n . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , n . lineDiv = Hi ( "div" , null , "CodeMirror-code" ) , n . selectionDiv = Hi ( "div" , null , null , "position: relative; z-index: 1" ) , n . cursorDiv = Hi ( "div" , null , "CodeMirror-cursors" ) , n . measure = Hi ( "div" , null , "CodeMirror-measure" ) , n . lineMeasure = Hi ( "div" , null , "CodeMirror-measure" ) , n . lineSpace = Hi ( "div" , [ n . measure , n . lineMeasure , n . selectionDiv , n . cursorDiv , n . lineDiv ] , null , "position: relative; outline: none" ) , n . mover = Hi ( "div" , [ Hi ( "div" , [ n . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , n . sizer = Hi ( "div" , [ n . mover ] , "CodeMirror-sizer" ) , n . sizerWidth = null , n . heightForcer = Hi ( "div" , null , null , "position: absolute; height: " + Pa + "px; width: 1px;" ) , n . gutters = Hi ( "div" , null , "CodeMirror-gutters" ) , n . lineGutter = null , n . scroller = Hi ( "div" , [ n . sizer , n . heightForcer , n . gutters ] , "CodeMirror-scroll" ) , n . scroller . setAttribute ( "tabIndex" , "-1" ) , n . wrapper = Hi ( "div" , [ n . scrollbarFiller , n . gutterFiller , n . scroller ] , "CodeMirror" ) , ko && 8 > xo && ( n . gutters . style . zIndex = - 1 , n . scroller . style . paddingRight = 0 ) , wo || vo && Eo || ( n . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( n . wrapper ) : e ( n . wrapper ) ) , n . viewFrom = n . viewTo = t . first , n . reportedViewFrom = n . reportedViewTo = t . first , n . view = [ ] , n . renderedView = null , n . externalMeasured = null , n . viewOffset = 0 , n . lastWrapHeight = n . lastWrapWidth = 0 , n . updateLineNumbers = null , n . nativeBarWidth = n . barHeight = n . barWidth = 0 , n . scrollbarsClipped = ! 1 , n . lineNumWidth = n . lineNumInnerWidth = n . lineNumChars = null , n . alignWidgets = ! 1 , n . cachedCharWidth = n . cachedTextHeight = n . cachedPaddingH = null , n . maxLine = null , n . maxLineLength = 0 , n . maxLineChanged = ! 1 , n . wheelDX = n . wheelDY = n . wheelStartX = n . wheelStartY = null , n . shift = ! 1 , n . selForContextMenu = null , n . activeTouch = null , r . init ( n ) } function r ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , n ( t ) } function n ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , Be ( e , 100 ) , e . state . modeGen ++ , e . curOp && Pt ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ja ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Qa ( e . display . wrapper , "CodeMirror-wrap" ) , f ( e ) ) , a ( e ) , Pt ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = bt ( e . display ) , r = e . options . lineWrapping , n = r && Math . max ( 5 , e . display . scroller . clientWidth / kt ( e . display ) - 3 ) ; return function ( i ) { if ( _n ( e . doc , i ) ) return 0 ; var o = 0 ; if ( i . widgets ) for ( var a = 0 ; a < i . widgets . length ; a ++ ) i . widgets [ a ] . height && ( o += i . widgets [ a ] . height ) ; return r ? o + ( Math . ceil ( i . text . length / n ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , r = o ( e ) ; t . iter ( function ( e ) { var t = r ( e ) ; t != e . height && ti ( e , t ) } ) } function s ( e ) { e . d
o = it ( e , t , r , n ) , o . bogus || ( t . cache [ a ] = o ) ) , { left : o . left , right : o . right , top : i ? o . rtop : o . top , bottom : i ? o . rbottom : o . bottom } } function nt ( e , t , r ) { for ( var n , i , o , a , s = 0 ; s < e . length ; s += 3 ) { var l = e [ s ] , c = e [ s + 1 ] ; if ( l > t ? ( i = 0 , o = 1 , a = "left" ) : c > t ? ( i = t - l , o = i + 1 ) : ( s == e . length - 3 || t == c && e [ s + 3 ] > t ) && ( o = c - l , i = o - 1 , t >= c && ( a = "right" ) ) , null != i ) { if ( n = e [ s + 2 ] , l == c && r == ( n . insertLeft ? "left" : "right" ) && ( a = r ) , "left" == r && 0 == i ) for ( ; s && e [ s - 2 ] == e [ s - 3 ] && e [ s - 1 ] . insertLeft ; ) n = e [ ( s -= 3 ) + 2 ] , a = "left" ; if ( "right" == r && i == c - l ) for ( ; s < e . length - 3 && e [ s + 3 ] == e [ s + 4 ] && ! e [ s + 5 ] . insertLeft ; ) n = e [ ( s += 3 ) + 2 ] , a = "right" ; break } } return { node : n , start : i , end : o , collapse : a , coverStart : l , coverEnd : c } } function it ( e , t , r , n ) { var i , o = nt ( t . map , r , n ) , a = o . node , s = o . start , l = o . end , c = o . collapse ; if ( 3 == a . nodeType ) { for ( var u = 0 ; 4 > u ; u ++ ) { for ( ; s && Wi ( t . line . text . charAt ( o . coverStart + s ) ) ; ) -- s ; for ( ; o . coverStart + l < o . coverEnd && Wi ( t . line . text . charAt ( o . coverStart + l ) ) ; ) ++ l ; if ( ko && 9 > xo && 0 == s && l == o . coverEnd - o . coverStart ) i = a . parentNode . getBoundingClientRect ( ) ; else if ( ko && e . options . lineWrapping ) { var d = Ua ( a , s , l ) . getClientRects ( ) ; i = d . length ? d [ "right" == n ? d . length - 1 : 0 ] : Uo } else i = Ua ( a , s , l ) . getBoundingClientRect ( ) || Uo ; if ( i . left || i . right || 0 == s ) break ; l = s , s -= 1 , c = "right" } ko && 11 > xo && ( i = ot ( e . display . measure , i ) ) } else { s > 0 && ( c = n = "right" ) ; var d ; i = e . options . lineWrapping && ( d = a . getClientRects ( ) ) . length > 1 ? d [ "right" == n ? d . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( ko && 9 > xo && ! s && ( ! i || ! i . left && ! i . right ) ) { var f = a . parentNode . getClientRects ( ) [ 0 ] ; i = f ? { left : f . left , right : f . left + kt ( e . display ) , top : f . top , bottom : f . bottom } : Uo } for ( var p = i . top - t . rect . top , h = i . bottom - t . rect . top , m = ( p + h ) / 2 , g = t . view . measure . heights , u = 0 ; u < g . length - 1 && ! ( m < g [ u ] ) ; u ++ ) ; var v = u ? g [ u - 1 ] : 0 , y = g [ u ] , b = { left : ( "right" == c ? i . right : i . left ) - t . rect . left , right : ( "left" == c ? i . left : i . right ) - t . rect . left , top : v , bottom : y } ; return i . left || i . right || ( b . bogus = ! 0 ) , e . options . singleCursorHeightPerLine || ( b . rtop = p , b . rbottom = h ) , b } function ot ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! eo ( e ) ) return t ; var r = screen . logicalXDPI / screen . deviceXDPI , n = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * r , right : t . right * r , top : t . top * n , bottom : t . bottom * n } } function at ( e ) { if ( e . measure && ( e . measure . cache = { } , e . measure . heights = null , e . rest ) ) for ( var t = 0 ; t < e . rest . length ; t ++ ) e . measure . caches [ t ] = { } } function st ( e ) { e . display . externalMeasure = null , $i ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) at ( e . display . view [ t ] ) } function lt ( e ) { st ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function ct ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ut ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function dt ( e , t , r , n ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = Mn ( t . widgets [ i ] ) ; r . top += o , r . bottom += o } if ( "line" == n ) return r ; n || ( n = "local" ) ; var a = ii ( t ) ; if ( "local" == n ? a += $e ( e . display ) : a -= e . display . viewOffset , "page" == n || "window" == n ) { var s = e . display . lineSpace . getBoundingClientRect ( ) ; a += s . top + ( "window" == n ? 0 : ut ( ) ) ; var l = s . left + ( "window" == n ? 0 : ct ( ) ) ; r . left += l , r . right += l } return r . top += a , r . bottom += a , r } function ft ( e , t , r ) { if ( "div" == r ) return t ; var n = t . left , i = t . top ; if ( "page" == r ) n -= ct ( ) , i -= ut ( ) ; else if ( "local" == r || ! r ) { var o = e . display . sizer . getBoundingClientRect ( ) ; n += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : n - a . left , top : i - a . top } } function pt ( e , t , r , n , i ) { return n || ( n = Qn ( e . doc , t . line ) ) , dt ( e , n , Je ( e , n , t . ch , i ) , r ) } function ht ( e , t , r , n , i , o ) { function a ( t , a ) { var s = rt ( e , i , t , a ? "right" : "left" , o ) ; return a ? s . left = s . right : s . right = s . left , dt ( e , n , s , r ) } function s ( e , t ) { var r = l [ t ] , n = r . level % 2 ; return e == ro ( r ) && t && r . level < l [ t - 1 ] . level ? ( r = l [ -- t ] , e = no ( r ) - ( r . level % 2 ? 0 : 1 ) , n = ! 0 ) : e == no ( r ) && t < l . length - 1 && r . level < l [ t + 1 ] . level && ( r = l [ ++ t ] , e = ro ( r ) - r . level % 2 , n = ! 1 ) , n && e == r . to && e > r . from ? a ( e - 1 ) : a ( e , n ) } n = n || Qn ( e . doc , t . line ) , i || ( i = tt ( e , n ) ) ; var l = oi ( n ) , c = t . ch ; if ( ! l ) return a ( c ) ; var u = uo ( l , c ) , d = s ( c , u ) ; return null != ss && ( d . other = s ( c , ss ) ) , d } function mt ( e , t ) { var r = 0 , t = ge ( e . doc , t ) ; e . options . lineWrapping || ( r = kt ( e . disp
null != t && ( e . curOp . scrollLeft = ( null == e . curOp . scrollLeft ? e . doc . scrollLeft : e . curOp . scrollLeft ) + t ) , null != r && ( e . curOp . scrollTop = ( null == e . curOp . scrollTop ? e . doc . scrollTop : e . curOp . scrollTop ) + r ) } function jr ( e ) { Dr ( e ) ; var t = e . getCursor ( ) , r = t , n = t ; e . options . lineWrapping || ( r = t . ch ? Do ( t . line , t . ch - 1 ) : t , n = Do ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : r , to : n , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function Dr ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var r = mt ( e , t . from ) , n = mt ( e , t . to ) , i = Pr ( e , Math . min ( r . left , n . left ) , Math . min ( r . top , n . top ) - t . margin , Math . max ( r . right , n . right ) , Math . max ( r . bottom , n . bottom ) + t . margin ) ; e . scrollTo ( i . scrollLeft , i . scrollTop ) } } function Br ( e , t , r , n ) { var i , o = e . doc ; null == r && ( r = "add" ) , "smart" == r && ( o . mode . indent ? i = He ( e , t ) : r = "prev" ) ; var a = e . options . tabSize , s = Qn ( o , t ) , l = Fa ( s . text , null , a ) ; s . stateAfter && ( s . stateAfter = null ) ; var c , u = s . text . match ( /^\s*/ ) [ 0 ] ; if ( n || /\S/ . test ( s . text ) ) { if ( "smart" == r && ( c = o . mode . indent ( i , s . text . slice ( u . length ) , s . text ) , c == Ra || c > 150 ) ) { if ( ! n ) return ; r = "prev" } } else c = 0 , r = "not" ; "prev" == r ? c = t > o . first ? Fa ( Qn ( o , t - 1 ) . text , null , a ) : 0 : "add" == r ? c = l + e . options . indentUnit : "subtract" == r ? c = l - e . options . indentUnit : "number" == typeof r && ( c = l + r ) , c = Math . max ( 0 , c ) ; var d = "" , f = 0 ; if ( e . options . indentWithTabs ) for ( var p = Math . floor ( c / a ) ; p ; -- p ) f += a , d += " " ; if ( c > f && ( d += zi ( c - f ) ) , d != u ) return zr ( o , d , Do ( t , 0 ) , Do ( t , u . length ) , "+input" ) , s . stateAfter = null , ! 0 ; for ( var p = 0 ; p < o . sel . ranges . length ; p ++ ) { var h = o . sel . ranges [ p ] ; if ( h . head . line == t && h . head . ch < u . length ) { var f = Do ( t , u . length ) ; _e ( o , p , new fe ( f , f ) ) ; break } } } function Fr ( e , t , r , n ) { var i = t , o = t ; return "number" == typeof t ? o = Qn ( e , me ( e , t ) ) : i = ri ( t ) , null == i ? null : ( n ( o , i ) && e . cm && Rt ( e . cm , i , r ) , o ) } function Wr ( e , t ) { for ( var r = e . doc . sel . ranges , n = [ ] , i = 0 ; i < r . length ; i ++ ) { for ( var o = t ( r [ i ] ) ; n . length && Bo ( o . from , Ii ( n ) . to ) <= 0 ; ) { var a = n . pop ( ) ; if ( Bo ( a . from , o . from ) < 0 ) { o . from = a . from ; break } } n . push ( o ) } Et ( e , function ( ) { for ( var t = n . length - 1 ; t >= 0 ; t -- ) zr ( e . doc , "" , n [ t ] . from , n [ t ] . to , "+delete" ) ; jr ( e ) } ) } function Hr ( e , t , r , n , i ) { function o ( ) { var t = s + r ; return t < e . first || t >= e . first + e . size ? ! 1 : ( s = t , u = Qn ( e , t ) ) } function a ( e ) { var t = ( i ? po : ho ) ( u , l , r , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; l = i ? ( 0 > r ? oo : io ) ( u ) : 0 > r ? u . text . length : 0 } else l = t ; return ! 0 } var s = t . line , l = t . ch , c = r , u = Qn ( e , s ) ; if ( "char" == n ) a ( ) ; else if ( "column" == n ) a ( ! 0 ) ; else if ( "word" == n || "group" == n ) for ( var d = null , f = "group" == n , p = e . cm && e . cm . getHelper ( t , "wordChars" ) , h = ! 0 ; ! ( 0 > r ) || a ( ! h ) ; h = ! 1 ) { var m = u . text . charAt ( l ) || "\n" , g = Bi ( m , p ) ? "w" : f && "\n" == m ? "n" : ! f || /\s/ . test ( m ) ? null : "p" ; if ( ! f || h || g || ( g = "s" ) , d && d != g ) { 0 > r && ( r = 1 , a ( ) ) ; break } if ( g && ( d = g ) , r > 0 && ! a ( ! h ) ) break } var v = Ie ( e , Do ( s , l ) , t , c , ! 0 ) ; return Bo ( t , v ) || ( v . hitSide = ! 0 ) , v } function $r ( e , t , r , n ) { var i , o = e . doc , a = t . left ; if ( "page" == n ) { var s = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + r * ( s - ( 0 > r ? 1.5 : . 5 ) * bt ( e . display ) ) } else "line" == n && ( i = r > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var l = vt ( e , a , i ) ; if ( ! l . outside ) break ; if ( 0 > r ? 0 >= i : i >= o . height ) { l . hitSide = ! 0 ; break } i += 5 * r } return l } function Ur ( t , r , n , i ) { e . defaults [ t ] = r , n && ( ra [ t ] = i ? function ( e , t , r ) { r != na && n ( e , t , r ) } : n ) } function Kr ( e ) { for ( var t , r , n , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var s = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( s ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( s ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( s ) ) r = ! 0 ; else { if ( ! /^s(hift)$/i . test ( s ) ) throw new Error ( "Unrecognized modifier name: " + s ) ; n = ! 0 } } return t && ( e = "Alt-" + e ) , r && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , n && ( e = "Shift-" + e ) , e } function Vr ( e ) { return "string" == typeof e ? fa [ e ] : e } function Gr ( e , t , r , n , i ) { if ( n && n . shared ) return Xr ( e , t , r , n , i ) ; if ( e . cm && ! e . cm . curOp ) return Ot ( e . cm , Gr ) ( e , t , r , n , i ) ; var o = new ya ( e , i ) , a = Bo ( t , r ) ; if ( n && ji ( n , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = Hi ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , n . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , n . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( yn ( e , t . line , t , r , o ) || t . line != r . line && yn ( e , r . line , t , r , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; jo = ! 0 } o . addToHistory && ui ( e , { from : t , to : r , origin : "markText" } , e . sel , 0 / 0 ) ; var s , l = t . line , c = e . c
2015-05-04 07:53:29 +00:00
2016-04-20 10:11:40 +00:00
e . removeChild ( this . horiz ) , e . removeChild ( this . vert ) } } , m . prototype ) , g . prototype = ji ( { update : function ( ) { return { bottom : 0 , right : 0 } } , setScrollLeft : function ( ) { } , setScrollTop : function ( ) { } , clear : function ( ) { } } , g . prototype ) , e . scrollbarModel = { "native" : m , "null" : g } , S . prototype . signal = function ( e , t ) { Ai ( e , t ) && this . events . push ( arguments ) } , S . prototype . finish = function ( ) { for ( var e = 0 ; e < this . events . length ; e ++ ) Na . apply ( null , this . events [ e ] ) } ; var Do = e . Pos = function ( e , t ) { return this instanceof Do ? ( this . line = e , void ( this . ch = t ) ) : new Do ( e , t ) } , Bo = e . cmpPos = function ( e , t ) { return e . line - t . line || e . ch - t . ch } , Fo = null ; ne . prototype = ji ( { init : function ( e ) { function t ( e ) { if ( ! Li ( n , e ) ) { if ( n . somethingSelected ( ) ) Fo = n . getSelections ( ) , r . inaccurateSelection && ( r . prevInput = "" , r . inaccurateSelection = ! 1 , o . value = Fo . join ( "\n" ) , $a ( o ) ) ; else { if ( ! n . options . lineWiseCopyCut ) return ; var t = te ( n ) ; Fo = t . text , "cut" == e . type ? n . setSelections ( t . ranges , null , ja ) : ( r . prevInput = "" , o . value = t . text . join ( "\n" ) , $a ( o ) ) } "cut" == e . type && ( n . state . cutIncoming = ! 0 ) } } var r = this , n = this . cm , i = this . wrapper = ie ( ) , o = this . textarea = i . firstChild ; e . wrapper . insertBefore ( i , e . wrapper . firstChild ) , Ao && ( o . style . width = "0px" ) , Oa ( o , "input" , function ( ) { ko && xo >= 9 && r . hasSelection && ( r . hasSelection = null ) , r . poll ( ) } ) , Oa ( o , "paste" , function ( e ) { Li ( n , e ) || J ( e , n ) || ( n . state . pasteIncoming = ! 0 , r . fastPoll ( ) ) } ) , Oa ( o , "cut" , t ) , Oa ( o , "copy" , t ) , Oa ( e . scroller , "paste" , function ( t ) { Kt ( e , t ) || Li ( n , t ) || ( n . state . pasteIncoming = ! 0 , r . focus ( ) ) } ) , Oa ( e . lineSpace , "selectstart" , function ( t ) { Kt ( e , t ) || Ta ( t ) } ) , Oa ( o , "compositionstart" , function ( ) { var e = n . getCursor ( "from" ) ; r . composing && r . composing . range . clear ( ) , r . composing = { start : e , range : n . markText ( e , n . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) } } ) , Oa ( o , "compositionend" , function ( ) { r . composing && ( r . poll ( ) , r . composing . range . clear ( ) , r . composing = null ) } ) } , prepareSelection : function ( ) { var e = this . cm , t = e . display , r = e . doc , n = Pe ( e ) ; if ( e . options . moveInputWithCursor ) { var i = ht ( e , r . sel . primary ( ) . head , "div" ) , o = t . wrapper . getBoundingClientRect ( ) , a = t . lineDiv . getBoundingClientRect ( ) ; n . teTop = Math . max ( 0 , Math . min ( t . wrapper . clientHeight - 10 , i . top + a . top - o . top ) ) , n . teLeft = Math . max ( 0 , Math . min ( t . wrapper . clientWidth - 10 , i . left + a . left - o . left ) ) } return n } , showSelection : function ( e ) { var t = this . cm , r = t . display ; Ui ( r . cursorDiv , e . cursors ) , Ui ( r . selectionDiv , e . selection ) , null != e . teTop && ( this . wrapper . style . top = e . teTop + "px" , this . wrapper . style . left = e . teLeft + "px" ) } , reset : function ( e ) { if ( ! this . contextMenuPending ) { var t , r , n = this . cm , i = n . doc ; if ( n . somethingSelected ( ) ) { this . prevInput = "" ; var o = i . sel . primary ( ) ; t = is && ( o . to ( ) . line - o . from ( ) . line > 100 || ( r = n . getSelection ( ) ) . length > 1e3 ) ; var a = t ? "-" : r || n . getSelection ( ) ; this . composing || ( this . textarea . value = a ) , n . state . focused && $a ( this . textarea ) , ko && xo >= 9 && ( this . hasSelection = a ) } else e || ( this . composing || ( this . prevInput = this . textarea . value = "" ) , ko && xo >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! Eo || Ki ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var n = r . poll ( ) ; n || t ? ( r . pollingFast = ! 1 , r . slowPoll ( ) ) : ( t = ! 0 , r . polling . set ( 60 , e ) ) } var t = ! 1 , r = this ; r . pollingFast = ! 0 , r . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , r = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || ns ( t ) && ! r && ! this . composing || e . isReadOnly ( ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var n = t . value ; if ( n == r && ! e . somethingSelected ( ) ) return ! 1 ; if ( ko && xo >= 9 && this . hasSelection === n || Oo && /[\uf700-\uf7ff]/ . test ( n ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = n . charCodeAt ( 0 ) ; if ( 8203 != i || r || ( r = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( r . length , n . length ) ; a > o && r . charCodeAt ( o ) == n . charCodeAt ( o ) ; ) ++ o ; var s = thi
e . toggleOverwrite ( ) } } , fa = e . keyMap = { } ; fa . basic = { Left : "goCharLeft" , Right : "goCharRight" , Up : "goLineUp" , Down : "goLineDown" , End : "goLineEnd" , Home : "goLineStartSmart" , PageUp : "goPageUp" , PageDown : "goPageDown" , Delete : "delCharAfter" , Backspace : "delCharBefore" , "Shift-Backspace" : "delCharBefore" , Tab : "defaultTab" , "Shift-Tab" : "indentAuto" , Enter : "newlineAndIndent" , Insert : "toggleOverwrite" , Esc : "singleSelection" } , fa . pcDefault = { "Ctrl-A" : "selectAll" , "Ctrl-D" : "deleteLine" , "Ctrl-Z" : "undo" , "Shift-Ctrl-Z" : "redo" , "Ctrl-Y" : "redo" , "Ctrl-Home" : "goDocStart" , "Ctrl-End" : "goDocEnd" , "Ctrl-Up" : "goLineUp" , "Ctrl-Down" : "goLineDown" , "Ctrl-Left" : "goGroupLeft" , "Ctrl-Right" : "goGroupRight" , "Alt-Left" : "goLineStart" , "Alt-Right" : "goLineEnd" , "Ctrl-Backspace" : "delGroupBefore" , "Ctrl-Delete" : "delGroupAfter" , "Ctrl-S" : "save" , "Ctrl-F" : "find" , "Ctrl-G" : "findNext" , "Shift-Ctrl-G" : "findPrev" , "Shift-Ctrl-F" : "replace" , "Shift-Ctrl-R" : "replaceAll" , "Ctrl-[" : "indentLess" , "Ctrl-]" : "indentMore" , "Ctrl-U" : "undoSelection" , "Shift-Ctrl-U" : "redoSelection" , "Alt-U" : "redoSelection" , fallthrough : "basic" } , fa . emacsy = { "Ctrl-F" : "goCharRight" , "Ctrl-B" : "goCharLeft" , "Ctrl-P" : "goLineUp" , "Ctrl-N" : "goLineDown" , "Alt-F" : "goWordRight" , "Alt-B" : "goWordLeft" , "Ctrl-A" : "goLineStart" , "Ctrl-E" : "goLineEnd" , "Ctrl-V" : "goPageDown" , "Shift-Ctrl-V" : "goPageUp" , "Ctrl-D" : "delCharAfter" , "Ctrl-H" : "delCharBefore" , "Alt-D" : "delWordAfter" , "Alt-Backspace" : "delWordBefore" , "Ctrl-K" : "killLine" , "Ctrl-T" : "transposeChars" } , fa . macDefault = { "Cmd-A" : "selectAll" , "Cmd-D" : "deleteLine" , "Cmd-Z" : "undo" , "Shift-Cmd-Z" : "redo" , "Cmd-Y" : "redo" , "Cmd-Home" : "goDocStart" , "Cmd-Up" : "goDocStart" , "Cmd-End" : "goDocEnd" , "Cmd-Down" : "goDocEnd" , "Alt-Left" : "goGroupLeft" , "Alt-Right" : "goGroupRight" , "Cmd-Left" : "goLineLeft" , "Cmd-Right" : "goLineRight" , "Alt-Backspace" : "delGroupBefore" , "Ctrl-Alt-Backspace" : "delGroupAfter" , "Alt-Delete" : "delGroupAfter" , "Cmd-S" : "save" , "Cmd-F" : "find" , "Cmd-G" : "findNext" , "Shift-Cmd-G" : "findPrev" , "Cmd-Alt-F" : "replace" , "Shift-Cmd-Alt-F" : "replaceAll" , "Cmd-[" : "indentLess" , "Cmd-]" : "indentMore" , "Cmd-Backspace" : "delWrappedLineLeft" , "Cmd-Delete" : "delWrappedLineRight" , "Cmd-U" : "undoSelection" , "Shift-Cmd-U" : "redoSelection" , "Ctrl-Up" : "goDocStart" , "Ctrl-Down" : "goDocEnd" , fallthrough : [ "basic" , "emacsy" ] } , fa [ "default" ] = Oo ? fa . macDefault : fa . pcDefault , e . normalizeKeyMap = function ( e ) { var t = { } ; for ( var r in e ) if ( e . hasOwnProperty ( r ) ) { var n = e [ r ] ; if ( /^(name|fallthrough|(de|at)tach)$/ . test ( r ) ) continue ; if ( "..." == n ) { delete e [ r ] ; continue } for ( var i = qi ( r . split ( " " ) , Kr ) , o = 0 ; o < i . length ; o ++ ) { var a , s ; o == i . length - 1 ? ( s = i . join ( " " ) , a = n ) : ( s = i . slice ( 0 , o + 1 ) . join ( " " ) , a = "..." ) ; var l = t [ s ] ; if ( l ) { if ( l != a ) throw new Error ( "Inconsistent bindings for " + s ) } else t [ s ] = a } delete e [ r ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var pa = e . lookupKey = function ( e , t , r , n ) { t = Vr ( t ) ; var i = t . call ? t . call ( e , n ) : t [ e ] ; if ( i === ! 1 ) return "nothing" ; if ( "..." === i ) return "multi" ; if ( null != i && r ( i ) ) return "handled" ; if ( t . fallthrough ) { if ( "[object Array]" != Object . prototype . toString . call ( t . fallthrough ) ) return pa ( e , t . fallthrough , r , n ) ; for ( var o = 0 ; o < t . fallthrough . length ; o ++ ) { var a = pa ( e , t . fallthrough [ o ] , r , n ) ; if ( a ) return a } } } , ha = e . isModifierKey = function ( e ) { var t = "string" == typeof e ? e : as [ e . keyCode ] ; return "Ctrl" == t || "Alt" == t || "Shift" == t || "Mod" == t } , ma = e . keyName = function ( e , t ) { if ( So && 34 == e . keyCode && e [ "char" ] ) return ! 1 ; var r = as [ e . keyCode ] , n = r ; return null == n || e . altGraphKey ? ! 1 : ( e . altKey && "Alt" != r && ( n = "Alt-" + n ) , ( qo ? e . metaKey : e . ctrlKey ) && "Ctrl" != r && ( n = "Ctrl-" + n ) , ( qo ? e . ctrlKey : e . metaKey ) && "Cmd" != r && ( n = "Cmd-" + n ) , ! t && e . shiftKey && "Shift" != r && ( n = "Shift-" + n ) , n ) } ; e . fromTextArea = function ( t , r ) { function n ( ) { t . value = c . getValue ( ) } if ( r = r ? ji ( r ) : { } , r . value = t . value , ! r . tabindex && t . tabIndex && ( r . tabindex = t . tabIndex ) , ! r . placeholder && t . placeholder && ( r . placeholder = t . placeholder ) , null == r . autofocus ) { var i = Ki ( ) ; r . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Oa ( t . form , "submit" , n ) , ! r . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var s = o . submit = function ( ) { n ( ) , o . submit = a , o . submit ( ) , o . submit = s } } catch ( l ) { } } r . finishInit = function ( e ) { e . save = n , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , n ( ) , t . parentNode . removeChild ( e . getWrapper
e . defineMode ( t , function ( t ) { return e . simpleMode ( t , r ) } ) } , e . simpleMode = function ( r , n ) { t ( n , "start" ) ; var a = { } , s = n . meta || { } , l = ! 1 ; for ( var u in n ) if ( u != s && n . hasOwnProperty ( u ) ) for ( var d = a [ u ] = [ ] , f = n [ u ] , p = 0 ; p < f . length ; p ++ ) { var h = f [ p ] ; d . push ( new i ( h , n ) ) , ( h . indent || h . dedent ) && ( l = ! 0 ) } var m = { startState : function ( ) { return { state : "start" , pending : null , local : null , localState : null , indent : l ? [ ] : null } } , copyState : function ( t ) { var r = { state : t . state , pending : t . pending , local : t . local , localState : null , indent : t . indent && t . indent . slice ( 0 ) } ; t . localState && ( r . localState = e . copyState ( t . local . mode , t . localState ) ) , t . stack && ( r . stack = t . stack . slice ( 0 ) ) ; for ( var n = t . persistentStates ; n ; n = n . next ) r . persistentStates = { mode : n . mode , spec : n . spec , state : n . state == t . localState ? r . localState : e . copyState ( n . mode , n . state ) , next : r . persistentStates } ; return r } , token : o ( a , r ) , innerMode : function ( e ) { return e . local && { mode : e . local . mode , state : e . localState } } , indent : c ( a , s ) } ; if ( s ) for ( var g in s ) s . hasOwnProperty ( g ) && ( m [ g ] = s [ g ] ) ; return m } } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . multiplexingMode = function ( t ) { function r ( e , t , r , n ) { if ( "string" == typeof t ) { var i = e . indexOf ( t , r ) ; return n && i > - 1 ? i + t . length : i } var o = t . exec ( r ? e . slice ( r ) : e ) ; return o ? o . index + r + ( n ? o [ 0 ] . length : 0 ) : - 1 } var n = Array . prototype . slice . call ( arguments , 1 ) ; return { startState : function ( ) { return { outer : e . startState ( t ) , innerActive : null , inner : null } } , copyState : function ( r ) { return { outer : e . copyState ( t , r . outer ) , innerActive : r . innerActive , inner : r . innerActive && e . copyState ( r . innerActive . mode , r . inner ) } } , token : function ( i , o ) { if ( o . innerActive ) { var a = o . innerActive , s = i . string ; if ( ! a . close && i . sol ( ) ) return o . innerActive = o . inner = null , this . token ( i , o ) ; var l = a . close ? r ( s , a . close , i . pos , a . parseDelimiters ) : - 1 ; if ( l == i . pos && ! a . parseDelimiters ) return i . match ( a . close ) , o . innerActive = o . inner = null , a . delimStyle && a . delimStyle + " " + a . delimStyle + "-close" ; l > - 1 && ( i . string = s . slice ( 0 , l ) ) ; var c = a . mode . token ( i , o . inner ) ; return l > - 1 && ( i . string = s ) , l == i . pos && a . parseDelimiters && ( o . innerActive = o . inner = null ) , a . innerStyle && ( c = c ? c + " " + a . innerStyle : a . innerStyle ) , c } for ( var u = 1 / 0 , s = i . string , d = 0 ; d < n . length ; ++ d ) { var f = n [ d ] , l = r ( s , f . open , i . pos ) ; if ( l == i . pos ) return f . parseDelimiters || i . match ( f . open ) , o . innerActive = f , o . inner = e . startState ( f . mode , t . indent ? t . indent ( o . outer , "" ) : 0 ) , f . delimStyle && f . delimStyle + " " + f . delimStyle + "-open" ; - 1 != l && u > l && ( u = l ) } u != 1 / 0 && ( i . string = s . slice ( 0 , u ) ) ; var p = t . token ( i , o . outer ) ; return u != 1 / 0 && ( i . string = s ) , p } , indent : function ( r , n ) { var i = r . innerActive ? r . innerActive . mode : t ; return i . indent ? i . indent ( r . innerActive ? r . inner : r . outer , n ) : e . Pass } , blankLine : function ( r ) { var i = r . innerActive ? r . innerActive . mode : t ; if ( i . blankLine && i . blankLine ( r . innerActive ? r . inner : r . outer ) , r . innerActive ) "\n" === r . innerActive . close && ( r . innerActive = r . inner = null ) ; else for ( var o = 0 ; o < n . length ; ++ o ) { var a = n [ o ] ; "\n" === a . open && ( r . innerActive = a , r . inner = e . startState ( a . mode , i . indent ? i . indent ( r . outer , "" ) : 0 ) ) } } , electricChars : t . electricChars , innerMode : function ( e ) { return e . inner ? { state : e . inner , mode : e . innerActive . mode } : { state : e . outer , mode : t } } } } } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { for ( var t = 0 ; t < e . state . activeLines . length ; t ++ ) e . removeLineClass ( e . state . activeLines [ t ] , "wrap" , o ) , e . removeLineClass ( e . state . activeLines [ t ] , "background" , a ) , e . removeLineClass ( e . state . activeLines [ t ] , "gutter" , s ) } function r ( e , t ) { if ( e . length != t . length ) return ! 1 ; for ( var r = 0 ; r < e . length ; r ++ ) if ( e [ r ] != t [ r ] ) return ! 1 ; return ! 0 } function n ( e , n ) { for ( var i = [ ] , l = 0 ; l < n . length ; l ++ ) { var c = n [ l ] ; if ( c . empty ( ) ) { var u = e . getLineHandleVisualStart ( c . head . line ) ; i [ i . length - 1 ] != u && i . push ( u ) } } r ( e . state . activeLines , i ) || e . operation ( function ( ) { t ( e ) ; for ( var r = 0 ; r < i . length ; r ++ ) e . addLineClass ( i [ r ] , "wrap" , o ) , e . addLineClass ( i [ r ] , "background" , a ) , e . addLineClass ( i [ r ] , "gutter" , s ) ; e . state . activeLines = i } ) } function i ( e , t ) { n ( e , t . ranges ) } var o = "CodeMirror-activeline" , a = " Cod
pos : a ( f , h ) , ch : g } ; c . pop ( ) } } } } } return f - r == ( r > 0 ? e . lastLine ( ) : e . firstLine ( ) ) ? ! 1 : null } function n ( e , r , n ) { for ( var i = e . state . matchBrackets . maxHighlightLineLength || 1e3 , s = [ ] , l = e . listSelections ( ) , c = 0 ; c < l . length ; c ++ ) { var u = l [ c ] . empty ( ) && t ( e , l [ c ] . head , ! 1 , n ) ; if ( u && e . getLine ( u . from . line ) . length <= i ) { var d = u . match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket" ; s . push ( e . markText ( u . from , a ( u . from . line , u . from . ch + 1 ) , { className : d } ) ) , u . to && e . getLine ( u . to . line ) . length <= i && s . push ( e . markText ( u . to , a ( u . to . line , u . to . ch + 1 ) , { className : d } ) ) } } if ( s . length ) { o && e . state . focused && e . focus ( ) ; var f = function ( ) { e . operation ( function ( ) { for ( var e = 0 ; e < s . length ; e ++ ) s [ e ] . clear ( ) } ) } ; if ( ! r ) return f ; setTimeout ( f , 800 ) } } function i ( e ) { e . operation ( function ( ) { l && ( l ( ) , l = null ) , l = n ( e , ! 1 , e . state . matchBrackets ) } ) } var o = /MSIE \d/ . test ( navigator . userAgent ) && ( null == document . documentMode || document . documentMode < 8 ) , a = e . Pos , s = { "(" : ")>" , ")" : "(<" , "[" : "]>" , "]" : "[<" , "{" : "}>" , "}" : "{<" } , l = null ; e . defineOption ( "matchBrackets" , ! 1 , function ( t , r , n ) { n && n != e . Init && t . off ( "cursorActivity" , i ) , r && ( t . state . matchBrackets = "object" == typeof r ? r : { } , t . on ( "cursorActivity" , i ) ) } ) , e . defineExtension ( "matchBrackets" , function ( ) { n ( this , ! 0 ) } ) , e . defineExtension ( "findMatchingBracket" , function ( e , r , n ) { return t ( this , e , r , n ) } ) , e . defineExtension ( "scanForBracket" , function ( e , t , n , i ) { return r ( this , e , t , n , i ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { function t ( e , t ) { return "pairs" == t && "string" == typeof e ? e : "object" == typeof e && null != e [ t ] ? e [ t ] : d [ t ] } function r ( e ) { return function ( t ) { return s ( t , e ) } } function n ( e ) { var t = e . state . closeBrackets ; if ( ! t ) return null ; var r = e . getModeAt ( e . getCursor ( ) ) ; return r . closeBrackets || t } function i ( r ) { var i = n ( r ) ; if ( ! i || r . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = t ( i , "pairs" ) , a = r . listSelections ( ) , s = 0 ; s < a . length ; s ++ ) { if ( ! a [ s ] . empty ( ) ) return e . Pass ; var l = c ( r , a [ s ] . head ) ; if ( ! l || o . indexOf ( l ) % 2 != 0 ) return e . Pass } for ( var s = a . length - 1 ; s >= 0 ; s -- ) { var u = a [ s ] . head ; r . replaceRange ( "" , f ( u . line , u . ch - 1 ) , f ( u . line , u . ch + 1 ) , "+delete" ) } } function o ( r ) { var i = n ( r ) , o = i && t ( i , "explode" ) ; if ( ! o || r . getOption ( "disableInput" ) ) return e . Pass ; for ( var a = r . listSelections ( ) , s = 0 ; s < a . length ; s ++ ) { if ( ! a [ s ] . empty ( ) ) return e . Pass ; var l = c ( r , a [ s ] . head ) ; if ( ! l || o . indexOf ( l ) % 2 != 0 ) return e . Pass } r . operation ( function ( ) { r . replaceSelection ( "\n\n" , null ) , r . execCommand ( "goCharLeft" ) , a = r . listSelections ( ) ; for ( var e = 0 ; e < a . length ; e ++ ) { var t = a [ e ] . head . line ; r . indentLine ( t , null , ! 0 ) , r . indentLine ( t + 1 , null , ! 0 ) } } ) } function a ( t ) { var r = e . cmpPos ( t . anchor , t . head ) > 0 ; return { anchor : new f ( t . anchor . line , t . anchor . ch + ( r ? - 1 : 1 ) ) , head : new f ( t . head . line , t . head . ch + ( r ? 1 : - 1 ) ) } } function s ( r , i ) { var o = n ( r ) ; if ( ! o || r . getOption ( "disableInput" ) ) return e . Pass ; var s = t ( o , "pairs" ) , c = s . indexOf ( i ) ; if ( - 1 == c ) return e . Pass ; for ( var d , p , h = t ( o , "triples" ) , m = s . charAt ( c + 1 ) == i , g = r . listSelections ( ) , v = c % 2 == 0 , y = 0 ; y < g . length ; y ++ ) { var b , k = g [ y ] , x = k . head , p = r . getRange ( x , f ( x . line , x . ch + 1 ) ) ; if ( v && ! k . empty ( ) ) b = "surround" ; else if ( ! m && v || p != i ) if ( m && x . ch > 1 && h . indexOf ( i ) >= 0 && r . getRange ( f ( x . line , x . ch - 2 ) , x ) == i + i && ( x . ch <= 2 || r . getRange ( f ( x . line , x . ch - 3 ) , f ( x . line , x . ch - 2 ) ) != i ) ) b = "addFour" ; else if ( m ) { if ( e . isWordChar ( p ) || ! u ( r , x , i ) ) return e . Pass ; b = "both" } else { if ( ! v || r . getLine ( x . line ) . length != x . ch && ! l ( p , s ) && ! /\s/ . test ( p ) ) return e . Pass ; b = "both" } else b = h . indexOf ( i ) >= 0 && r . getRange ( x , f ( x . line , x . ch + 3 ) ) == i + i + i ? "skipThree" : "skip" ; if ( d ) { if ( d != b ) return e . Pass } else d = b } var w = c % 2 ? s . charAt ( c - 1 ) : i , _ = c % 2 ? i : s . charAt ( c + 1 ) ; r . operation ( function ( ) { if ( "skip" == d ) r . execCommand ( "goCharRight" ) ; else if ( "skipThree" == d ) for ( var e = 0 ; 3 > e ; e ++ ) r . execCommand ( "goCharRight" ) ; else if ( "surround" == d ) { for ( var t = r . getSelections ( ) , e = 0 ; e < t . length ; e ++ ) t [ e ] = w + t [ e ] + _ ; r . replaceSelections ( t , "around" ) , t = r . listSelections ( ) . slice ( ) ; for ( var e = 0 ; e < t . length ; e ++ ) t [ e ] = a ( t [ e ] ) ; r . setSelections ( t ) } else "both" == d ? ( r . replaceSelection ( w + _ , null ) , r . triggerElectric ( w + _ ) , r . execCommand ( "goCharLeft" ) ) : "addFour" == d && ( r . replaceSelection ( w + w + w + w , "before" ) , r . execCommand ( "goCharRight" ) ) } ) } function l ( e , t ) { var r = t . lastIndexOf ( e ) ; return r > - 1 && r % 2 ==
for ( var r ; ; ) { if ( ! e . context ) return ; if ( r = e . context . tagName , ! _ . contextGrabbers . hasOwnProperty ( r ) || ! _ . contextGrabbers [ r ] . hasOwnProperty ( t ) ) return ; d ( e ) } } function p ( e , t , r ) { return "openTag" == e ? ( r . tagStart = t . column ( ) , h ) : "closeTag" == e ? m : p } function h ( e , t , r ) { return "word" == e ? ( r . tagName = t . current ( ) , L = "tag" , y ) : ( L = "error" , h ) } function m ( e , t , r ) { if ( "word" == e ) { var n = t . current ( ) ; return r . context && r . context . tagName != n && _ . implicitlyClosed . hasOwnProperty ( r . context . tagName ) && d ( r ) , r . context && r . context . tagName == n || _ . matchClosing === ! 1 ? ( L = "tag" , g ) : ( L = "tag error" , v ) } return L = "error" , v } function g ( e , t , r ) { return "endTag" != e ? ( L = "error" , g ) : ( d ( r ) , p ) } function v ( e , t , r ) { return L = "error" , g ( e , t , r ) } function y ( e , t , r ) { if ( "word" == e ) return L = "attribute" , b ; if ( "endTag" == e || "selfcloseTag" == e ) { var n = r . tagName , i = r . tagStart ; return r . tagName = r . tagStart = null , "selfcloseTag" == e || _ . autoSelfClosers . hasOwnProperty ( n ) ? f ( r , n ) : ( f ( r , n ) , r . context = new u ( r , n , i == r . indented ) ) , p } return L = "error" , y } function b ( e , t , r ) { return "equals" == e ? k : ( _ . allowMissing || ( L = "error" ) , y ( e , t , r ) ) } function k ( e , t , r ) { return "string" == e ? x : "word" == e && _ . allowUnquoted ? ( L = "string" , y ) : ( L = "error" , y ( e , t , r ) ) } function x ( e , t , r ) { return "string" == e ? x : y ( e , t , r ) } var w = n . indentUnit , _ = { } , C = i . htmlMode ? t : r ; for ( var S in C ) _ [ S ] = C [ S ] ; for ( var S in i ) _ [ S ] = i [ S ] ; var M , L ; return o . isInText = ! 0 , { startState : function ( e ) { var t = { tokenize : o , state : p , indented : e || 0 , tagName : null , tagStart : null , context : null } ; return null != e && ( t . baseIndent = e ) , t } , token : function ( e , t ) { if ( ! t . tagName && e . sol ( ) && ( t . indented = e . indentation ( ) ) , e . eatSpace ( ) ) return null ; M = null ; var r = t . tokenize ( e , t ) ; return ( r || M ) && "comment" != r && ( L = null , t . state = t . state ( M || r , e , t ) , L && ( r = "error" == L ? r + " error" : L ) ) , r } , indent : function ( t , r , n ) { var i = t . context ; if ( t . tokenize . isInAttribute ) return t . tagStart == t . indented ? t . stringStartCol + 1 : t . indented + w ; if ( i && i . noIndent ) return e . Pass ; if ( t . tokenize != a && t . tokenize != o ) return n ? n . match ( /^(\s*)/ ) [ 0 ] . length : 0 ; if ( t . tagName ) return _ . multilineTagIndentPastTag !== ! 1 ? t . tagStart + t . tagName . length + 2 : t . tagStart + w * ( _ . multilineTagIndentFactor || 1 ) ; if ( _ . alignCDATA && /<!\[CDATA\[/ . test ( r ) ) return 0 ; var s = r && /^<(\/)?([\w_:\.-]*)/ . exec ( r ) ; if ( s && s [ 1 ] ) for ( ; i ; ) { if ( i . tagName == s [ 2 ] ) { i = i . prev ; break } if ( ! _ . implicitlyClosed . hasOwnProperty ( i . tagName ) ) break ; i = i . prev } else if ( s ) for ( ; i ; ) { var l = _ . contextGrabbers [ i . tagName ] ; if ( ! l || ! l . hasOwnProperty ( s [ 2 ] ) ) break ; i = i . prev } for ( ; i && i . prev && ! i . startOfLine ; ) i = i . prev ; return i ? i . indent + w : t . baseIndent || 0 } , electricInput : /<\/[\s\w:]+>$/ , blockCommentStart : "<!--" , blockCommentEnd : "-->" , configuration : _ . htmlMode ? "html" : "xml" , helperType : _ . htmlMode ? "html" : "xml" , skipAttribute : function ( e ) { e . state == k && ( e . state = y ) } } } ) , e . defineMIME ( "text/xml" , "xml" ) , e . defineMIME ( "application/xml" , "xml" ) , e . mimeModes . hasOwnProperty ( "text/html" ) || e . defineMIME ( "text/html" , { name : "xml" , htmlMode : ! 0 } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "../xml/xml" ) , require ( "../meta" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../xml/xml" , "../meta" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "markdown" , function ( t , r ) { function n ( r ) { if ( e . findModeByName ) { var n = e . findModeByName ( r ) ; n && ( r = n . mime || n . mimes [ 0 ] ) } var i = e . getMode ( t , r ) ; return "null" == i . name ? null : i } function i ( e , t , r ) { return t . f = t . inline = r , r ( e , t ) } function o ( e , t , r ) { return t . f = t . block = r , r ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function s ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , _ && e . f == c && ( e . f = h , e . block = l ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function l ( e , t ) { var o = e . sol ( ) , s = t . list !== ! 1 , l = t . indentedCode ; t . indentedCode = ! 1 , s && ( t . indentationDiff >= 0 ? ( t . indentationDiff < 4 && ( t . indentation -= t . indentationDiff ) , t . list = null ) : t . list = t . indentation > 0 ? null : ! 1 ) ; var c = null ; if ( t . indentationDiff >= 4 ) return e . skipToEnd ( ) , l || a ( t . prevLine ) ? ( t . indentation -= 4 , t . indentedCode = ! 0 , C . code ) : null ; if ( e . eatSpace ( ) ) return null ; if ( ( c = e . match ( E ) ) && c [ 1 ] . length <= 6 ) return t . header = c [ 1 ] . length , r . highlightFormatting && ( t . formatting = "header" ) , t . f = t . inline , f ( t ) ; if ( ! ( a ( t . prevLine ) || t . quote || s || l ) && ( c = e . mat
2015-05-04 07:53:29 +00:00
2016-04-20 10:11:40 +00:00
return E . top = function ( e , t , r ) { if ( "{" == e ) return l ( r , t , "block" ) ; if ( "}" == e && r . context . prev ) return c ( r ) ; if ( A && /@component/ . test ( e ) ) return l ( r , t , "atComponentBlock" ) ; if ( /^@(-moz-)?document$/ . test ( e ) ) return l ( r , t , "documentTypes" ) ; if ( /^@(media|supports|(-moz-)?document|import)$/ . test ( e ) ) return l ( r , t , "atBlock" ) ; if ( /^@(font-face|counter-style)/ . test ( e ) ) return r . stateArg = e , "restricted_atBlock_before" ; if ( /^@(-(moz|ms|o|webkit)-)?keyframes$/ . test ( e ) ) return "keyframes" ; if ( e && "@" == e . charAt ( 0 ) ) return l ( r , t , "at" ) ; if ( "hash" == e ) m = "builtin" ; else if ( "word" == e ) m = "tag" ; else { if ( "variable-definition" == e ) return "maybeprop" ; if ( "interpolation" == e ) return l ( r , t , "interpolation" ) ; if ( ":" == e ) return "pseudo" ; if ( T && "(" == e ) return l ( r , t , "parens" ) } return r . context . type } , E . block = function ( e , t , r ) { if ( "word" == e ) { var n = t . current ( ) . toLowerCase ( ) ; return w . hasOwnProperty ( n ) ? ( m = "property" , "maybeprop" ) : _ . hasOwnProperty ( n ) ? ( m = "string-2" , "maybeprop" ) : T ? ( m = t . match ( /^\s*:(?:\s|$)/ , ! 1 ) ? "property" : "tag" , "block" ) : ( m += " error" , "maybeprop" ) } return "meta" == e ? "block" : T || "hash" != e && "qualifier" != e ? E . top ( e , t , r ) : ( m = "error" , "block" ) } , E . maybeprop = function ( e , t , r ) { return ":" == e ? l ( r , t , "prop" ) : u ( e , t , r ) } , E . prop = function ( e , t , r ) { if ( ";" == e ) return c ( r ) ; if ( "{" == e && T ) return l ( r , t , "propBlock" ) ; if ( "}" == e || "{" == e ) return d ( e , t , r ) ; if ( "(" == e ) return l ( r , t , "parens" ) ; if ( "hash" != e || /^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/ . test ( t . current ( ) ) ) { if ( "word" == e ) f ( t ) ; else if ( "interpolation" == e ) return l ( r , t , "interpolation" ) } else m += " error" ; return "prop" } , E . propBlock = function ( e , t , r ) { return "}" == e ? c ( r ) : "word" == e ? ( m = "property" , "maybeprop" ) : r . context . type } , E . parens = function ( e , t , r ) { return "{" == e || "}" == e ? d ( e , t , r ) : ")" == e ? c ( r ) : "(" == e ? l ( r , t , "parens" ) : "interpolation" == e ? l ( r , t , "interpolation" ) : ( "word" == e && f ( t ) , "parens" ) } , E . pseudo = function ( e , t , r ) { return "word" == e ? ( m = "variable-3" , r . context . type ) : u ( e , t , r ) } , E . documentTypes = function ( e , t , r ) { return "word" == e && y . hasOwnProperty ( t . current ( ) ) ? ( m = "tag" , r . context . type ) : E . atBlock ( e , t , r ) } , E . atBlock = function ( e , t , r ) { if ( "(" == e ) return l ( r , t , "atBlock_parens" ) ; if ( "}" == e || ";" == e ) return d ( e , t , r ) ; if ( "{" == e ) return c ( r ) && l ( r , t , T ? "block" : "top" ) ; if ( "interpolation" == e ) return l ( r , t , "interpolation" ) ; if ( "word" == e ) { var n = t . current ( ) . toLowerCase ( ) ; m = "only" == n || "not" == n || "and" == n || "or" == n ? "keyword" : b . hasOwnProperty ( n ) ? "attribute" : k . hasOwnProperty ( n ) ? "property" : x . hasOwnProperty ( n ) ? "keyword" : w . hasOwnProperty ( n ) ? "property" : _ . hasOwnProperty ( n ) ? "string-2" : L . hasOwnProperty ( n ) ? "atom" : M . hasOwnProperty ( n ) ? "keyword" : "error" } return r . context . type } , E . atComponentBlock = function ( e , t , r ) { return "}" == e ? d ( e , t , r ) : "{" == e ? c ( r ) && l ( r , t , T ? "block" : "top" , ! 1 ) : ( "word" == e && ( m = "error" ) , r . context . type ) } , E . atBlock _parens = function ( e , t , r ) { return ")" == e ? c ( r ) : "{" == e || "}" == e ? d ( e , t , r , 2 ) : E . atBlock ( e , t , r ) } , E . restricted _atBlock _before = function ( e , t , r ) { return "{" == e ? l ( r , t , "restricted_atBlock" ) : "word" == e && "@counter-style" == r . stateArg ? ( m = "variable" , "restricted_atBlock_before" ) : u ( e , t , r ) } , E . restricted _atBlock = function ( e , t , r ) { return "}" == e ? ( r . stateArg = null , c ( r ) ) : "word" == e ? ( m = "@font-face" == r . stateArg && ! C . hasOwnProperty ( t . current ( ) . toLowerCase ( ) ) || "@counter-style" == r . stateArg && ! S . hasOwnProperty ( t . current ( ) . toLowerCase ( ) ) ? "error" : "property" , "maybeprop" ) : "restricted_atBlock" } , E . keyframes = function ( e , t , r ) { return "word" == e ? ( m = "variable" , "keyframes" ) : "{" == e ? l ( r , t , "top" ) : u ( e , t , r ) } , E . at = function ( e , t , r ) { return ";" == e ? c ( r ) : "{" == e || "}" == e ? d ( e , t , r ) : ( "word" == e ? m = "tag" : "hash" == e && ( m = "builtin" ) , "at" ) } , E . interpolation = function ( e , t , r ) { return "}" == e ? c ( r ) : "{" == e || ";" == e ? d ( e , t , r ) : ( "word" == e ? m = "variable" : "variable" != e && "(" != e && ")" != e && ( m = "error" ) , "interpolation" ) } , { startState : function ( e ) { return { tokenize : null , state : p ? "block" : "top" , stateArg : null , context : new s ( p ? "block" : "top" , e || 0 , null ) } } , token : function ( e , t ) { if ( ! t . tokenize && e . eatSpace ( ) ) return null ; var r = ( t . tokenize || i ) ( e , t ) ; return r && "object" == typeof r && ( h = r [ 1 ] , r = r [ 0 ] ) , m = r , t . state = E [ t . state ] ( h , e , t ) , m } , indent : function ( e , t ) { var r = e . context , n = t && t . charAt ( 0 ) , i = r . indent ; return "prop" != r . type || "}" != n && ")" != n || ( r = r . prev ) , r . prev && ( "}" != n || "block" != r . type && "top" != r . type && "interpolation" != r . type && "restricted_atBlock" != r . type ? ( ")" == n && ( "parens" == r . t
blockKeywords : s ( "case do else for if switch while struct" ) , defKeywords : s ( "struct" ) , typeFirstDefinitions : ! 0 , atoms : s ( "null true false" ) , hooks : { "#" : c , "*" : u } , modeProps : { fold : [ "brace" , "include" ] } } ) , g ( [ "text/x-c++src" , "text/x-c++hdr" ] , { name : "clike" , keywords : s ( k + " asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override" ) , types : s ( x + " bool wchar_t" ) , blockKeywords : s ( "catch class do else finally for if struct switch try while" ) , defKeywords : s ( "class namespace struct enum union" ) , typeFirstDefinitions : ! 0 , atoms : s ( "true false null" ) , hooks : { "#" : c , "*" : u , u : f , U : f , L : f , R : f , 0 : d , 1 : d , 2 : d , 3 : d , 4 : d , 5 : d , 6 : d , 7 : d , 8 : d , 9 : d , token : function ( e , t , r ) { return "variable" != r || "(" != e . peek ( ) || ";" != t . prevToken && null != t . prevToken && "}" != t . prevToken || ! p ( e . current ( ) ) ? void 0 : "def" } } , namespaceSeparator : "::" , modeProps : { fold : [ "brace" , "include" ] } } ) , g ( "text/x-java" , { name : "clike" , keywords : s ( "abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while" ) , types : s ( "byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void" ) , blockKeywords : s ( "catch class do else finally for if switch try while" ) , defKeywords : s ( "class interface package enum" ) , typeFirstDefinitions : ! 0 , atoms : s ( "true false null" ) , endStatement : /^[;:]$/ , hooks : { "@" : function ( e ) { return e . eatWhile ( /[\w\$_]/ ) , "meta" } } , modeProps : { fold : [ "brace" , "import" ] } } ) , g ( "text/x-csharp" , { name : "clike" , keywords : s ( "abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield" ) , types : s ( "Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong" ) , blockKeywords : s ( "catch class do else finally for foreach if struct switch try while" ) , defKeywords : s ( "class interface namespace struct var" ) , typeFirstDefinitions : ! 0 , atoms : s ( "true false null" ) , hooks : { "@" : function ( e , t ) { return e . eat ( '"' ) ? ( t . tokenize = h , h ( e , t ) ) : ( e . eatWhile ( /[\w\$_]/ ) , "meta" ) } } } ) , g ( "text/x-scala" , { name : "clike" , keywords : s ( "abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ : = => <- <: <% >: # @ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble :: #:: " ) , types : s ( " AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System
n ( e , t ) ; if ( "+" === s || "=" === s ) return "operator" ; if ( "-" === s ) return e . eat ( "-" ) , e . eatWhile ( /\w/ ) , "attribute" ; if ( /\d/ . test ( s ) && ( e . eatWhile ( /\d/ ) , e . eol ( ) || ! /\w/ . test ( e . peek ( ) ) ) ) return "number" ; e . eatWhile ( /[\w-]/ ) ; var l = e . current ( ) ; return "=" === e . peek ( ) && /\w+/ . test ( l ) ? "def" : i . hasOwnProperty ( l ) ? i [ l ] : null } function r ( e ) { return function ( t , r ) { for ( var n , i = ! 1 , a = ! 1 ; null != ( n = t . next ( ) ) ; ) { if ( n === e && ! a ) { i = ! 0 ; break } if ( "$" === n && ! a && "'" !== e ) { a = ! 0 , t . backUp ( 1 ) , r . tokens . unshift ( o ) ; break } a = ! a && "\\" === n } return ( i || ! a ) && r . tokens . shift ( ) , "`" === e || ")" === e ? "quote" : "string" } } function n ( e , r ) { return ( r . tokens [ 0 ] || t ) ( e , r ) } var i = { } ; e ( "atom" , "true false" ) , e ( "keyword" , "if then do else elif while until for in esac fi fin fil done exit set unset export function" ) , e ( "builtin" , "ab awk bash beep cat cc cd chown chmod chroot clear cp curl cut diff echo find gawk gcc get git grep kill killall ln ls make mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh shopt shred source sort sleep ssh start stop su sudo tee telnet top touch vi vim wall wc wget who write yes zsh" ) ; var o = function ( e , t ) { t . tokens . length > 1 && e . eat ( "$" ) ; var i = e . next ( ) , o = /\w/ ; return "{" === i && ( o = /[^}]/ ) , "(" === i ? ( t . tokens [ 0 ] = r ( ")" ) , n ( e , t ) ) : ( /\d/ . test ( i ) || ( e . eatWhile ( o ) , e . eat ( "}" ) ) , t . tokens . shift ( ) , "def" ) } ; return { startState : function ( ) { return { tokens : [ ] } } , token : function ( e , t ) { return n ( e , t ) } , lineComment : "#" , fold : "brace" } } ) , e . defineMIME ( "text/x-sh" , "shell" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "../htmlmixed/htmlmixed" ) , require ( "../clike/clike" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../htmlmixed/htmlmixed" , "../clike/clike" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { for ( var t = { } , r = e . split ( " " ) , n = 0 ; n < r . length ; ++ n ) t [ r [ n ] ] = ! 0 ; return t } function r ( e , t , i ) { return 0 == e . length ? n ( t ) : function ( o , a ) { for ( var s = e [ 0 ] , l = 0 ; l < s . length ; l ++ ) if ( o . match ( s [ l ] [ 0 ] ) ) return a . tokenize = r ( e . slice ( 1 ) , t ) , s [ l ] [ 1 ] ; return a . tokenize = n ( t , i ) , "string" } } function n ( e , t ) { return function ( r , n ) { return i ( r , n , e , t ) } } function i ( e , t , n , i ) { if ( i !== ! 1 && e . match ( "${" , ! 1 ) || e . match ( "{$" , ! 1 ) ) return t . tokenize = null , "string" ; if ( i !== ! 1 && e . match ( /^\$[a-zA-Z_][a-zA-Z0-9_]*/ ) ) return e . match ( "[" , ! 1 ) && ( t . tokenize = r ( [ [ [ "[" , null ] ] , [ [ /\d[\w\.]*/ , "number" ] , [ /\$[a-zA-Z_][a-zA-Z0-9_]*/ , "variable-2" ] , [ /[\w\$]+/ , "variable" ] ] , [ [ "]" , null ] ] ] , n , i ) ) , e . match ( /\-\>\w/ , ! 1 ) && ( t . tokenize = r ( [ [ [ "->" , null ] ] , [ [ /[\w]+/ , "variable" ] ] ] , n , i ) ) , "variable-2" ; for ( var o = ! 1 ; ! e . eol ( ) && ( o || i === ! 1 || ! e . match ( "{$" , ! 1 ) && ! e . match ( /^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/ , ! 1 ) ) ; ) { if ( ! o && e . match ( n ) ) { t . tokenize = null , t . tokStack . pop ( ) , t . tokStack . pop ( ) ; break } o = "\\" == e . next ( ) && ! o } return "string" } var o = "abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally" , a = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__" , s = " func _num _args func _get _arg func _get _args strlen strcmp strncmp strcasecmp strncasecmp each error _reporting define defined trigger _error user _error set _error _handler restore _error _handler get _declared _classes get _loaded _extensions extension _loaded get _extension _funcs debug _backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html _entity _decode md5 md5 _file crc32 getimagesize image _type _to _mime _type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr _count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str _shuffle str _word _count strcoll substr substr _replace quotemeta uc
operatorChars : /^[*+\-%<>!=~]/ , dateSQL : i ( "date time timestamp" ) , support : i ( "doubleQuote nCharCast zerolessFloat binaryNumber hexNumber" ) } ) , e . defineMIME ( "text/x-hive" , { name : "sql" , keywords : i ( "select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with" ) , builtin : i ( "bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype" ) , atoms : i ( "false true null unknown" ) , operatorChars : /^[*+\-%<>!=]/ , dateSQL : i ( "date timestamp" ) , support : i ( "ODBCdotTable doubleQuote binaryNumber hexNumber" ) } ) , e . defineMIME ( "text/x-pgsql" , { name : "sql" , client : i ( "source" ) , keywords : i ( o + " a abort abs absent absolute access according action ada add admin after aggregate all allocate also always analyse analyze any are array array _agg array _max _cardinality asensitive assertion assignment asymmetric at atomic attribute attributes authorization avg backward base64 before begin begin _frame begin _partition bernoulli binary bit _length blob blocked bom both breadth c cache call called cardinality cascade cascaded case cast catalog catalog _name ceil ceiling chain characteristics characters character _length character _set _catalog character _set _name character _set _schema char _length check checkpoint class class _origin clob close cluster coalesce cobol collate collation collation _catalog collation _name collation _schema collect column columns column _name command _function command _function _code comment comments commit committed concurrently condition condition _number configuration conflict connect connection connection _name constraint constraints constraint _catalog constraint _name constraint _schema constructor contains content continue control conversion convert copy corr corresponding cost covar _pop covar _samp cross csv cube cume _dist current current _catalog current _date current _default _transform _group current _path current _role current _row current _schema current _time current _timestamp current _transform _group _for _type current _user cursor cursor _name cycle data database datalink datetime _interval _code datetime _interval _precision day db deallocate dec declare default defaults deferrable deferred defined definer degree delimiter delimiters dense _rank depth deref derived describe descriptor deterministic diagnostics dictionary disable discard disconnect dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain dynamic dynamic _function dynamic _function _code each element else empty enable encoding encrypted end end - exec end _frame end _partition enforced enum equals escape event every except exception exclude excluding exclusive exec execute exists exp explain express
2016-03-04 15:31:51 +00:00
2016-04-20 10:11:40 +00:00
return { startState : function ( e ) { return { tokenize : n , baseIndent : e || 0 , stack : [ ] } } , token : function ( e , t ) { if ( e . eatSpace ( ) ) return null ; s = null ; var r = t . tokenize ( e , t ) , n = t . stack [ t . stack . length - 1 ] ; return "hash" == s && "rule" == n ? r = "atom" : "variable" == r && ( "rule" == n ? r = "number" : n && "@media{" != n || ( r = "tag" ) ) , "rule" == n && /^[\{\};]$/ . test ( s ) && t . stack . pop ( ) , "{" == s ? "@media" == n ? t . stack [ t . stack . length - 1 ] = "@media{" : t . stack . push ( "{" ) : "}" == s ? t . stack . pop ( ) : "@media" == s ? t . stack . push ( "@media" ) : "{" == n && "comment" != s && t . stack . push ( "rule" ) , r } , indent : function ( e , t ) { var r = e . stack . length ; return /^\}/ . test ( t ) && ( r -= "rule" == e . stack [ e . stack . length - 1 ] ? 2 : 1 ) , e . baseIndent + r * d } , electricChars : "}" } } ) , e . defineMIME ( "text/x-nginx-conf" , "nginx" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t ) { return e . string . charAt ( e . pos + ( t || 0 ) ) } function r ( e , t ) { if ( t ) { var r = e . pos - t ; return e . string . substr ( r >= 0 ? r : 0 , t ) } return e . string . substr ( 0 , e . pos - 1 ) } function n ( e , t ) { var r = e . string . length , n = r - e . pos + 1 ; return e . string . substr ( e . pos , t && r > t ? t : n ) } function i ( e , t ) { var r , n = e . pos + t ; e . pos = 0 >= n ? 0 : n >= ( r = e . string . length - 1 ) ? r : n } e . defineMode ( "perl" , function ( ) { function e ( e , t , r , n , i ) { return t . chain = null , t . style = null , t . tail = null , t . tokenize = function ( e , t ) { for ( var o , s = ! 1 , l = 0 ; o = e . next ( ) ; ) { if ( o === r [ l ] && ! s ) return void 0 !== r [ ++ l ] ? ( t . chain = r [ l ] , t . style = n , t . tail = i ) : i && e . eatWhile ( i ) , t . tokenize = a , n ; s = ! s && "\\" == o } return n } , t . tokenize ( e , t ) } function o ( e , t , r ) { return t . tokenize = function ( e , t ) { return e . string == r && ( t . tokenize = a ) , e . skipToEnd ( ) , "string" } , t . tokenize ( e , t ) } function a ( a , u ) { if ( a . eatSpace ( ) ) return null ; if ( u . chain ) return e ( a , u , u . chain , u . style , u . tail ) ; if ( a . match ( /^\-?[\d\.]/ , ! 1 ) && a . match ( /^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/ ) ) return "number" ; if ( a . match ( /^<<(?=\w)/ ) ) return a . eatWhile ( /\w/ ) , o ( a , u , a . current ( ) . substr ( 2 ) ) ; if ( a . sol ( ) && a . match ( /^\=item(?!\w)/ ) ) return o ( a , u , "=cut" ) ; var d = a . next ( ) ; if ( '"' == d || "'" == d ) { if ( r ( a , 3 ) == "<<" + d ) { var f = a . pos ; a . eatWhile ( /\w/ ) ; var p = a . current ( ) . substr ( 1 ) ; if ( p && a . eat ( d ) ) return o ( a , u , p ) ; a . pos = f } return e ( a , u , [ d ] , "string" ) } if ( "q" == d ) { var h = t ( a , - 2 ) ; if ( ! h || ! /\w/ . test ( h ) ) if ( h = t ( a , 0 ) , "x" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , l , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , l , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , l , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , l , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , l , c ) } else if ( "q" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "string" ) } else if ( "w" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "bracket" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "bracket" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "bracket" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "bracket" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "bracket" ) } else if ( "r" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , l , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , l , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , l , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , l , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , l , c ) } else if ( /[\^'"!~\/(\[{<]/ . test ( h ) ) { if ( "(" == h ) return i ( a , 1 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 1 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 1 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 1 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ a . eat ( h ) ] , "string" ) } } if ( "m" == d ) { var h = t ( a , - 2 ) ; if ( ( ! h || ! /\w/ . test ( h ) ) && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) { if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ h ] , l , c ) ; if ( "(" == h ) return e ( a , u , [ ")" ] , l , c ) ; if ( "[" == h ) return e ( a , u , [ "]" ] , l , c ) ; if ( "{" == h ) return e ( a , u , [ "}" ] , l , c ) ; if ( "<" == h ) return e ( a , u , [ ">" ] , l , c ) } } if ( "s" == d ) { var h = /[\/>\]})\w]/ . test ( t ( a , - 2 ) ) ; if ( ! h && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) return "[" == h ? e ( a , u , [ "]" , "]" ] , l , c ) : "{" == h ? e ( a , u , [ "}" , "}" ] , l , c ) : "<" == h ? e ( a , u , [ ">" , ">" ] , l , c ) : "(" == h ? e ( a , u , [ ")" , ")" ] , l , c ) : e ( a , u , [ h , h ] , l , c ) } if ( "y" == d ) { var h = /[\/>\]})\w]/ . test ( t ( a , - 2 ) ) ; if ( ! h && ( h =
2015-05-04 07:53:29 +00:00
2016-04-20 10:11:40 +00:00
0 != a . to ( ) . ch || a . empty ( ) || s -- , i > s ? n . push ( s , l ) : n . length && ( n [ n . length - 1 ] = l ) , i = l } t . operation ( function ( ) { for ( var e = n . length - 2 ; e >= 0 ; e -= 2 ) { var r = n [ e ] , i = n [ e + 1 ] , o = t . getLine ( r ) ; r == t . lastLine ( ) ? t . replaceRange ( "" , f ( r - 1 ) , f ( r ) , "+swapLine" ) : t . replaceRange ( "" , f ( r , 0 ) , f ( r + 1 , 0 ) , "+swapLine" ) , t . replaceRange ( o + "\n" , f ( i , 0 ) , null , "+swapLine" ) } t . scrollIntoView ( ) } ) } , d [ u [ h + "/" ] = "toggleCommentIndented" ] = function ( e ) { e . toggleComment ( { indent : ! 0 } ) } , d [ u [ h + "J" ] = "joinLines" ] = function ( e ) { for ( var t = e . listSelections ( ) , r = [ ] , n = 0 ; n < t . length ; n ++ ) { for ( var i = t [ n ] , o = i . from ( ) , a = o . line , s = i . to ( ) . line ; n < t . length - 1 && t [ n + 1 ] . from ( ) . line == s ; ) s = t [ ++ n ] . to ( ) . line ; r . push ( { start : a , end : s , anchor : ! i . empty ( ) && o } ) } e . operation ( function ( ) { for ( var t = 0 , n = [ ] , i = 0 ; i < r . length ; i ++ ) { for ( var o , a = r [ i ] , s = a . anchor && f ( a . anchor . line - t , a . anchor . ch ) , l = a . start ; l <= a . end ; l ++ ) { var c = l - t ; l == a . end && ( o = f ( c , e . getLine ( c ) . length + 1 ) ) , c < e . lastLine ( ) && ( e . replaceRange ( " " , f ( c ) , f ( c + 1 , /^\s*/ . exec ( e . getLine ( c + 1 ) ) [ 0 ] . length ) ) , ++ t ) } n . push ( { anchor : s || o , head : o } ) } e . setSelections ( n , 0 ) } ) } , d [ u [ "Shift-" + h + "D" ] = "duplicateLine" ] = function ( e ) { e . operation ( function ( ) { for ( var t = e . listSelections ( ) . length , r = 0 ; t > r ; r ++ ) { var n = e . listSelections ( ) [ r ] ; n . empty ( ) ? e . replaceRange ( e . getLine ( n . head . line ) + "\n" , f ( n . head . line , 0 ) ) : e . replaceRange ( e . getRange ( n . from ( ) , n . to ( ) ) , n . from ( ) ) } e . scrollIntoView ( ) } ) } , u [ h + "T" ] = "transposeChars" , d [ u . F9 = "sortLines" ] = function ( e ) { a ( e , ! 0 ) } , d [ u [ h + "F9" ] = "sortLinesInsensitive" ] = function ( e ) { a ( e , ! 1 ) } , d [ u . F2 = "nextBookmark" ] = function ( e ) { var t = e . state . sublimeBookmarks ; if ( t ) for ( ; t . length ; ) { var r = t . shift ( ) , n = r . find ( ) ; if ( n ) return t . push ( r ) , e . setSelection ( n . from , n . to ) } } , d [ u [ "Shift-F2" ] = "prevBookmark" ] = function ( e ) { var t = e . state . sublimeBookmarks ; if ( t ) for ( ; t . length ; ) { t . unshift ( t . pop ( ) ) ; var r = t [ t . length - 1 ] . find ( ) ; if ( r ) return e . setSelection ( r . from , r . to ) ; t . pop ( ) } } , d [ u [ h + "F2" ] = "toggleBookmark" ] = function ( e ) { for ( var t = e . listSelections ( ) , r = e . state . sublimeBookmarks || ( e . state . sublimeBookmarks = [ ] ) , n = 0 ; n < t . length ; n ++ ) { for ( var i = t [ n ] . from ( ) , o = t [ n ] . to ( ) , a = e . findMarks ( i , o ) , s = 0 ; s < a . length ; s ++ ) if ( a [ s ] . sublimeBookmark ) { a [ s ] . clear ( ) ; for ( var l = 0 ; l < r . length ; l ++ ) r [ l ] == a [ s ] && r . splice ( l -- , 1 ) ; break } s == a . length && r . push ( e . markText ( i , o , { sublimeBookmark : ! 0 , clearWhenEmpty : ! 1 } ) ) } } , d [ u [ "Shift-" + h + "F2" ] = "clearBookmarks" ] = function ( e ) { var t = e . state . sublimeBookmarks ; if ( t ) for ( var r = 0 ; r < t . length ; r ++ ) t [ r ] . clear ( ) ; t . length = 0 } , d [ u [ "Alt-F2" ] = "selectBookmarks" ] = function ( e ) { var t = e . state . sublimeBookmarks , r = [ ] ; if ( t ) for ( var n = 0 ; n < t . length ; n ++ ) { var i = t [ n ] . find ( ) ; i ? r . push ( { anchor : i . from , head : i . to } ) : t . splice ( n -- , 0 ) } r . length && e . setSelections ( r , 0 ) } , u [ "Alt-Q" ] = "wrapLines" ; var y = h + "K " ; u [ y + h + "Backspace" ] = "delLineLeft" , d [ u . Backspace = "smartBackspace" ] = function ( t ) { if ( t . somethingSelected ( ) ) return e . Pass ; var r = t . getCursor ( ) , n = t . getRange ( { line : r . line , ch : 0 } , r ) , i = e . countColumn ( n , null , t . getOption ( "tabSize" ) ) , o = t . getOption ( "indentUnit" ) ; if ( n && ! /\S/ . test ( n ) && i % o == 0 ) { var a = new f ( r . line , e . findColumn ( n , i - o , o ) ) ; return a . ch == r . ch ? e . Pass : t . replaceRange ( "" , a , r , "+delete" ) } return e . Pass } , d [ u [ y + h + "K" ] = "delLineRight" ] = function ( e ) { e . operation ( function ( ) { for ( var t = e . listSelections ( ) , r = t . length - 1 ; r >= 0 ; r -- ) e . replaceRange ( "" , t [ r ] . anchor , f ( t [ r ] . to ( ) . line ) , "+delete" ) ; e . scrollIntoView ( ) } ) } , d [ u [ y + h + "U" ] = "upcaseAtCursor" ] = function ( e ) { s ( e , function ( e ) { return e . toUpperCase ( ) } ) } , d [ u [ y + h + "L" ] = "downcaseAtCursor" ] = function ( e ) { s ( e , function ( e ) { return e . toLowerCase ( ) } ) } , d [ u [ y + h + "Space" ] = "setSublimeMark" ] = function ( e ) { e . state . sublimeMark && e . state . sublimeMark . clear ( ) , e . state . sublimeMark = e . setBookmark ( e . getCursor ( ) ) } , d [ u [ y + h + "A" ] = "selectToSublimeMark" ] = function ( e ) { var t = e . state . sublimeMark && e . state . sublimeMark . find ( ) ; t && e . setSelection ( e . getCursor ( ) , t ) } , d [ u [ y + h + "W" ] = "deleteToSublimeMark" ] = function ( t ) { var r = t . state . sublimeMark && t . state . sublimeMark . find ( ) ; if ( r ) { var n = t . getCursor ( ) , i = r ; if ( e . cmpPos ( n , i ) > 0 ) { var o = i ; i = n , n = o } t . state . sublimeKilled = t . getRange ( n , i ) , t . replaceRange ( "" , n , i ) } } , d [ u [ y + h + "X" ] = "swapWithSublimeMark" ] = function ( e ) { var t = e . state . sublimeMark && e . state . sublimeMark . find ( ) ; t && ( e . state . sublimeMark . clear ( ) , e . state . sublimeMark = e . setBookmark ( e . getCursor ( ) ) , e . setCursor ( t ) ) } , d [ u [ y + h + "Y" ] = "sublimeYank" ] = function ( e ) { null != e . state . su
var a = e . charAt ( o ) || "" , s = e . charAt ( o + 1 ) || "" , l = s && - 1 != t . indexOf ( s ) ; n ? ( "\\" === a && l || i . push ( a ) , n = ! 1 ) : "\\" === a ? ( n = ! 0 , s && - 1 != r . indexOf ( s ) && ( l = ! 0 ) , l && "\\" !== s || i . push ( a ) ) : ( i . push ( a ) , l && "\\" !== s && i . push ( "\\" ) ) } return i . join ( "" ) } function Oe ( e ) { for ( var t = ! 1 , r = [ ] , n = - 1 ; n < e . length ; n ++ ) { var i = e . charAt ( n ) || "" , o = e . charAt ( n + 1 ) || "" ; At [ i + o ] ? ( r . push ( At [ i + o ] ) , n ++ ) : t ? ( r . push ( i ) , t = ! 1 ) : "\\" === i ? ( t = ! 0 , m ( o ) || "$" === o ? r . push ( "$" ) : "/" !== o && "\\" !== o && r . push ( "\\" ) ) : ( "$" === i && r . push ( "$" ) , r . push ( i ) , "/" === o && r . push ( "\\" ) ) } return r . join ( "" ) } function ze ( t ) { for ( var r = new e . StringStream ( t ) , n = [ ] ; ! r . eol ( ) ; ) { for ( ; r . peek ( ) && "\\" != r . peek ( ) ; ) n . push ( r . next ( ) ) ; var i = ! 1 ; for ( var o in Et ) if ( r . match ( o , ! 0 ) ) { i = ! 0 , n . push ( Et [ o ] ) ; break } i || n . push ( r . next ( ) ) } return n . join ( "" ) } function Ie ( e , t , r ) { var n = kt . registerController . getRegister ( "/" ) ; if ( n . setText ( e ) , e instanceof RegExp ) return e ; var i , o , a = Ae ( e ) ; if ( a . length ) { i = e . substring ( 0 , a [ 0 ] ) ; var s = e . substring ( a [ 0 ] ) ; o = - 1 != s . indexOf ( "i" ) } else i = e ; if ( ! i ) return null ; x ( "pcre" ) || ( i = Ee ( i ) ) , r && ( t = /^[^A-Z]*$/ . test ( i ) ) ; var l = new RegExp ( i , t || o ? "i" : void 0 ) ; return l } function Ne ( e , t ) { e . openNotification ? e . openNotification ( '<span style="color: red">' + t + "</span>" , { bottom : ! 0 , duration : 5e3 } ) : alert ( t ) } function qe ( e , t ) { var r = "" ; return e && ( r += '<span style="font-family: monospace">' + e + "</span>" ) , r += '<input type="text"/> <span style="color: #888">' , t && ( r += '<span style="color: #888">' , r += t , r += "</span>" ) , r } function Pe ( e , t ) { var r = ( t . prefix || "" ) + " " + ( t . desc || "" ) , n = qe ( t . prefix , t . desc ) ; Le ( e , n , r , t . onClose , t ) } function Re ( e , t ) { if ( e instanceof RegExp && t instanceof RegExp ) { for ( var r = [ "global" , "multiline" , "ignoreCase" , "source" ] , n = 0 ; n < r . length ; n ++ ) { var i = r [ n ] ; if ( e [ i ] !== t [ i ] ) return ! 1 } return ! 0 } return ! 1 } function je ( e , t , r , n ) { if ( t ) { var i = Me ( e ) , o = Ie ( t , ! ! r , ! ! n ) ; if ( o ) return Be ( e , o ) , Re ( o , i . getQuery ( ) ) ? o : ( i . setQuery ( o ) , o ) } } function De ( e ) { if ( "^" == e . source . charAt ( 0 ) ) var t = ! 0 ; return { token : function ( r ) { if ( t && ! r . sol ( ) ) return void r . skipToEnd ( ) ; var n = r . match ( e , ! 1 ) ; if ( n ) return 0 == n [ 0 ] . length ? ( r . next ( ) , "searching" ) : r . sol ( ) || ( r . backUp ( 1 ) , e . exec ( r . next ( ) + n [ 0 ] ) ) ? ( r . match ( e ) , "searching" ) : ( r . next ( ) , null ) ; for ( ; ! r . eol ( ) && ( r . next ( ) , ! r . match ( e , ! 1 ) ) ; ) ; } , query : e } } function Be ( e , t ) { var r = Me ( e ) , n = r . getOverlay ( ) ; n && t == n . query || ( n && e . removeOverlay ( n ) , n = De ( t ) , e . addOverlay ( n ) , e . showMatchesOnScrollbar && ( r . getScrollbarAnnotate ( ) && r . getScrollbarAnnotate ( ) . clear ( ) , r . setScrollbarAnnotate ( e . showMatchesOnScrollbar ( t ) ) ) , r . setOverlay ( n ) ) } function Fe ( e , t , r , i ) { return void 0 === i && ( i = 1 ) , e . operation ( function ( ) { for ( var o = e . getCursor ( ) , a = e . getSearchCursor ( r , o ) , s = 0 ; i > s ; s ++ ) { var l = a . find ( t ) ; if ( 0 == s && l && $ ( a . from ( ) , o ) && ( l = a . find ( t ) ) , ! l && ( a = e . getSearchCursor ( r , t ? n ( e . lastLine ( ) ) : n ( e . firstLine ( ) , 0 ) ) , ! a . find ( t ) ) ) return } return a . from ( ) } ) } function We ( e ) { var t = Me ( e ) ; e . removeOverlay ( Me ( e ) . getOverlay ( ) ) , t . setOverlay ( null ) , t . getScrollbarAnnotate ( ) && ( t . getScrollbarAnnotate ( ) . clear ( ) , t . setScrollbarAnnotate ( null ) ) } function He ( e , t , r ) { return "number" != typeof e && ( e = e . line ) , t instanceof Array ? y ( e , t ) : r ? e >= t && r >= e : e == t } function $e ( e ) { var t = e . getScrollInfo ( ) , r = 6 , n = 10 , i = e . coordsChar ( { left : 0 , top : r + t . top } , "local" ) , o = t . clientHeight - n + t . top , a = e . coordsChar ( { left : 0 , top : o } , "local" ) ; return { top : i . line , bottom : a . line } } function Ue ( t , r , n , i , o , a , s , l , c ) { function u ( ) { t . operation ( function ( ) { for ( ; ! m ; ) d ( ) , f ( ) ; p ( ) } ) } function d ( ) { var e = t . getRange ( a . from ( ) , a . to ( ) ) , r = e . replace ( s , l ) ; a . replace ( r ) } function f ( ) { for ( ; a . findNext ( ) && He ( a . from ( ) , i , o ) ; ) if ( n || ! g || a . from ( ) . line != g . line ) return t . scrollIntoView ( a . from ( ) , 30 ) , t . setSelection ( a . from ( ) , a . to ( ) ) , g = a . from ( ) , void ( m = ! 1 ) ; m = ! 0 } function p ( e ) { if ( e && e ( ) , t . focus ( ) , g ) { t . setCursor ( g ) ; var r = t . state . vim ; r . exMode = ! 1 , r . lastHPos = r . lastHSPos = g . ch } c && c ( ) } function h ( r , n , i ) { e . e _stop ( r ) ; var o = e . keyName ( r ) ; switch ( o ) { case "Y" : d ( ) , f ( ) ; break ; case "N" : f ( ) ; break ; case "A" : var a = c ; c = void 0 , t . operation ( u ) , c = a ; break ; case "L" : d ( ) ; case "Q" : case "Esc" : case "Ctrl-C" : case "Ctrl-[" : p ( i ) } return m && p ( i ) , ! 0 } t . state . vim . exMode = ! 0 ; var m = ! 1 , g = a . from ( ) ; return f ( ) , m ? void Ne ( t , "No matches for " + s . source ) : r ? void Pe ( t , { prefix : "replace with <strong>" + l + "</strong> (y/n/a/q/l)" , onKeyDown : h } ) : ( u ( ) , void ( c && c ( ) ) ) } function Ke ( t ) { var r = t . state . vim , n = kt . macroModeState , i = kt . registerController
2016-02-09 04:51:07 +00:00
2016-04-20 10:11:40 +00:00
var o = H ( t . getCursor ( ) ) ; if ( o . line !== t . firstLine ( ) || r . after ) { o . line = r . after ? o . line : o . line - 1 , o . ch = X ( t , o . line ) , t . setCursor ( o ) ; var a = e . commands . newlineAndIndentContinueComment || e . commands . newlineAndIndent ; a ( t ) } else t . replaceRange ( "\n" , n ( t . firstLine ( ) , 0 ) ) , t . setCursor ( t . firstLine ( ) , 0 ) ; this . enterInsertMode ( t , { repeat : r . repeat } , i ) } , paste : function ( e , t , r ) { var i = H ( e . getCursor ( ) ) , o = kt . registerController . getRegister ( t . registerName ) , a = o . toString ( ) ; if ( a ) { if ( t . matchIndent ) { var s = e . getOption ( "tabSize" ) , l = function ( e ) { var t = e . split ( " " ) . length - 1 , r = e . split ( " " ) . length - 1 ; return t * s + 1 * r } , c = e . getLine ( e . getCursor ( ) . line ) , u = l ( c . match ( /^\s*/ ) [ 0 ] ) , d = a . replace ( /\n$/ , "" ) , f = a !== d , p = l ( a . match ( /^\s*/ ) [ 0 ] ) , a = d . replace ( /^\s*/gm , function ( t ) { var r = u + ( l ( t ) - p ) ; if ( 0 > r ) return "" ; if ( e . getOption ( "indentWithTabs" ) ) { var n = Math . floor ( r / s ) ; return Array ( n + 1 ) . join ( " " ) } return Array ( r + 1 ) . join ( " " ) } ) ; a += f ? "\n" : "" } if ( t . repeat > 1 ) var a = Array ( t . repeat + 1 ) . join ( a ) ; var h = o . linewise , m = o . blockwise ; if ( h ) r . visualMode ? a = r . visualLine ? a . slice ( 0 , - 1 ) : "\n" + a . slice ( 0 , a . length - 1 ) + "\n" : t . after ? ( a = "\n" + a . slice ( 0 , a . length - 1 ) , i . ch = X ( e , i . line ) ) : i . ch = 0 ; else { if ( m ) { a = a . split ( "\n" ) ; for ( var g = 0 ; g < a . length ; g ++ ) a [ g ] = "" == a [ g ] ? " " : a [ g ] } i . ch += t . after ? 1 : 0 } var v , y ; if ( r . visualMode ) { r . lastPastedText = a ; var b , k = re ( e , r ) , x = k [ 0 ] , w = k [ 1 ] , _ = e . getSelection ( ) , C = e . listSelections ( ) , S = new Array ( C . length ) . join ( "1" ) . split ( "1" ) ; r . lastSelection && ( b = r . lastSelection . headMark . find ( ) ) , kt . registerController . unnamedRegister . setText ( _ ) , m ? ( e . replaceSelections ( S ) , w = n ( x . line + a . length - 1 , x . ch ) , e . setCursor ( x ) , J ( e , w ) , e . replaceSelections ( a ) , v = x ) : r . visualBlock ? ( e . replaceSelections ( S ) , e . setCursor ( x ) , e . replaceRange ( a , x , x ) , v = x ) : ( e . replaceRange ( a , x , w ) , v = e . posFromIndex ( e . indexFromPos ( x ) + a . length - 1 ) ) , b && ( r . lastSelection . headMark = e . setBookmark ( b ) ) , h && ( v . ch = 0 ) } else if ( m ) { e . setCursor ( i ) ; for ( var g = 0 ; g < a . length ; g ++ ) { var M = i . line + g ; M > e . lastLine ( ) && e . replaceRange ( "\n" , n ( M , 0 ) ) ; var L = X ( e , M ) ; L < i . ch && Q ( e , M , i . ch ) } e . setCursor ( i ) , J ( e , n ( i . line + a . length - 1 , i . ch ) ) , e . replaceSelections ( a ) , v = i } else e . replaceRange ( a , i ) , h && t . after ? v = n ( i . line + 1 , de ( e . getLine ( i . line + 1 ) ) ) : h && ! t . after ? v = n ( i . line , de ( e . getLine ( i . line ) ) ) : ! h && t . after ? ( y = e . indexFromPos ( i ) , v = e . posFromIndex ( y + a . length - 1 ) ) : ( y = e . indexFromPos ( i ) , v = e . posFromIndex ( y + a . length ) ) ; r . visualMode && le ( e , ! 1 ) , e . setCursor ( v ) } } , undo : function ( t , r ) { t . operation ( function ( ) { W ( t , e . commands . undo , r . repeat ) ( ) , t . setCursor ( t . getCursor ( "anchor" ) ) } ) } , redo : function ( t , r ) { W ( t , e . commands . redo , r . repeat ) ( ) } , setRegister : function ( e , t , r ) { r . inputState . registerName = t . selectedCharacter } , setMark : function ( e , t , r ) { var n = t . selectedCharacter ; ke ( e , r , n , e . getCursor ( ) ) } , replace : function ( t , r , i ) { var o , a , s = r . selectedCharacter , l = t . getCursor ( ) , c = t . listSelections ( ) ; if ( i . visualMode ) l = t . getCursor ( "start" ) , a = t . getCursor ( "end" ) ; else { var u = t . getLine ( l . line ) ; o = l . ch + r . repeat , o > u . length && ( o = u . length ) , a = n ( l . line , o ) } if ( "\n" == s ) i . visualMode || t . replaceRange ( "" , l , a ) , ( e . commands . newlineAndIndentContinueComment || e . commands . newlineAndIndent ) ( t ) ; else { var d = t . getRange ( l , a ) ; if ( d = d . replace ( /[^\n]/g , s ) , i . visualBlock ) { var f = new Array ( t . getOption ( "tabSize" ) + 1 ) . join ( " " ) ; d = t . getSelection ( ) , d = d . replace ( /\t/g , f ) . replace ( /[^\n]/g , s ) . split ( "\n" ) , t . replaceSelections ( d ) } else t . replaceRange ( d , l , a ) ; i . visualMode ? ( l = U ( c [ 0 ] . anchor , c [ 0 ] . head ) ? c [ 0 ] . anchor : c [ 0 ] . head , t . setCursor ( l ) , le ( t , ! 1 ) ) : t . setCursor ( R ( a , 0 , - 1 ) ) } } , incrementNumberToken : function ( e , t ) { for ( var r , i , o , a , s , l = e . getCursor ( ) , c = e . getLine ( l . line ) , u = /-?\d+/g ; null !== ( r = u . exec ( c ) ) && ( s = r [ 0 ] , i = r . index , o = i + s . length , ! ( l . ch < o ) ) ; ) ; if ( ( t . backtrack || ! ( o <= l . ch ) ) && s ) { var d = t . increase ? 1 : - 1 , f = parseInt ( s ) + d * t . repeat , p = n ( l . line , i ) , h = n ( l . line , o ) ; a = f . toString ( ) , e . replaceRange ( a , p , h ) , e . setCursor ( n ( l . line , i + a . length - 1 ) ) } } , repeatLastEdit : function ( e , t , r ) { var n = r . lastEditInputState ; if ( n ) { var i = t . repeat ; i && t . repeatIsExplicit ? r . lastEditInputState . repeatOverride = i : i = r . lastEditInputState . repeatOverride || i , ot ( e , r , i , ! 1 ) } } , exitInsertMode : Ke } , Lt = { "(" : "bracket" , ")" : "bracket" , "{" : "bracket" , "}" : "bracket" , "[" : "section" , "]" : "section" , "*" : "comment" , "/" : "comment" , m : "method" , M : "method" , "#" : "preprocess" } , Tt = { bracket : { isComplete : function ( e ) { if ( e . nextCh === e . symb ) { if ( e . depth ++ , e . depth >= 1 ) return ! 0