2016-01-17 20:28:04 +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 ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? ji ( r ) : { } , ji ( ea , r , ! 1 ) , p ( r ) ; var i = r . value ; "string" == typeof i && ( i = new Ca ( i , r . mode , null , r . lineSeparator ) ) , this . doc = i ; var o = new e . inputStyles [ r . inputStyle ] ( this ) , a = this . display = new t ( n , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! zo && 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 Ei , keySeq : null , specialChars : null } ; var s = this ; xo && 11 > ko && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , $t ( this ) , Xi ( ) , kt ( this ) , this . curOp . forceUpdate = ! 0 , Yr ( this , i ) , r . autofocus && ! zo || s . hasFocus ( ) ? setTimeout ( Ri ( yn , this ) , 20 ) : bn ( this ) ; for ( var u in ta ) ta . hasOwnProperty ( u ) && ta [ u ] ( this , r [ u ] , na ) ; _ ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var d = 0 ; d < aa . length ; ++ d ) aa [ d ] ( this ) ; wt ( this ) , _o && r . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , n ) { var r = this ; this . input = n , r . scrollbarFiller = $i ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = $i ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = $i ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = $i ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = $i ( "div" , null , "CodeMirror-cursors" ) , r . measure = $i ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = $i ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = $i ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = $i ( "div" , [ $i ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = $i ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = $i ( "div" , null , null , "position: absolute; height: " + Pa + "px; width: 1px;" ) , r . gutters = $i ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = $i ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = $i ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , xo && 8 > ko && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , _o || vo && zo || ( r . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( r . wrapper ) : e ( r . wrapper ) ) , r . viewFrom = r . viewTo = t . first , r . reportedViewFrom = r . reportedViewTo = t . first , r . view = [ ] , r . renderedView = null , r . externalMeasured = null , r . viewOffset = 0 , r . lastWrapHeight = r . lastWrapWidth = 0 , r . updateLineNumbers = null , r . nativeBarWidth = r . barHeight = r . barWidth = 0 , r . scrollbarsClipped = ! 1 , r . lineNumWidth = r . lineNumInnerWidth = r . lineNumChars = null , r . alignWidgets = ! 1 , r . cachedCharWidth = r . cachedTextHeight = r . cachedPaddingH = null , r . maxLine = null , r . maxLineLength = 0 , r . maxLineChanged = ! 1 , r . wheelDX = r . wheelDY = r . wheelStartX = r . wheelStartY = null , r . shift = ! 1 , r . selForContextMenu = null , r . activeTouch = null , n . init ( r ) } function n ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , r ( t ) } function r ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , We ( e , 100 ) , e . state . modeGen ++ , e . curOp && It ( e ) } function i ( e ) { e . options . lineWrapping ? ( Qa ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Ya ( e . display . wrapper , "CodeMirror-wrap" ) , f ( e ) ) , a ( e ) , It ( e ) , st ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = bt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / xt ( e . display ) - 3 ) ; return function ( i ) { if ( wr ( 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 n ? o + ( Math . ceil ( i . text . length / r ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , n = o ( e ) ; t . iter ( function ( e ) { var t = n ( e ) ; t != e . height && ti ( e , t ) } ) } function l ( e ) { e . d
var s = e [ l ] , c = e [ l + 1 ] ; if ( s > t ? ( i = 0 , o = 1 , a = "left" ) : c > t ? ( i = t - s , o = i + 1 ) : ( l == e . length - 3 || t == c && e [ l + 3 ] > t ) && ( o = c - s , i = o - 1 , t >= c && ( a = "right" ) ) , null != i ) { if ( r = e [ l + 2 ] , s == c && n == ( r . insertLeft ? "left" : "right" ) && ( a = n ) , "left" == n && 0 == i ) for ( ; l && e [ l - 2 ] == e [ l - 3 ] && e [ l - 1 ] . insertLeft ; ) r = e [ ( l -= 3 ) + 2 ] , a = "left" ; if ( "right" == n && i == c - s ) for ( ; l < e . length - 3 && e [ l + 3 ] == e [ l + 4 ] && ! e [ l + 5 ] . insertLeft ; ) r = e [ ( l += 3 ) + 2 ] , a = "right" ; break } } return { node : r , start : i , end : o , collapse : a , coverStart : s , coverEnd : c } } function it ( e , t , n , r ) { var i , o = rt ( t . map , n , r ) , a = o . node , l = o . start , s = o . end , c = o . collapse ; if ( 3 == a . nodeType ) { for ( var u = 0 ; 4 > u ; u ++ ) { for ( ; l && Hi ( t . line . text . charAt ( o . coverStart + l ) ) ; ) -- l ; for ( ; o . coverStart + s < o . coverEnd && Hi ( t . line . text . charAt ( o . coverStart + s ) ) ; ) ++ s ; if ( xo && 9 > ko && 0 == l && s == o . coverEnd - o . coverStart ) i = a . parentNode . getBoundingClientRect ( ) ; else if ( xo && e . options . lineWrapping ) { var d = Ba ( a , l , s ) . getClientRects ( ) ; i = d . length ? d [ "right" == r ? d . length - 1 : 0 ] : Bo } else i = Ba ( a , l , s ) . getBoundingClientRect ( ) || Bo ; if ( i . left || i . right || 0 == l ) break ; s = l , l -= 1 , c = "right" } xo && 11 > ko && ( i = ot ( e . display . measure , i ) ) } else { l > 0 && ( c = r = "right" ) ; var d ; i = e . options . lineWrapping && ( d = a . getClientRects ( ) ) . length > 1 ? d [ "right" == r ? d . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( xo && 9 > ko && ! l && ( ! i || ! i . left && ! i . right ) ) { var f = a . parentNode . getClientRects ( ) [ 0 ] ; i = f ? { left : f . left , right : f . left + xt ( e . display ) , top : f . top , bottom : f . bottom } : Bo } 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 n = screen . logicalXDPI / screen . deviceXDPI , r = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * n , right : t . right * n , top : t . top * r , bottom : t . bottom * r } } 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 lt ( e ) { e . display . externalMeasure = null , Bi ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) at ( e . display . view [ t ] ) } function st ( e ) { lt ( 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 , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = Mr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ii ( t ) ; if ( "local" == r ? a += Be ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ut ( ) ) ; var s = l . left + ( "window" == r ? 0 : ct ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= ct ( ) , i -= ut ( ) ; else if ( "local" == n || ! n ) { var o = e . display . sizer . getBoundingClientRect ( ) ; r += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : r - a . left , top : i - a . top } } function pt ( e , t , n , r , i ) { return r || ( r = Qr ( e . doc , t . line ) ) , dt ( e , r , Je ( e , r , t . ch , i ) , n ) } function ht ( e , t , n , r , i , o ) { function a ( t , a ) { var l = nt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , dt ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == no ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = ro ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == ro ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = no ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Qr ( e . doc , t . line ) , i || ( i = tt ( e , r ) ) ; var s = oi ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = uo ( s , c ) , d = l ( c , u ) ; return null != al && ( d . other = l ( c , al ) ) , d } function mt ( e , t ) { var n = 0 , t = ge ( e . doc , t ) ; e . options . lineWrapping || ( n = xt ( e . display ) * t . ch ) ; var r = Qr ( e . doc , t . line ) , i = ii ( r ) + Be ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function gt ( e , t , n , r ) { var i = jo ( e , t ) ; return i . xRel = r , n && ( i . outside = ! 0
2015-05-04 07:53:29 +00:00
2016-01-17 20:28:04 +00:00
var t = e . getCursor ( ) , n = t , r = t ; e . options . lineWrapping || ( n = t . ch ? jo ( t . line , t . ch - 1 ) : t , r = jo ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : n , to : r , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function Wn ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var n = mt ( e , t . from ) , r = mt ( e , t . to ) , i = Dn ( e , Math . min ( n . left , r . left ) , Math . min ( n . top , r . top ) - t . margin , Math . max ( n . right , r . right ) , Math . max ( n . bottom , r . bottom ) + t . margin ) ; e . scrollTo ( i . scrollLeft , i . scrollTop ) } } function Fn ( e , t , n , r ) { var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = $e ( e , t ) : n = "prev" ) ; var a = e . options . tabSize , l = Qr ( o , t ) , s = Wa ( l . text , null , a ) ; l . stateAfter && ( l . stateAfter = null ) ; var c , u = l . text . match ( /^\s*/ ) [ 0 ] ; if ( r || /\S/ . test ( l . text ) ) { if ( "smart" == n && ( c = o . mode . indent ( i , l . text . slice ( u . length ) , l . text ) , c == Ia || c > 150 ) ) { if ( ! r ) return ; n = "prev" } } else c = 0 , n = "not" ; "prev" == n ? c = t > o . first ? Wa ( Qr ( o , t - 1 ) . text , null , a ) : 0 : "add" == n ? c = s + e . options . indentUnit : "subtract" == n ? c = s - e . options . indentUnit : "number" == typeof n && ( c = s + n ) , 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 += Oi ( c - f ) ) , d != u ) return qn ( o , d , jo ( t , 0 ) , jo ( t , u . length ) , "+input" ) , l . 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 = jo ( t , u . length ) ; we ( o , p , new fe ( f , f ) ) ; break } } } function Hn ( e , t , n , r ) { var i = t , o = t ; return "number" == typeof t ? o = Qr ( e , me ( e , t ) ) : i = ni ( t ) , null == i ? null : ( r ( o , i ) && e . cm && Dt ( e . cm , i , n ) , o ) } function $n ( e , t ) { for ( var n = e . doc . sel . ranges , r = [ ] , i = 0 ; i < n . length ; i ++ ) { for ( var o = t ( n [ i ] ) ; r . length && Ro ( o . from , qi ( r ) . to ) <= 0 ; ) { var a = r . pop ( ) ; if ( Ro ( a . from , o . from ) < 0 ) { o . from = a . from ; break } } r . push ( o ) } zt ( e , function ( ) { for ( var t = r . length - 1 ; t >= 0 ; t -- ) qn ( e . doc , "" , r [ t ] . from , r [ t ] . to , "+delete" ) ; Rn ( e ) } ) } function Bn ( e , t , n , r , i ) { function o ( ) { var t = l + n ; return t < e . first || t >= e . first + e . size ? ! 1 : ( l = t , u = Qr ( e , t ) ) } function a ( e ) { var t = ( i ? po : ho ) ( u , s , n , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; s = i ? ( 0 > n ? oo : io ) ( u ) : 0 > n ? u . text . length : 0 } else s = t ; return ! 0 } var l = t . line , s = t . ch , c = n , u = Qr ( e , l ) ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var d = null , f = "group" == r , p = e . cm && e . cm . getHelper ( t , "wordChars" ) , h = ! 0 ; ! ( 0 > n ) || a ( ! h ) ; h = ! 1 ) { var m = u . text . charAt ( s ) || "\n" , g = Wi ( m , p ) ? "w" : f && "\n" == m ? "n" : ! f || /\s/ . test ( m ) ? null : "p" ; if ( ! f || h || g || ( g = "s" ) , d && d != g ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( g && ( d = g ) , n > 0 && ! a ( ! h ) ) break } var v = qe ( e , jo ( l , s ) , t , c , ! 0 ) ; return Ro ( t , v ) || ( v . hitSide = ! 0 ) , v } function Un ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * bt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = vt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function Vn ( t , n , r , i ) { e . defaults [ t ] = n , r && ( ta [ t ] = i ? function ( e , t , n ) { n != na && r ( e , t , n ) } : r ) } function Gn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function Kn ( e ) { return "string" == typeof e ? da [ e ] : e } function Zn ( e , t , n , r , i ) { if ( r && r . shared ) return Xn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , Zn ) ( e , t , n , r , i ) ; var o = new va ( e , i ) , a = Ro ( t , n ) ; if ( r && ji ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = $i ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( yr ( e , t . line , t , n , o ) || t . line != n . line && yr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; Do = ! 0 } o . addToHistory && ui ( e , { from : t , to : n , origin : "markText" } , e . sel , 0 / 0 ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && br ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed && s != t . line && ti ( e , 0 ) , rr ( e , new er ( o , s == t . line ? t . ch : null , s == n . line ? n . ch : null ) ) , ++ s } ) , o . co
"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 ++ ) qa . apply ( null , this . events [ e ] ) } ; var jo = e . Pos = function ( e , t ) { return this instanceof jo ? ( this . line = e , void ( this . ch = t ) ) : new jo ( e , t ) } , Ro = e . cmpPos = function ( e , t ) { return e . line - t . line || e . ch - t . ch } , Wo = null ; re . prototype = ji ( { init : function ( e ) { function t ( e ) { if ( ! Li ( r , e ) ) { if ( r . somethingSelected ( ) ) Wo = r . getSelections ( ) , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Wo . join ( "\n" ) , $a ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = te ( r ) ; Wo = t . text , "cut" == e . type ? r . setSelections ( t . ranges , null , Da ) : ( n . prevInput = "" , o . value = t . text . join ( "\n" ) , $a ( o ) ) } "cut" == e . type && ( r . state . cutIncoming = ! 0 ) } } var n = this , r = this . cm , i = this . wrapper = ie ( ) , o = this . textarea = i . firstChild ; e . wrapper . insertBefore ( i , e . wrapper . firstChild ) , Ao && ( o . style . width = "0px" ) , za ( o , "input" , function ( ) { xo && ko >= 9 && n . hasSelection && ( n . hasSelection = null ) , n . poll ( ) } ) , za ( o , "paste" , function ( e ) { Li ( r , e ) || J ( e , r ) || ( r . state . pasteIncoming = ! 0 , n . fastPoll ( ) ) } ) , za ( o , "cut" , t ) , za ( o , "copy" , t ) , za ( e . scroller , "paste" , function ( t ) { Vt ( e , t ) || Li ( r , t ) || ( r . state . pasteIncoming = ! 0 , n . focus ( ) ) } ) , za ( e . lineSpace , "selectstart" , function ( t ) { Vt ( e , t ) || La ( t ) } ) , za ( o , "compositionstart" , function ( ) { var e = r . getCursor ( "from" ) ; n . composing && n . composing . range . clear ( ) , n . composing = { start : e , range : r . markText ( e , r . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) } } ) , za ( o , "compositionend" , function ( ) { n . composing && ( n . poll ( ) , n . composing . range . clear ( ) , n . composing = null ) } ) } , prepareSelection : function ( ) { var e = this . cm , t = e . display , n = e . doc , r = Ie ( e ) ; if ( e . options . moveInputWithCursor ) { var i = ht ( e , n . sel . primary ( ) . head , "div" ) , o = t . wrapper . getBoundingClientRect ( ) , a = t . lineDiv . getBoundingClientRect ( ) ; r . teTop = Math . max ( 0 , Math . min ( t . wrapper . clientHeight - 10 , i . top + a . top - o . top ) ) , r . teLeft = Math . max ( 0 , Math . min ( t . wrapper . clientWidth - 10 , i . left + a . left - o . left ) ) } return r } , showSelection : function ( e ) { var t = this . cm , n = t . display ; Ui ( n . cursorDiv , e . cursors ) , Ui ( n . 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 , n , r = this . cm , i = r . doc ; if ( r . somethingSelected ( ) ) { this . prevInput = "" ; var o = i . sel . primary ( ) ; t = rl && ( o . to ( ) . line - o . from ( ) . line > 100 || ( n = r . getSelection ( ) ) . length > 1e3 ) ; var a = t ? "-" : n || r . getSelection ( ) ; this . composing || ( this . textarea . value = a ) , r . state . focused && $a ( this . textarea ) , xo && ko >= 9 && ( this . hasSelection = a ) } else e || ( this . composing || ( this . prevInput = this . textarea . value = "" ) , xo && ko >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! zo || Vi ( ) != 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 r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || nl ( t ) && ! n && ! this . composing || e . isReadOnly ( ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( xo && ko >= 9 && this . hasSelection === r || Eo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return zt ( e , function ( ) { Q ( e , r . slice ( o ) , n . length - o , null , l . composing ? "*compose" : null ) , r . length > 1e3 || r . indexOf ( "\n" ) > - 1 ? t . value = l . prevInput = "" : l . prevInput = r , l . composing && ( l . composing . range . clear ( ) , l . composing . range = e . markText ( l . comp
Enter : "newlineAndIndent" , Insert : "toggleOverwrite" , Esc : "singleSelection" } , da . 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" } , da . 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" } , da . 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" ] } , da [ "default" ] = Eo ? da . macDefault : da . pcDefault , e . normalizeKeyMap = function ( e ) { var t = { } ; for ( var n in e ) if ( e . hasOwnProperty ( n ) ) { var r = e [ n ] ; if ( /^(name|fallthrough|(de|at)tach)$/ . test ( n ) ) continue ; if ( "..." == r ) { delete e [ n ] ; continue } for ( var i = Pi ( n . split ( " " ) , Gn ) , o = 0 ; o < i . length ; o ++ ) { var a , l ; o == i . length - 1 ? ( l = i . join ( " " ) , a = r ) : ( l = i . slice ( 0 , o + 1 ) . join ( " " ) , a = "..." ) ; var s = t [ l ] ; if ( s ) { if ( s != a ) throw new Error ( "Inconsistent bindings for " + l ) } else t [ l ] = a } delete e [ n ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var fa = e . lookupKey = function ( e , t , n , r ) { t = Kn ( t ) ; var i = t . call ? t . call ( e , r ) : t [ e ] ; if ( i === ! 1 ) return "nothing" ; if ( "..." === i ) return "multi" ; if ( null != i && n ( i ) ) return "handled" ; if ( t . fallthrough ) { if ( "[object Array]" != Object . prototype . toString . call ( t . fallthrough ) ) return fa ( e , t . fallthrough , n , r ) ; for ( var o = 0 ; o < t . fallthrough . length ; o ++ ) { var a = fa ( e , t . fallthrough [ o ] , n , r ) ; if ( a ) return a } } } , pa = e . isModifierKey = function ( e ) { var t = "string" == typeof e ? e : ol [ e . keyCode ] ; return "Ctrl" == t || "Alt" == t || "Shift" == t || "Mod" == t } , ha = e . keyName = function ( e , t ) { if ( So && 34 == e . keyCode && e [ "char" ] ) return ! 1 ; var n = ol [ e . keyCode ] , r = n ; return null == r || e . altGraphKey ? ! 1 : ( e . altKey && "Alt" != n && ( r = "Alt-" + r ) , ( No ? e . metaKey : e . ctrlKey ) && "Ctrl" != n && ( r = "Ctrl-" + r ) , ( No ? e . ctrlKey : e . metaKey ) && "Cmd" != n && ( r = "Cmd-" + r ) , ! t && e . shiftKey && "Shift" != n && ( r = "Shift-" + r ) , r ) } ; e . fromTextArea = function ( t , n ) { function r ( ) { t . value = c . getValue ( ) } if ( n = n ? ji ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = Vi ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( za ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . removeChild ( e . getWrapperElement ( ) ) , t . style . display = "" , t . form && ( Oa ( t . form , "submit" , r ) , "function" == typeof t . form . submit && ( t . form . submit = a ) ) } } , t . style . display = "none" ; var c = e ( function ( e ) { t . parentNode . insertBefore ( e , t . nextSibling ) } , n ) ; return c } ; var ma = e . StringStream = function ( e , t ) { this . pos = this . start = 0 , this . string = e , this . tabSize = t || 8 , this . lastColumn
state : t . state , pending : t . pending , local : t . local , localState : null , indent : t . indent && t . indent . slice ( 0 ) } ; t . localState && ( n . localState = e . copyState ( t . local . mode , t . localState ) ) , t . stack && ( n . stack = t . stack . slice ( 0 ) ) ; for ( var r = t . persistentStates ; r ; r = r . next ) n . persistentStates = { mode : r . mode , spec : r . spec , state : r . state == t . localState ? n . localState : e . copyState ( r . mode , r . state ) , next : n . persistentStates } ; return n } , token : o ( a , n ) , innerMode : function ( e ) { return e . local && { mode : e . local . mode , state : e . localState } } , indent : c ( a , l ) } ; if ( l ) for ( var g in l ) l . hasOwnProperty ( g ) && ( m [ g ] = l [ 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 n ( e , t , n , r ) { if ( "string" == typeof t ) { var i = e . indexOf ( t , n ) ; return r && i > - 1 ? i + t . length : i } var o = t . exec ( n ? e . slice ( n ) : e ) ; return o ? o . index + n + ( r ? o [ 0 ] . length : 0 ) : - 1 } var r = Array . prototype . slice . call ( arguments , 1 ) ; return { startState : function ( ) { return { outer : e . startState ( t ) , innerActive : null , inner : null } } , copyState : function ( n ) { return { outer : e . copyState ( t , n . outer ) , innerActive : n . innerActive , inner : n . innerActive && e . copyState ( n . innerActive . mode , n . inner ) } } , token : function ( i , o ) { if ( o . innerActive ) { var a = o . innerActive , l = i . string ; if ( ! a . close && i . sol ( ) ) return o . innerActive = o . inner = null , this . token ( i , o ) ; var s = a . close ? n ( l , a . close , i . pos , a . parseDelimiters ) : - 1 ; if ( s == i . pos && ! a . parseDelimiters ) return i . match ( a . close ) , o . innerActive = o . inner = null , a . delimStyle && a . delimStyle + " " + a . delimStyle + "-close" ; s > - 1 && ( i . string = l . slice ( 0 , s ) ) ; var c = a . mode . token ( i , o . inner ) ; return s > - 1 && ( i . string = l ) , s == i . pos && a . parseDelimiters && ( o . innerActive = o . inner = null ) , a . innerStyle && ( c = c ? c + " " + a . innerStyle : a . innerStyle ) , c } for ( var u = 1 / 0 , l = i . string , d = 0 ; d < r . length ; ++ d ) { var f = r [ d ] , s = n ( l , f . open , i . pos ) ; if ( s == 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 != s && u > s && ( u = s ) } u != 1 / 0 && ( i . string = l . slice ( 0 , u ) ) ; var p = t . token ( i , o . outer ) ; return u != 1 / 0 && ( i . string = l ) , p } , indent : function ( n , r ) { var i = n . innerActive ? n . innerActive . mode : t ; return i . indent ? i . indent ( n . innerActive ? n . inner : n . outer , r ) : e . Pass } , blankLine : function ( n ) { var i = n . innerActive ? n . innerActive . mode : t ; if ( i . blankLine && i . blankLine ( n . innerActive ? n . inner : n . outer ) , n . innerActive ) "\n" === n . innerActive . close && ( n . innerActive = n . inner = null ) ; else for ( var o = 0 ; o < r . length ; ++ o ) { var a = r [ o ] ; "\n" === a . open && ( n . innerActive = a , n . inner = e . startState ( a . mode , i . indent ? i . indent ( n . 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 ) } function n ( e , t ) { if ( e . length != t . length ) return ! 1 ; for ( var n = 0 ; n < e . length ; n ++ ) if ( e [ n ] != t [ n ] ) return ! 1 ; return ! 0 } function r ( e , r ) { for ( var i = [ ] , l = 0 ; l < r . length ; l ++ ) { var s = r [ l ] ; if ( s . empty ( ) ) { var c = e . getLineHandleVisualStart ( s . head . line ) ; i [ i . length - 1 ] != c && i . push ( c ) } } n ( e . state . activeLines , i ) || e . operation ( function ( ) { t ( e ) ; for ( var n = 0 ; n < i . length ; n ++ ) e . addLineClass ( i [ n ] , "wrap" , o ) , e . addLineClass ( i [ n ] , "background" , a ) ; e . state . activeLines = i } ) } function i ( e , t ) { r ( e , t . ranges ) } var o = "CodeMirror-activeline" , a = "CodeMirror-activeline-background" ; e . defineOption ( "styleActiveLine" , ! 1 , function ( n , o , a ) { var l = a && a != e . Init ; o && ! l ? ( n . state . activeLines = [ ] , r ( n , n . listSelections ( ) ) , n . on ( "beforeSelectionChange" , i ) ) : ! o && l && ( n . off ( "beforeSelectionChange" , i ) , t ( n ) , delete n . state . activeLines ) } ) } ) , 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 , i
2015-05-04 07:53:29 +00:00
2016-01-18 00:06:21 +00:00
} } if ( l . length ) { o && e . state . focused && e . focus ( ) ; var f = function ( ) { e . operation ( function ( ) { for ( var e = 0 ; e < l . length ; e ++ ) l [ e ] . clear ( ) } ) } ; if ( ! n ) return f ; setTimeout ( f , 800 ) } } function i ( e ) { e . operation ( function ( ) { s && ( s ( ) , s = null ) , s = r ( e , ! 1 , e . state . matchBrackets ) } ) } var o = /MSIE \d/ . test ( navigator . userAgent ) && ( null == document . documentMode || document . documentMode < 8 ) , a = e . Pos , l = { "(" : ")>" , ")" : "(<" , "[" : "]>" , "]" : "[<" , "{" : "}>" , "}" : "{<" } , s = null ; e . defineOption ( "matchBrackets" , ! 1 , function ( t , n , r ) { r && r != e . Init && t . off ( "cursorActivity" , i ) , n && ( t . state . matchBrackets = "object" == typeof n ? n : { } , t . on ( "cursorActivity" , i ) ) } ) , e . defineExtension ( "matchBrackets" , function ( ) { r ( this , ! 0 ) } ) , e . defineExtension ( "findMatchingBracket" , function ( e , n , r ) { return t ( this , e , n , r ) } ) , e . defineExtension ( "scanForBracket" , function ( e , t , r , i ) { return n ( this , e , t , r , 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 n ( e ) { return function ( t ) { return l ( t , e ) } } function r ( e ) { var t = e . state . closeBrackets ; if ( ! t ) return null ; var n = e . getModeAt ( e . getCursor ( ) ) ; return n . closeBrackets || t } function i ( n ) { var i = r ( n ) ; if ( ! i || n . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = t ( i , "pairs" ) , a = n . listSelections ( ) , l = 0 ; l < a . length ; l ++ ) { if ( ! a [ l ] . empty ( ) ) return e . Pass ; var s = c ( n , a [ l ] . head ) ; if ( ! s || o . indexOf ( s ) % 2 != 0 ) return e . Pass } for ( var l = a . length - 1 ; l >= 0 ; l -- ) { var u = a [ l ] . head ; n . replaceRange ( "" , f ( u . line , u . ch - 1 ) , f ( u . line , u . ch + 1 ) , "+delete" ) } } function o ( n ) { var i = r ( n ) , o = i && t ( i , "explode" ) ; if ( ! o || n . getOption ( "disableInput" ) ) return e . Pass ; for ( var a = n . listSelections ( ) , l = 0 ; l < a . length ; l ++ ) { if ( ! a [ l ] . empty ( ) ) return e . Pass ; var s = c ( n , a [ l ] . head ) ; if ( ! s || o . indexOf ( s ) % 2 != 0 ) return e . Pass } n . operation ( function ( ) { n . replaceSelection ( "\n\n" , null ) , n . execCommand ( "goCharLeft" ) , a = n . listSelections ( ) ; for ( var e = 0 ; e < a . length ; e ++ ) { var t = a [ e ] . head . line ; n . indentLine ( t , null , ! 0 ) , n . indentLine ( t + 1 , null , ! 0 ) } } ) } function a ( t ) { var n = e . cmpPos ( t . anchor , t . head ) > 0 ; return { anchor : new f ( t . anchor . line , t . anchor . ch + ( n ? - 1 : 1 ) ) , head : new f ( t . head . line , t . head . ch + ( n ? 1 : - 1 ) ) } } function l ( n , i ) { var o = r ( n ) ; if ( ! o || n . getOption ( "disableInput" ) ) return e . Pass ; var l = t ( o , "pairs" ) , c = l . indexOf ( i ) ; if ( - 1 == c ) return e . Pass ; for ( var d , p , h = t ( o , "triples" ) , m = l . charAt ( c + 1 ) == i , g = n . listSelections ( ) , v = c % 2 == 0 , y = 0 ; y < g . length ; y ++ ) { var b , x = g [ y ] , k = x . head , p = n . getRange ( k , f ( k . line , k . ch + 1 ) ) ; if ( v && ! x . empty ( ) ) b = "surround" ; else if ( ! m && v || p != i ) if ( m && k . ch > 1 && h . indexOf ( i ) >= 0 && n . getRange ( f ( k . line , k . ch - 2 ) , k ) == i + i && ( k . ch <= 2 || n . getRange ( f ( k . line , k . ch - 3 ) , f ( k . line , k . ch - 2 ) ) != i ) ) b = "addFour" ; else if ( m ) { if ( e . isWordChar ( p ) || ! u ( n , k , i ) ) return e . Pass ; b = "both" } else { if ( ! v || n . getLine ( k . line ) . length != k . ch && ! s ( p , l ) && ! /\s/ . test ( p ) ) return e . Pass ; b = "both" } else b = h . indexOf ( i ) >= 0 && n . getRange ( k , f ( k . line , k . ch + 3 ) ) == i + i + i ? "skipThree" : "skip" ; if ( d ) { if ( d != b ) return e . Pass } else d = b } var _ = c % 2 ? l . charAt ( c - 1 ) : i , w = c % 2 ? i : l . charAt ( c + 1 ) ; n . operation ( function ( ) { if ( "skip" == d ) n . execCommand ( "goCharRight" ) ; else if ( "skipThree" == d ) for ( var e = 0 ; 3 > e ; e ++ ) n . execCommand ( "goCharRight" ) ; else if ( "surround" == d ) { for ( var t = n . getSelections ( ) , e = 0 ; e < t . length ; e ++ ) t [ e ] = _ + t [ e ] + w ; n . replaceSelections ( t , "around" ) , t = n . listSelections ( ) . slice ( ) ; for ( var e = 0 ; e < t . length ; e ++ ) t [ e ] = a ( t [ e ] ) ; n . setSelections ( t ) } else "both" == d ? ( n . replaceSelection ( _ + w , null ) , n . triggerElectric ( _ + w ) , n . execCommand ( "goCharLeft" ) ) : "addFour" == d && ( n . replaceSelection ( _ + _ + _ + _ , "before" ) , n . execCommand ( "goCharRight" ) ) } ) } function s ( e , t ) { var n = t . lastIndexOf ( e ) ; return n > - 1 && n % 2 == 1 } function c ( e , t ) { var n = e . getRange ( f ( t . line , t . ch - 1 ) , f ( t . line , t . ch + 1 ) ) ; return 2 == n . length ? n : null } function u ( t , n , r ) { var i = t . getLine ( n . line ) , o = t . getTokenAt ( n ) ; if ( /\bstring2?\b/ . test ( o . type ) ) return ! 1 ; var a = new e . StringStream ( i . slice ( 0 , n . ch ) + r + i . slice ( n . ch ) , 4 ) ; for ( a . pos = a . start = o . start ; ; ) { var l = t . getMode ( ) . token ( a , o . state ) ; if ( a . pos >= n . ch + 1 ) return /\bstring2?\b/ . test ( l ) ; a . start = a . pos } } var d = { pairs : "()[]{}''\"\"" , triples : "" , explode : "[]{}" } , f = e . Pos ; e . defineOption ( "autoCloseBrackets" , ! 1 , function ( t , n , r ) { r && r != e . Init && ( t . removeKeyMap (
2016-02-02 19:56:30 +00:00
if ( "word" == e ) return L = "attribute" , b ; if ( "endTag" == e || "selfcloseTag" == e ) { var r = n . tagName , i = n . tagStart ; return n . tagName = n . tagStart = null , "selfcloseTag" == e || w . autoSelfClosers . hasOwnProperty ( r ) ? f ( n , r ) : ( f ( n , r ) , n . context = new u ( n , r , i == n . indented ) ) , p } return L = "error" , y } function b ( e , t , n ) { return "equals" == e ? x : ( w . allowMissing || ( L = "error" ) , y ( e , t , n ) ) } function x ( e , t , n ) { return "string" == e ? k : "word" == e && w . allowUnquoted ? ( L = "string" , y ) : ( L = "error" , y ( e , t , n ) ) } function k ( e , t , n ) { return "string" == e ? k : y ( e , t , n ) } var _ = r . indentUnit , w = { } , C = i . htmlMode ? t : n ; for ( var S in C ) w [ S ] = C [ S ] ; for ( var S in i ) w [ 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 n = t . tokenize ( e , t ) ; return ( n || M ) && "comment" != n && ( L = null , t . state = t . state ( M || n , e , t ) , L && ( n = "error" == L ? n + " error" : L ) ) , n } , indent : function ( t , n , r ) { var i = t . context ; if ( t . tokenize . isInAttribute ) return t . tagStart == t . indented ? t . stringStartCol + 1 : t . indented + _ ; if ( i && i . noIndent ) return e . Pass ; if ( t . tokenize != a && t . tokenize != o ) return r ? r . match ( /^(\s*)/ ) [ 0 ] . length : 0 ; if ( t . tagName ) return w . multilineTagIndentPastTag !== ! 1 ? t . tagStart + t . tagName . length + 2 : t . tagStart + _ * ( w . multilineTagIndentFactor || 1 ) ; if ( w . alignCDATA && /<!\[CDATA\[/ . test ( n ) ) return 0 ; var l = n && /^<(\/)?([\w_:\.-]*)/ . exec ( n ) ; if ( l && l [ 1 ] ) for ( ; i ; ) { if ( i . tagName == l [ 2 ] ) { i = i . prev ; break } if ( ! w . implicitlyClosed . hasOwnProperty ( i . tagName ) ) break ; i = i . prev } else if ( l ) for ( ; i ; ) { var s = w . contextGrabbers [ i . tagName ] ; if ( ! s || ! s . hasOwnProperty ( l [ 2 ] ) ) break ; i = i . prev } for ( ; i && i . prev && ! i . startOfLine ; ) i = i . prev ; return i ? i . indent + _ : t . baseIndent || 0 } , electricInput : /<\/[\s\w:]+>$/ , blockCommentStart : "<!--" , blockCommentEnd : "-->" , configuration : w . htmlMode ? "html" : "xml" , helperType : w . htmlMode ? "html" : "xml" , skipAttribute : function ( e ) { e . state == x && ( 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 , n ) { function r ( n ) { if ( e . findModeByName ) { var r = e . findModeByName ( n ) ; r && ( n = r . mime || r . mimes [ 0 ] ) } var i = e . getMode ( t , n ) ; return "null" == i . name ? null : i } function i ( e , t , n ) { return t . f = t . inline = n , n ( e , t ) } function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function l ( 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 = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( e , t ) { var o = e . sol ( ) , l = t . list !== ! 1 , s = t . indentedCode ; t . indentedCode = ! 1 , l && ( t . indentationDiff >= 0 ? ( t . indentationDiff < 4 && ( t . indentation -= t . indentationDiff ) , t . list = null ) : t . indentation > 0 ? ( t . list = null , t . listDepth = Math . floor ( t . indentation / 4 ) ) : ( t . list = ! 1 , t . listDepth = 0 ) ) ; var c = null ; if ( t . indentationDiff >= 4 ) return e . skipToEnd ( ) , s || a ( t . prevLine ) ? ( t . indentation -= 4 , t . indentedCode = ! 0 , C . code ) : null ; if ( e . eatSpace ( ) ) return null ; if ( ( c = e . match ( z ) ) && c [ 1 ] . length <= 6 ) return t . header = c [ 1 ] . length , n . highlightFormatting && ( t . formatting = "header" ) , t . f = t . inline , f ( t ) ; if ( ! ( a ( t . prevLine ) || t . quote || l || s ) && ( c = e . match ( E ) ) ) return t . header = "=" == c [ 0 ] . charAt ( 0 ) ? 1 : 2 , n . highlightFormatting && ( t . formatting = "header" ) , t . f = t . inline , f ( t ) ; if ( e . eat ( ">" ) ) return t . quote = o ? 1 : t . quote + 1 , n . highlightFormatting && ( t . formatting = "quote" ) , e . eatSpace ( ) , f ( t ) ; if ( "[" === e . peek ( ) ) return i ( e , t , y ) ; if ( e . match ( M , ! 0 ) ) return t . hr = ! 0 , C . hr ; if ( ( a ( t . prevLine ) || l ) && ( e . match ( L , ! 1 ) || e . match ( T , ! 1 ) ) ) { var d = null ; return e . match ( L , ! 0 ) ? d = "ul" : ( e . match ( T , ! 0 ) , d = "ol" ) , t . indentation = e . column ( ) + e . current ( ) . length , t . list = ! 0 , t . listDepth ++ , n . taskLists && e . match ( A , ! 1 ) && ( t . taskList = ! 0 ) , t . f = t . inline , n . highlightFormatting && ( t . formatting = [ "list" , "list-" + d ] ) , f ( t ) } return n . fencedCodeBlock
else { if ( "variable-definition" == e ) return "maybeprop" ; if ( "interpolation" == e ) return s ( n , t , "interpolation" ) ; if ( ":" == e ) return "pseudo" ; if ( T && "(" == e ) return s ( n , t , "parens" ) } return n . context . type } , z . block = function ( e , t , n ) { if ( "word" == e ) { var r = t . current ( ) . toLowerCase ( ) ; return _ . hasOwnProperty ( r ) ? ( m = "property" , "maybeprop" ) : w . hasOwnProperty ( r ) ? ( 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 ? z . top ( e , t , n ) : ( m = "error" , "block" ) } , z . maybeprop = function ( e , t , n ) { return ":" == e ? s ( n , t , "prop" ) : u ( e , t , n ) } , z . prop = function ( e , t , n ) { if ( ";" == e ) return c ( n ) ; if ( "{" == e && T ) return s ( n , t , "propBlock" ) ; if ( "}" == e || "{" == e ) return d ( e , t , n ) ; if ( "(" == e ) return s ( n , 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 s ( n , t , "interpolation" ) } else m += " error" ; return "prop" } , z . propBlock = function ( e , t , n ) { return "}" == e ? c ( n ) : "word" == e ? ( m = "property" , "maybeprop" ) : n . context . type } , z . parens = function ( e , t , n ) { return "{" == e || "}" == e ? d ( e , t , n ) : ")" == e ? c ( n ) : "(" == e ? s ( n , t , "parens" ) : "interpolation" == e ? s ( n , t , "interpolation" ) : ( "word" == e && f ( t ) , "parens" ) } , z . pseudo = function ( e , t , n ) { return "word" == e ? ( m = "variable-3" , n . context . type ) : u ( e , t , n ) } , z . documentTypes = function ( e , t , n ) { return "word" == e && y . hasOwnProperty ( t . current ( ) ) ? ( m = "tag" , n . context . type ) : z . atBlock ( e , t , n ) } , z . atBlock = function ( e , t , n ) { if ( "(" == e ) return s ( n , t , "atBlock_parens" ) ; if ( "}" == e || ";" == e ) return d ( e , t , n ) ; if ( "{" == e ) return c ( n ) && s ( n , t , T ? "block" : "top" ) ; if ( "interpolation" == e ) return s ( n , t , "interpolation" ) ; if ( "word" == e ) { var r = t . current ( ) . toLowerCase ( ) ; m = "only" == r || "not" == r || "and" == r || "or" == r ? "keyword" : b . hasOwnProperty ( r ) ? "attribute" : x . hasOwnProperty ( r ) ? "property" : k . hasOwnProperty ( r ) ? "keyword" : _ . hasOwnProperty ( r ) ? "property" : w . hasOwnProperty ( r ) ? "string-2" : L . hasOwnProperty ( r ) ? "atom" : M . hasOwnProperty ( r ) ? "keyword" : "error" } return n . context . type } , z . atComponentBlock = function ( e , t , n ) { return "}" == e ? d ( e , t , n ) : "{" == e ? c ( n ) && s ( n , t , T ? "block" : "top" , ! 1 ) : ( "word" == e && ( m = "error" ) , n . context . type ) } , z . atBlock _parens = function ( e , t , n ) { return ")" == e ? c ( n ) : "{" == e || "}" == e ? d ( e , t , n , 2 ) : z . atBlock ( e , t , n ) } , z . restricted _atBlock _before = function ( e , t , n ) { return "{" == e ? s ( n , t , "restricted_atBlock" ) : "word" == e && "@counter-style" == n . stateArg ? ( m = "variable" , "restricted_atBlock_before" ) : u ( e , t , n ) } , z . restricted _atBlock = function ( e , t , n ) { return "}" == e ? ( n . stateArg = null , c ( n ) ) : "word" == e ? ( m = "@font-face" == n . stateArg && ! C . hasOwnProperty ( t . current ( ) . toLowerCase ( ) ) || "@counter-style" == n . stateArg && ! S . hasOwnProperty ( t . current ( ) . toLowerCase ( ) ) ? "error" : "property" , "maybeprop" ) : "restricted_atBlock" } , z . keyframes = function ( e , t , n ) { return "word" == e ? ( m = "variable" , "keyframes" ) : "{" == e ? s ( n , t , "top" ) : u ( e , t , n ) } , z . at = function ( e , t , n ) { return ";" == e ? c ( n ) : "{" == e || "}" == e ? d ( e , t , n ) : ( "word" == e ? m = "tag" : "hash" == e && ( m = "builtin" ) , "at" ) } , z . interpolation = function ( e , t , n ) { return "}" == e ? c ( n ) : "{" == e || ";" == e ? d ( e , t , n ) : ( "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 l ( p ? "block" : "top" , e || 0 , null ) } } , token : function ( e , t ) { if ( ! t . tokenize && e . eatSpace ( ) ) return null ; var n = ( t . tokenize || i ) ( e , t ) ; return n && "object" == typeof n && ( h = n [ 1 ] , n = n [ 0 ] ) , m = n , t . state = z [ t . state ] ( h , e , t ) , m } , indent : function ( e , t ) { var n = e . context , r = t && t . charAt ( 0 ) , i = n . indent ; return "prop" != n . type || "}" != r && ")" != r || ( n = n . prev ) , n . prev && ( "}" != r || "block" != n . type && "top" != n . type && "interpolation" != n . type && "restricted_atBlock" != n . type ? ( ")" == r && ( "parens" == n . type || "atBlock_parens" == n . type ) || "{" == r && ( "at" == n . type || "atBlock" == n . type ) ) && ( i = Math . max ( 0 , n . indent - g ) , n = n . prev ) : ( n = n . prev , i = n . indent ) ) , i } , electricChars : "}" , blockCommentStart : "/*" , blockCommentEnd : "*/" , fold : "brace" } } ) ; var r = [ "domain" , "regexp" , "url" , "url-prefix" ] , i = t ( r ) , o = [ "all" , "aural" , "braille" , "handheld" , "print" , "projection" , "screen" , "tty" , "tv" , "embossed" ] , a = t ( o ) , l = [ "width" , "min-width" , "max-width" , "height" , "min-height" , "max-height" , "device-width" , "min-device-width" , "max-device-width" , "device-height" , "min-device-height" , "max-device-height" , " aspec
typeFirstDefinitions : ! 0 , atoms : t ( "true false null" ) , hooks : { "#" : r , "*" : i , u : a , U : a , L : a , R : a , 0 : o , 1 : o , 2 : o , 3 : o , 4 : o , 5 : o , 6 : o , 7 : o , 8 : o , 9 : o , token : function ( e , t , n ) { return "variable" != n || "(" != e . peek ( ) || ";" != t . prevToken && null != t . prevToken && "}" != t . prevToken || ! l ( e . current ( ) ) ? void 0 : "def" } } , namespaceSeparator : "::" , modeProps : { fold : [ "brace" , "include" ] } } ) , u ( "text/x-java" , { name : "clike" , keywords : t ( "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 : t ( "byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void" ) , blockKeywords : t ( "catch class do else finally for if switch try while" ) , defKeywords : t ( "class interface package enum" ) , typeFirstDefinitions : ! 0 , atoms : t ( "true false null" ) , endStatement : /^[;:]$/ , hooks : { "@" : function ( e ) { return e . eatWhile ( /[\w\$_]/ ) , "meta" } } , modeProps : { fold : [ "brace" , "import" ] } } ) , u ( "text/x-csharp" , { name : "clike" , keywords : t ( "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 : t ( "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 : t ( "catch class do else finally for foreach if struct switch try while" ) , defKeywords : t ( "class interface namespace struct var" ) , typeFirstDefinitions : ! 0 , atoms : t ( "true false null" ) , hooks : { "@" : function ( e , t ) { return e . eat ( '"' ) ? ( t . tokenize = s , s ( e , t ) ) : ( e . eatWhile ( /[\w\$_]/ ) , "meta" ) } } } ) , u ( "text/x-scala" , { name : "clike" , keywords : t ( "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 : t ( "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq 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 Thread ThreadGroup ThreadLocal Throwable Triple Void" ) , multiLineStrings : ! 0 , blockKeywords : t ( "catch class do else finally for forSome if match switch try while" ) , defKeywords : t ( "class def object package trait type val var" ) , atoms : t ( "true false null" ) , indentStatements : ! 1 , indentSwitch : ! 1 , hooks : { "@" : function ( e ) { return e . eatWhile ( /[\w\$_]/ ) , "meta" } , '"' : function ( e , t ) { return e . match ( '""' ) ? ( t . tokenize = d , t . tokenize ( e , t ) ) : ! 1 } , "'" : function ( e ) { return e . eatWhile ( /[\w\$_\xa1-\uffff]/ ) , "atom" } } , modeProps : { closeBrackets : { triples : '"' } } } ) , u ( "text/x-kotlin" , { name : "clike" , keywords : t ( " package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when ! in ! is as ? file
2015-05-04 07:53:29 +00:00
2016-02-02 19:56:30 +00:00
var i = e . next ( ) , o = /\w/ ; return "{" === i && ( o = /[^}]/ ) , "(" === i ? ( t . tokens [ 0 ] = n ( ")" ) , r ( e , t ) ) : ( /\d/ . test ( i ) || ( e . eatWhile ( o ) , e . eat ( "}" ) ) , t . tokens . shift ( ) , "def" ) } ; return { startState : function ( ) { return { tokens : [ ] } } , token : function ( e , t ) { return r ( 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 = { } , n = e . split ( " " ) , r = 0 ; r < n . length ; ++ r ) t [ n [ r ] ] = ! 0 ; return t } function n ( e , t , i ) { return 0 == e . length ? r ( t ) : function ( o , a ) { for ( var l = e [ 0 ] , s = 0 ; s < l . length ; s ++ ) if ( o . match ( l [ s ] [ 0 ] ) ) return a . tokenize = n ( e . slice ( 1 ) , t ) , l [ s ] [ 1 ] ; return a . tokenize = r ( t , i ) , "string" } } function r ( e , t ) { return function ( n , r ) { return i ( n , r , e , t ) } } function i ( e , t , r , 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 = n ( [ [ [ "[" , null ] ] , [ [ /\d[\w\.]*/ , "number" ] , [ /\$[a-zA-Z_][a-zA-Z0-9_]*/ , "variable-2" ] , [ /[\w\$]+/ , "variable" ] ] , [ [ "]" , null ] ] ] , r , i ) ) , e . match ( /\-\>\w/ , ! 1 ) && ( t . tokenize = n ( [ [ [ "->" , null ] ] , [ [ /[\w]+/ , "variable" ] ] ] , r , 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 ( r ) ) { 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__" , l = " 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 ucfirst ucwords strtr addslashes addcslashes rtrim str _replace str _repeat count _chars chunk _split trim ltrim strip _tags similar _text explode implode setlocale localeconv parse _str str _pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse _url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell _exec proc _open proc _close rand srand getrandmax mt _rand mt _srand mt _getrandmax base64 _decode base64 _encode abs ceil floor round is _finite is _nan is _infinite bindec hexdec octdec decbin decoct dechex base _convert number _format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted _printable _decode set _time _limit get _cfg _var magic _quotes _runtime set _magic _quotes _runtime get _magic _quotes _gpc get _magic _quotes _runtime import _request _variables error _log serialize unserialize memory _get _usage var _dump var _export debug _zval _dump print _r highlight _file show _source highlight _string ini _get ini _get _all ini _set ini _alter ini _restore get _include _path set _include _path restore _includ
2016-01-17 20:28:04 +00:00
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" ) } ) } ( ) } ) , 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 . defineMode ( "coffeescript" , function ( e , t ) { function n ( e ) { return new RegExp ( "^((" + e . join ( ")|(" ) + "))\\b" ) } function r ( e , t ) { if ( e . sol ( ) ) { null === t . scope . align && ( t . scope . align = ! 1 ) ; var n = t . scope . offset ; if ( e . eatSpace ( ) ) { var r = e . indentation ( ) ; return r > n && "coffee" == t . scope . type ? "indent" : n > r ? "dedent" : null } n > 0 && l ( e , t ) } if ( e . eatSpace ( ) ) return null ; var a = e . peek ( ) ; if ( e . match ( "####" ) ) return e . skipToEnd ( ) , "comment" ; if ( e . match ( "###" ) ) return t . tokenize = o , t . tokenize ( e , t ) ; if ( "#" === a ) return e . skipToEnd ( ) , "comment" ; if ( e . match ( /^-?[0-9\.]/ , ! 1 ) ) { var s = ! 1 ; if ( e . match ( /^-?\d*\.\d+(e[\+\-]?\d+)?/i ) && ( s = ! 0 ) , e . match ( /^-?\d+\.\d*/ ) && ( s = ! 0 ) , e . match ( /^-?\.\d+/ ) && ( s = ! 0 ) , s ) return "." == e . peek ( ) && e . backUp ( 1 ) , "number" ; var m = ! 1 ; if ( e . match ( /^-?0x[0-9a-f]+/i ) && ( m = ! 0 ) , e . match ( /^-?[1-9]\d*(e[\+\-]?\d+)?/ ) && ( m = ! 0 ) , e . match ( /^-?0(?![\dx])/i ) && ( m = ! 0 ) , m ) return "number" } if ( e . match ( y ) ) return t . tokenize = i ( e . current ( ) , ! 1 , "string" ) , t . tokenize ( e , t ) ; if ( e . match ( b ) ) { if ( "/" != e . current ( ) || e . match ( /^.*\// , ! 1 ) ) return t . tokenize = i ( e . current ( ) , ! 0 , "string-2" ) , t . tokenize ( e , t ) ; e . backUp ( 1 ) } return e . match ( u ) || e . match ( h ) ? "operator" : e . match ( d ) ? "punctuation" : e . match ( k ) ? "atom" : e . match ( p ) || t . prop && e . match ( f ) ? "property" : e . match ( v ) ? "keyword" : e . match ( f ) ? "variable" : ( e . next ( ) , c ) } function i ( e , n , i ) { return function ( o , a ) { for ( ; ! o . eol ( ) ; ) if ( o . eatWhile ( /[^'"\/\\]/ ) , o . eat ( "\\" ) ) { if ( o . next ( ) , n && o . eol ( ) ) return i } else { if ( o . match ( e ) ) return a . tokenize = r , i ; o . eat ( /['"\/]/ ) } return n && ( t . singleLineStringErrors ? i = c : a . tokenize = r ) , i } } function o ( e , t ) { for ( ; ! e . eol ( ) ; ) { if ( e . eatWhile ( /[^#]/ ) , e . match ( "###" ) ) { t . tokenize = r ; break } e . eatWhile ( "#" ) } return "comment" } function a ( t , n , r ) { r = r || "coffee" ; for ( var i = 0 , o = ! 1 , a = null , l = n . scope ; l ; l = l . prev ) if ( "coffee" === l . type || "}" == l . type ) { i = l . offset + e . indentUnit ; break } "coffee" !== r ? ( o = null , a = t . column ( ) + t . current ( ) . length ) : n . scope . align && ( n . scope . align = ! 1 ) , n . scope = { offset : i , type : r , prev : n . scope , align : o , alignOffset : a } } function l ( e , t ) { if ( t . scope . prev ) { if ( "coffee" === t . scope . type ) { for ( var n = e . indentation ( ) , r = ! 1 , i = t . scope ; i ; i = i . prev ) if ( n === i . offset ) { r = ! 0 ; break } if ( ! r ) return ! 0 ; for ( ; t . scope . prev && t . scope . offset !== n ; ) t . scope = t . scope . prev ; return ! 1 } return t . scope = t . scope . prev , ! 1 } } function s ( e , t ) { var n = t . tokenize ( e , t ) , r = e . current ( ) ; "return" === r && ( t . dedent = ! 0 ) , ( ( "->" === r || "=>" === r ) && e . eol ( ) || "indent" === n ) && a ( e , t ) ; var i = "[({" . indexOf ( r ) ; if ( - 1 !== i && a ( e , t , "])}" . slice ( i , i + 1 ) ) , m . exec ( r ) && a ( e , t ) , "then" == r && l ( e , t ) , "dedent" === n && l ( e , t ) ) return c ; if ( i = "])}" . indexOf ( r ) , - 1 !== i ) { for ( ; "coffee" == t . scope . type && t . scope . prev ; ) t . scope = t . scope . prev ; t . scope . type == r && ( t . scope = t . scope . prev ) } return t . dedent && e . eol ( ) && ( "coffee" == t . scope . type && t . scope . prev && ( t . scope = t . scope . prev ) , t . dedent = ! 1 ) , n } var c = "error" , u = /^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/ , d = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/ , f = /^[_A-Za-z$][_A-Za-z$0-9]*/ , p = /^@[_A-Za-z$][_A-Za-z$0-9]*/ , h = n ( [ "and" , "or" , "not" , "is" , "isnt" , "in" , "instanceof" , "typeof" ] ) , m = [ "for" , "while" , "loop" , "if" , "unless" , "else" , "switch" , "try" , "catch" , "finally" , "class" ] , g = [ "break" , "by" , "continue" , "debugger" , "delete" , "do" , "in" , "of" , "new" , "return" , "then" , "this" , "@" , "throw" , "when" , "until" , "extends" ] , v = n ( m . concat ( g ) ) ; m = n ( m ) ; var y = /^('{3}|\"{3}|['\"])/ , b = /^(\/{3}|\/)/ , x = [ "Infinity" , "NaN" , "undefined" , "null" , "true" , "false" , "on" , "off" , "yes" , "no" ] , k = n ( x ) , _ = { startState : function ( e ) { return { tokenize : r , scope : { offset : e || 0 , type : "coffee" , prev : null , align : ! 1 } , prop : ! 1 , dedent : 0 } } , token : function ( e , t ) { var n = null === t . scope . align && t . scope ; n && e . sol ( ) && ( n . align = ! 1 ) ; var r = s ( e , t ) ; return r && "comment" != r && ( n && ( n . align = ! 0 ) , t . prop = "punctuation" == r && "." == e . current ( ) ) , r } , indent : fun
"**" : 4 , "=~" : 4 , "!~" : 4 , "*" : 4 , "/" : 4 , "%" : 4 , x : 4 , "+" : 4 , "-" : 4 , "." : 4 , "<<" : 4 , ">>" : 4 , "<" : 4 , ">" : 4 , "<=" : 4 , ">=" : 4 , lt : 4 , gt : 4 , le : 4 , ge : 4 , "==" : 4 , "!=" : 4 , "<=>" : 4 , eq : 4 , ne : 4 , cmp : 4 , "~~" : 4 , "&" : 4 , "|" : 4 , "^" : 4 , "&&" : 4 , "||" : 4 , "//" : 4 , ".." : 4 , "..." : 4 , "?" : 4 , ":" : 4 , "=" : 4 , "+=" : 4 , "-=" : 4 , "*=" : 4 , "," : 4 , "=>" : 4 , "::" : 4 , not : 4 , and : 4 , or : 4 , xor : 4 , BEGIN : [ 5 , 1 ] , END : [ 5 , 1 ] , PRINT : [ 5 , 1 ] , PRINTF : [ 5 , 1 ] , GETC : [ 5 , 1 ] , READ : [ 5 , 1 ] , READLINE : [ 5 , 1 ] , DESTROY : [ 5 , 1 ] , TIE : [ 5 , 1 ] , TIEHANDLE : [ 5 , 1 ] , UNTIE : [ 5 , 1 ] , STDIN : 5 , STDIN _TOP : 5 , STDOUT : 5 , STDOUT _TOP : 5 , STDERR : 5 , STDERR _TOP : 5 , $ARG : 5 , $ _ : 5 , "@ARG" : 5 , "@_" : 5 , $LIST _SEPARATOR : 5 , '$"' : 5 , $PROCESS _ID : 5 , $PID : 5 , $$ : 5 , $REAL _GROUP _ID : 5 , $GID : 5 , "$(" : 5 , $EFFECTIVE _GROUP _ID : 5 , $EGID : 5 , "$)" : 5 , $PROGRAM _NAME : 5 , $0 : 5 , $SUBSCRIPT _SEPARATOR : 5 , $SUBSEP : 5 , "$;" : 5 , $REAL _USER _ID : 5 , $UID : 5 , "$<" : 5 , $EFFECTIVE _USER _ID : 5 , $EUID : 5 , "$>" : 5 , $a : 5 , $b : 5 , $COMPILING : 5 , "$^C" : 5 , $DEBUGGING : 5 , "$^D" : 5 , "${^ENCODING}" : 5 , $ENV : 5 , "%ENV" : 5 , $SYSTEM _FD _MAX : 5 , "$^F" : 5 , "@F" : 5 , "${^GLOBAL_PHASE}" : 5 , "$^H" : 5 , "%^H" : 5 , "@INC" : 5 , "%INC" : 5 , $INPLACE _EDIT : 5 , "$^I" : 5 , "$^M" : 5 , $OSNAME : 5 , "$^O" : 5 , "${^OPEN}" : 5 , $PERLDB : 5 , "$^P" : 5 , $SIG : 5 , "%SIG" : 5 , $BASETIME : 5 , "$^T" : 5 , "${^TAINT}" : 5 , "${^UNICODE}" : 5 , "${^UTF8CACHE}" : 5 , "${^UTF8LOCALE}" : 5 , $PERL _VERSION : 5 , "$^V" : 5 , "${^WIN32_SLOPPY_STAT}" : 5 , $EXECUTABLE _NAME : 5 , "$^X" : 5 , $1 : 5 , $MATCH : 5 , "$&" : 5 , "${^MATCH}" : 5 , $PREMATCH : 5 , "$`" : 5 , "${^PREMATCH}" : 5 , $POSTMATCH : 5 , "$'" : 5 , "${^POSTMATCH}" : 5 , $LAST _PAREN _MATCH : 5 , "$+" : 5 , $LAST _SUBMATCH _RESULT : 5 , "$^N" : 5 , "@LAST_MATCH_END" : 5 , "@+" : 5 , "%LAST_PAREN_MATCH" : 5 , "%+" : 5 , "@LAST_MATCH_START" : 5 , "@-" : 5 , "%LAST_MATCH_START" : 5 , "%-" : 5 , $LAST _REGEXP _CODE _RESULT : 5 , "$^R" : 5 , "${^RE_DEBUG_FLAGS}" : 5 , "${^RE_TRIE_MAXBUF}" : 5 , $ARGV : 5 , "@ARGV" : 5 , ARGV : 5 , ARGVOUT : 5 , $OUTPUT _FIELD _SEPARATOR : 5 , $OFS : 5 , "$," : 5 , $INPUT _LINE _NUMBER : 5 , $NR : 5 , "$." : 5 , $INPUT _RECORD _SEPARATOR : 5 , $RS : 5 , "$/" : 5 , $OUTPUT _RECORD _SEPARATOR : 5 , $ORS : 5 , "$\\" : 5 , $OUTPUT _AUTOFLUSH : 5 , "$|" : 5 , $ACCUMULATOR : 5 , "$^A" : 5 , $FORMAT _FORMFEED : 5 , "$^L" : 5 , $FORMAT _PAGE _NUMBER : 5 , "$%" : 5 , $FORMAT _LINES _LEFT : 5 , "$-" : 5 , $FORMAT _LINE _BREAK _CHARACTERS : 5 , "$:" : 5 , $FORMAT _LINES _PER _PAGE : 5 , "$=" : 5 , $FORMAT _TOP _NAME : 5 , "$^" : 5 , $FORMAT _NAME : 5 , "$~" : 5 , "${^CHILD_ERROR_NATIVE}" : 5 , $EXTENDED _OS _ERROR : 5 , "$^E" : 5 , $EXCEPTIONS _BEING _CAUGHT : 5 , "$^S" : 5 , $WARNING : 5 , "$^W" : 5 , "${^WARNING_BITS}" : 5 , $OS _ERROR : 5 , $ERRNO : 5 , "$!" : 5 , "%OS_ERROR" : 5 , "%ERRNO" : 5 , "%!" : 5 , $CHILD _ERROR : 5 , "$?" : 5 , $EVAL _ERROR : 5 , "$@" : 5 , $OFMT : 5 , "$#" : 5 , "$*" : 5 , $ARRAY _BASE : 5 , "$[" : 5 , $OLD _PERL _VERSION : 5 , "$]" : 5 , "if" : [ 1 , 1 ] , elsif : [ 1 , 1 ] , "else" : [ 1 , 1 ] , "while" : [ 1 , 1 ] , unless : [ 1 , 1 ] , "for" : [ 1 , 1 ] , foreach : [ 1 , 1 ] , abs : 1 , accept : 1 , alarm : 1 , atan2 : 1 , bind : 1 , binmode : 1 , bless : 1 , bootstrap : 1 , "break" : 1 , caller : 1 , chdir : 1 , chmod : 1 , chomp : 1 , chop : 1 , chown : 1 , chr : 1 , chroot : 1 , close : 1 , closedir : 1 , connect : 1 , "continue" : [ 1 , 1 ] , cos : 1 , crypt : 1 , dbmclose : 1 , dbmopen : 1 , "default" : 1 , defined : 1 , "delete" : 1 , die : 1 , "do" : 1 , dump : 1 , each : 1 , endgrent : 1 , endhostent : 1 , endnetent : 1 , endprotoent : 1 , endpwent : 1 , endservent : 1 , eof : 1 , eval : 1 , exec : 1 , exists : 1 , exit : 1 , exp : 1 , fcntl : 1 , fileno : 1 , flock : 1 , fork : 1 , format : 1 , formline : 1 , getc : 1 , getgrent : 1 , getgrgid : 1 , getgrnam : 1 , gethostbyaddr : 1 , gethostbyname : 1 , gethostent : 1 , getlogin : 1 , getnetbyaddr : 1 , getnetbyname : 1 , getnetent : 1 , getpeername : 1 , getpgrp : 1 , getppid : 1 , getpriority : 1 , getprotobyname : 1 , getprotobynumber : 1 , getprotoent : 1 , getpwent : 1 , getpwnam : 1 , getpwuid : 1 , getservbyname : 1 , getservbyport : 1 , getservent : 1 , getsockname : 1 , getsockopt : 1 , given : 1 , glob : 1 , gmtime : 1 , "goto" : 1 , grep : 1 , hex : 1 , "import" : 1 , index : 1 , "int" : 1 , ioctl : 1 , join : 1 , keys : 1 , kill : 1 , last : 1 , lc : 1 , lcfirst : 1 , length : 1 , link : 1 , listen : 1 , local : 2 , localtime : 1 , lock : 1 , log : 1 , lstat : 1 , m : null , map : 1 , mkdir : 1 , msgctl : 1 , msgget : 1 , msgrcv : 1 , msgsnd : 1 , my : 2 , "new" : 1 , next : 1 , no : 1 , oct : 1 , open : 1 , opendir : 1 , ord : 1 , our : 2 , pack : 1 , "package" : 1 , pipe : 1 , pop : 1 , pos : 1 , print : 1 , printf : 1 , prototype : 1 , push : 1 , q : null , qq : null , qr : null , quotemeta : null , qw : null , qx : null , rand : 1 , read : 1 , readdir : 1 , readline : 1 , readlink : 1 , readpipe : 1 , recv : 1 , redo : 1 , ref : 1 , rename : 1 , require : 1 , reset : 1 , "return" : 1 , reverse : 1 , rewinddir : 1 , rindex : 1 , rmdir : 1 , s : null , say : 1 , scalar : 1 , seek : 1 , seekdir : 1 , select : 1 , semctl : 1 , semget : 1 , semop : 1 , send : 1 , setgrent : 1 , sethostent : 1 , setnetent : 1 , setpgrp : 1 , setpriority : 1 , setprotoent : 1 , setpwent : 1 , setservent : 1 , setsockopt : 1 , shift : 1 , shmctl : 1 , shmget : 1 , shmread : 1 , shmwrite : 1 , shutdown : 1 , sin : 1 , sleep : 1 , socket : 1 , socketpair : 1 , sort : 1 , splice : 1 , split