2016-11-18 04:17:37 +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 ? Wi ( r ) : { } , Wi ( ra , r , ! 1 ) , p ( r ) ; var i = r . value ; "string" == typeof i && ( i = new La ( 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 ) , s ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! Oo && 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 ; wo && _o < 11 && setTimeout ( function ( ) { l . display . input . reset ( ! 0 ) } , 20 ) , $t ( this ) , Qi ( ) , wt ( this ) , this . curOp . forceUpdate = ! 0 , Qr ( this , i ) , r . autofocus && ! Oo || l . hasFocus ( ) ? setTimeout ( Di ( bn , this ) , 20 ) : kn ( this ) ; for ( var u in ia ) ia . hasOwnProperty ( u ) && ia [ u ] ( this , r [ u ] , oa ) ; w ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < ca . length ; ++ f ) ca [ f ] ( this ) ; Ct ( this ) , Co && 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 = Ui ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = Ui ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = Ui ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = Ui ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = Ui ( "div" , null , "CodeMirror-cursors" ) , r . measure = Ui ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = Ui ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = Ui ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = Ui ( "div" , [ Ui ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = Ui ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = Ui ( "div" , null , null , "position: absolute; height: " + ja + "px; width: 1px;" ) , r . gutters = Ui ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = Ui ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = Ui ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , wo && _o < 8 && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , Co || bo && Oo || ( 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 && Rt ( e ) } function i ( e ) { e . options . lineWrapping ? ( ts ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( es ( e . display . wrapper , "CodeMirror-wrap" ) , d ( e ) ) , a ( e ) , Rt ( e ) , ct ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = kt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / xt ( e . display ) - 3 ) ; return function ( i ) { if ( Cr ( 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 && ni ( e , t ) } ) } function s ( e ) { e . d
t . hasHeights || ( Ze ( e , t . view , t . rect ) , t . hasHeights = ! 0 ) , o = ot ( e , t , n , r ) , 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 rt ( e , t , n ) { for ( var r , i , o , a , s = 0 ; s < e . length ; s += 3 ) { var l = e [ s ] , c = e [ s + 1 ] ; if ( t < l ? ( i = 0 , o = 1 , a = "left" ) : t < c ? ( 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 ( r = e [ s + 2 ] , l == c && n == ( r . insertLeft ? "left" : "right" ) && ( a = n ) , "left" == n && 0 == i ) for ( ; s && e [ s - 2 ] == e [ s - 3 ] && e [ s - 1 ] . insertLeft ; ) r = e [ ( s -= 3 ) + 2 ] , a = "left" ; if ( "right" == n && i == c - l ) for ( ; s < e . length - 3 && e [ s + 3 ] == e [ s + 4 ] && ! e [ s + 5 ] . insertLeft ; ) r = e [ ( s += 3 ) + 2 ] , a = "right" ; break } } return { node : r , start : i , end : o , collapse : a , coverStart : l , coverEnd : c } } function it ( e , t ) { var n = Vo ; if ( "left" == t ) for ( var r = 0 ; r < e . length && ( n = e [ r ] ) . left == n . right ; r ++ ) ; else for ( var r = e . length - 1 ; r >= 0 && ( n = e [ r ] ) . left == n . right ; r -- ) ; return n } function ot ( e , t , n , r ) { var i , o = rt ( t . map , n , r ) , a = o . node , s = o . start , l = o . end , c = o . collapse ; if ( 3 == a . nodeType ) { for ( var u = 0 ; u < 4 ; u ++ ) { for ( ; s && $i ( t . line . text . charAt ( o . coverStart + s ) ) ; ) -- s ; for ( ; o . coverStart + l < o . coverEnd && $i ( t . line . text . charAt ( o . coverStart + l ) ) ; ) ++ l ; if ( i = wo && _o < 9 && 0 == s && l == o . coverEnd - o . coverStart ? a . parentNode . getBoundingClientRect ( ) : it ( Va ( a , s , l ) . getClientRects ( ) , r ) , i . left || i . right || 0 == s ) break ; l = s , s -= 1 , c = "right" } wo && _o < 11 && ( i = at ( e . display . measure , i ) ) } else { s > 0 && ( c = r = "right" ) ; var f ; i = e . options . lineWrapping && ( f = a . getClientRects ( ) ) . length > 1 ? f [ "right" == r ? f . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( wo && _o < 9 && ! s && ( ! i || ! i . left && ! i . right ) ) { var d = a . parentNode . getClientRects ( ) [ 0 ] ; i = d ? { left : d . left , right : d . left + xt ( e . display ) , top : d . top , bottom : d . bottom } : Vo } 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 at ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! no ( 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 st ( 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 , Ki ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) st ( e . display . view [ t ] ) } function ct ( 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 ut ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ft ( ) { 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 = Lr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = oi ( t ) ; if ( "local" == r ? a += $e ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var s = e . display . lineSpace . getBoundingClientRect ( ) ; a += s . top + ( "window" == r ? 0 : ft ( ) ) ; var l = s . left + ( "window" == r ? 0 : ut ( ) ) ; n . left += l , n . right += l } return n . top += a , n . bottom += a , n } function pt ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= ut ( ) , i -= ft ( ) ; 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 ht ( e , t , n , r , i ) { return r || ( r = Jr ( e . doc , t . line ) ) , dt ( e , r , Je ( e , r , t . ch , i ) , n ) } function mt ( e , t , n , r , i , o ) { function a ( t , a ) { var s = nt ( e , i , t , a ? "right" : "left" , o ) ; return a ? s . left = s . right : s . right = s . left , dt ( e , r , s , n ) } function s ( e , t ) { var n = l [ t ] , r = n . level % 2 ; return e == io ( n ) && t && n . level < l [ t - 1 ] . level ? ( n = l [ -- t ] , e = oo ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == oo ( n ) && t < l . length - 1 && n . level < l [ t + 1 ] . level && ( n = l [ ++ t ] , e = io ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Jr ( e . doc , t . line ) , i || ( i = tt ( e , r ) ) ; var l = ai ( r ) , c = t . ch ; if ( ! l ) return a ( c ) ; var u = po ( l , c ) , f = s ( c , u ) ; return null != cs && ( f . other
if ( n < s ) c . scrollTop = f ? 0 : n ; else if ( i > s + l ) { var p = Math . min ( n , ( d ? u : i ) - l ) ; p != s && ( c . scrollTop = p ) } var h = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . scroller . scrollLeft , m = Ge ( e ) - ( e . options . fixedGutter ? o . gutters . offsetWidth : 0 ) , g = r - t > m ; return g && ( r = t + m ) , t < 10 ? c . scrollLeft = 0 : t < h ? c . scrollLeft = Math . max ( 0 , t - ( g ? 0 : 10 ) ) : r > m + h - 3 && ( c . scrollLeft = r + ( g ? 0 : 10 ) - m ) , c } function Fn ( e , t , n ) { null == t && null == n || Dn ( e ) , null != t && ( e . curOp . scrollLeft = ( null == e . curOp . scrollLeft ? e . doc . scrollLeft : e . curOp . scrollLeft ) + t ) , null != n && ( e . curOp . scrollTop = ( null == e . curOp . scrollTop ? e . doc . scrollTop : e . curOp . scrollTop ) + n ) } function Wn ( e ) { Dn ( e ) ; var t = e . getCursor ( ) , n = t , r = t ; e . options . lineWrapping || ( n = t . ch ? Do ( t . line , t . ch - 1 ) : t , r = Do ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : n , to : r , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function Dn ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var n = gt ( e , t . from ) , r = gt ( e , t . to ) , i = jn ( 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 Bn ( e , t , n , r ) { var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = He ( e , t ) : n = "prev" ) ; var a = e . options . tabSize , s = Jr ( o , t ) , l = Ha ( s . text , null , a ) ; s . stateAfter && ( s . stateAfter = null ) ; var c , u = s . text . match ( /^\s*/ ) [ 0 ] ; if ( r || /\S/ . test ( s . text ) ) { if ( "smart" == n && ( c = o . mode . indent ( i , s . text . slice ( u . length ) , s . text ) , c == Fa || c > 150 ) ) { if ( ! r ) return ; n = "prev" } } else c = 0 , n = "not" ; "prev" == n ? c = t > o . first ? Ha ( Jr ( o , t - 1 ) . text , null , a ) : 0 : "add" == n ? c = l + e . options . indentUnit : "subtract" == n ? c = l - e . options . indentUnit : "number" == typeof n && ( c = l + n ) , c = Math . max ( 0 , c ) ; var f = "" , d = 0 ; if ( e . options . indentWithTabs ) for ( var p = Math . floor ( c / a ) ; p ; -- p ) d += a , f += "\t" ; if ( d < c && ( f += Ii ( c - d ) ) , f != u ) return Nn ( o , f , 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 d = Do ( t , u . length ) ; _e ( o , p , new de ( d , d ) ) ; break } } } function Hn ( e , t , n , r ) { var i = t , o = t ; return "number" == typeof t ? o = Jr ( e , me ( e , t ) ) : i = ri ( t ) , null == i ? null : ( r ( o , i ) && e . cm && jt ( 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 && Bo ( o . from , Ni ( r ) . to ) <= 0 ; ) { var a = r . pop ( ) ; if ( Bo ( 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 -- ) Nn ( e . doc , "" , r [ t ] . from , r [ t ] . to , "+delete" ) ; Wn ( e ) } ) } function Un ( e , t , n , r , i ) { function o ( ) { var t = s + n ; return ! ( t < e . first || t >= e . first + e . size ) && ( s = t , u = Jr ( e , t ) ) } function a ( e ) { var t = ( i ? mo : go ) ( u , l , n , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; l = i ? ( n < 0 ? so : ao ) ( u ) : n < 0 ? u . text . length : 0 } else l = t ; return ! 0 } var s = t . line , l = t . ch , c = n , u = Jr ( e , s ) ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var f = null , d = "group" == r , p = e . cm && e . cm . getHelper ( t , "wordChars" ) , h = ! 0 ; ! ( n < 0 ) || a ( ! h ) ; h = ! 1 ) { var m = u . text . charAt ( l ) || "\n" , g = Bi ( m , p ) ? "w" : d && "\n" == m ? "n" : ! d || /\s/ . test ( m ) ? null : "p" ; if ( ! d || h || g || ( g = "s" ) , f && f != g ) { n < 0 && ( n = 1 , a ( ) ) ; break } if ( g && ( f = g ) , n > 0 && ! a ( ! h ) ) break } var v = Ie ( e , Do ( s , l ) , t , c , ! 0 ) ; return Bo ( t , v ) || ( v . hitSide = ! 0 ) , v } function Kn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var s = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) , l = Math . max ( s - . 5 * kt ( e . display ) , 3 ) ; i = ( n > 0 ? t . bottom : t . top ) + n * l } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var c = yt ( e , a , i ) ; if ( ! c . outside ) break ; if ( n < 0 ? i <= 0 : i >= o . height ) { c . hitSide = ! 0 ; break } i += 5 * n } return c } function Vn ( t , n , r , i ) { e . defaults [ t ] = n , r && ( ia [ t ] = i ? function ( e , t , n ) { n != oa && 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 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 ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( s ) ) throw new Error ( "Unrecognized modifier name: " + s ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function Xn ( e ) { return "string" == typeof e ? ha [ e ] : e } function Zn ( e , t , n , r , i ) { if ( r && r . shared ) return Yn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return Ot ( e . cm , Zn ) ( e , t , n , r , i ) ; var o = new ka ( e , i ) , a = Bo ( t , n ) ; if ( r && Wi ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetN
{ right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Io && ! Ao ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , this . disableHoriz = new Oi , this . disableVert = new Oi } , enableZeroWidthBar : function ( e , t ) { function n ( ) { var r = e . getBoundingClientRect ( ) , i = document . elementFromPoint ( r . left + 1 , r . bottom - 1 ) ; i != e ? e . style . pointerEvents = "none" : t . set ( 1e3 , n ) } e . style . pointerEvents = "auto" , t . set ( 1e3 , n ) } , clear : function ( ) { var e = this . horiz . parentNode ; e . removeChild ( this . horiz ) , e . removeChild ( this . vert ) } } , m . prototype ) , g . prototype = Wi ( { 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 ) { Ei ( e , t ) && this . events . push ( arguments ) } , S . prototype . finish = function ( ) { for ( var e = 0 ; e < this . events . length ; e ++ ) Pa . 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 } , Ho = null ; re . prototype = Wi ( { init : function ( e ) { function t ( e ) { if ( ! Ti ( r , e ) ) { if ( r . somethingSelected ( ) ) Ho = { lineWise : ! 1 , text : r . getSelections ( ) } , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Ho . text . join ( "\n" ) , Ka ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = te ( r ) ; Ho = { lineWise : ! 0 , text : t . text } , "cut" == e . type ? r . setSelections ( t . ranges , null , Wa ) : ( n . prevInput = "" , o . value = t . text . join ( "\n" ) , Ka ( 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 ) , zo && ( o . style . width = "0px" ) , Ia ( o , "input" , function ( ) { wo && _o >= 9 && n . hasSelection && ( n . hasSelection = null ) , n . poll ( ) } ) , Ia ( o , "paste" , function ( e ) { Ti ( r , e ) || J ( e , r ) || ( r . state . pasteIncoming = ! 0 , n . fastPoll ( ) ) } ) , Ia ( o , "cut" , t ) , Ia ( o , "copy" , t ) , Ia ( e . scroller , "paste" , function ( t ) { Vt ( e , t ) || Ti ( r , t ) || ( r . state . pasteIncoming = ! 0 , n . focus ( ) ) } ) , Ia ( e . lineSpace , "selectstart" , function ( t ) { Vt ( e , t ) || Ea ( t ) } ) , Ia ( 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" } ) } } ) , Ia ( 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 = Pe ( e ) ; if ( e . options . moveInputWithCursor ) { var i = mt ( 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 ; Vi ( n . cursorDiv , e . cursors ) , Vi ( 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 = as && ( 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 && Ka ( this . textarea ) , wo && _o >= 9 && ( this . hasSelection = a ) } else e || ( this . composing || ( this . prevInput = this . textarea . value = "" ) , wo && _o >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! Oo || Gi ( ) != 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 (
e . indentSelection ( "smart" ) } , indentMore : function ( e ) { e . indentSelection ( "add" ) } , indentLess : function ( e ) { e . indentSelection ( "subtract" ) } , insertTab : function ( e ) { e . replaceSelection ( "\t" ) } , insertSoftTab : function ( e ) { for ( var t = [ ] , n = e . listSelections ( ) , r = e . options . tabSize , i = 0 ; i < n . length ; i ++ ) { var o = n [ i ] . from ( ) , a = Ha ( e . getLine ( o . line ) , o . ch , r ) ; t . push ( Ii ( r - a % r ) ) } e . replaceSelections ( t ) } , defaultTab : function ( e ) { e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { zt ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Jr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new Do ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new Do ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , Do ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var a = Jr ( e . doc , i . line - 1 ) . text ; a && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + a . charAt ( a . length - 1 ) , Do ( i . line - 1 , a . length - 1 ) , Do ( i . line , 1 ) , "+transpose" ) } n . push ( new de ( i , i ) ) } e . setSelections ( n ) } ) } , newlineAndIndent : function ( e ) { zt ( e , function ( ) { for ( var t = e . listSelections ( ) . length , n = 0 ; n < t ; n ++ ) { var r = e . listSelections ( ) [ n ] ; e . replaceRange ( e . doc . lineSeparator ( ) , r . anchor , r . head , "+input" ) , e . indentLine ( r . from ( ) . line + 1 , null , ! 0 ) } Wn ( e ) } ) } , openLine : function ( e ) { e . replaceSelection ( "\n" , "start" ) } , toggleOverwrite : function ( e ) { e . toggleOverwrite ( ) } } , ha = e . keyMap = { } ; ha . 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" } , ha . 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" } , ha . 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" , "Ctrl-O" : "openLine" } , ha . 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" ] } , ha [ "default" ] = Io ? ha . macDefault : ha . 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 , s ; o == i . length - 1 ? ( s = i . join ( " " ) , a = r ) : ( 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 [ n ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var ma = e . lookupKey = function ( e , t , n , r ) { t = Xn ( t ) ; var i = t . call ? t . call ( e , r ) : t [ e ] ; if ( i === ! 1 ) retu
2016-10-10 13:15:29 +00:00
u . token [ 0 ] } return u . token && u . token . join ? u . token [ 0 ] : u . token } } return n . next ( ) , null } } function a ( e , t ) { if ( e === t ) return ! 0 ; if ( ! e || "object" != typeof e || ! t || "object" != typeof t ) return ! 1 ; var n = 0 ; for ( var r in e ) if ( e . hasOwnProperty ( r ) ) { if ( ! t . hasOwnProperty ( r ) || ! a ( e [ r ] , t [ r ] ) ) return ! 1 ; n ++ } for ( var r in t ) t . hasOwnProperty ( r ) && n -- ; return 0 == n } function s ( t , r , i , o ) { var s ; if ( i . persistent ) for ( var l = r . persistentStates ; l && ! s ; l = l . next ) ( i . spec ? a ( i . spec , l . spec ) : i . mode == l . mode ) && ( s = l ) ; var c = s ? s . mode : i . mode || e . getMode ( t , i . spec ) , u = s ? s . state : e . startState ( c ) ; i . persistent && ! s && ( r . persistentStates = { mode : c , spec : i . spec , state : u , next : r . persistentStates } ) , r . localState = u , r . local = { mode : c , end : i . end && n ( i . end ) , endScan : i . end && i . forceEnd !== ! 1 && n ( i . end , ! 1 ) , endToken : o && o . join ? o [ o . length - 1 ] : o } } function l ( e , t ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( t [ n ] === e ) return ! 0 } function c ( t , n ) { return function ( r , i , o ) { if ( r . local && r . local . mode . indent ) return r . local . mode . indent ( r . localState , i , o ) ; if ( null == r . indent || r . local || n . dontIndentStates && l ( r . state , n . dontIndentStates ) > - 1 ) return e . Pass ; var a = r . indent . length - 1 , s = t [ r . state ] ; e : for ( ; ; ) { for ( var c = 0 ; c < s . length ; c ++ ) { var u = s [ c ] ; if ( u . data . dedent && u . data . dedentIfLineStart !== ! 1 ) { var f = u . regex . exec ( i ) ; if ( f && f [ 0 ] ) { a -- , ( u . next || u . push ) && ( s = t [ u . next || u . push ] ) , i = i . slice ( f [ 0 ] . length ) ; continue e } } } break } return a < 0 ? 0 : r . indent [ a ] } } e . defineSimpleMode = function ( t , n ) { e . defineMode ( t , function ( t ) { return e . simpleMode ( t , n ) } ) } , e . simpleMode = function ( n , r ) { t ( r , "start" ) ; var a = { } , s = r . meta || { } , l = ! 1 ; for ( var u in r ) if ( u != s && r . hasOwnProperty ( u ) ) for ( var f = a [ u ] = [ ] , d = r [ u ] , p = 0 ; p < d . length ; p ++ ) { var h = d [ p ] ; f . push ( new i ( h , r ) ) , ( 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 n = { 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 , 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 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 , s = i . string ; if ( ! a . close && i . sol ( ) ) return o . innerActive = o . inner = null , this . token ( i , o ) ; var l = a . close ? n ( 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 , f = 0 ; f < r . length ; ++ f ) { var d = r [ f ] , l = n ( s , d . open , i . pos ) ; if ( l == i . pos ) return d . parseDelimiters || i . match ( d . open ) , o . innerActive = d , o . inner = e . startState ( d . mode , t . indent ? t . indent ( o . outer , "" ) : 0 ) , d . delimStyle && d . delimStyle + " " + d . delimStyle + "-open" ; l != - 1 && l < u && ( 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 ( 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 &&
} ) , o . closeOnBlur !== ! 1 && e . on ( f , "blur" , a ) ) : ( s = l . getElementsByTagName ( "button" ) [ 0 ] ) && ( e . on ( s , "click" , function ( ) { a ( ) , u . focus ( ) } ) , o . closeOnBlur !== ! 1 && e . on ( s , "blur" , a ) , s . focus ( ) ) , a } ) , e . defineExtension ( "openConfirm" , function ( r , i , o ) { function a ( ) { c || ( c = ! 0 , s . parentNode . removeChild ( s ) , u . focus ( ) ) } n ( this , null ) ; var s = t ( this , r , o && o . bottom ) , l = s . getElementsByTagName ( "button" ) , c = ! 1 , u = this , f = 1 ; l [ 0 ] . focus ( ) ; for ( var d = 0 ; d < l . length ; ++ d ) { var p = l [ d ] ; ! function ( t ) { e . on ( p , "click" , function ( n ) { e . e _preventDefault ( n ) , a ( ) , t && t ( u ) } ) } ( i [ d ] ) , e . on ( p , "blur" , function ( ) { -- f , setTimeout ( function ( ) { f <= 0 && a ( ) } , 200 ) } ) , e . on ( p , "focus" , function ( ) { ++ f } ) } } ) , e . defineExtension ( "openNotification" , function ( r , i ) { function o ( ) { l || ( l = ! 0 , clearTimeout ( a ) , s . parentNode . removeChild ( s ) ) } n ( this , o ) ; var a , s = t ( this , r , i && i . bottom ) , l = ! 1 , c = i && "undefined" != typeof i . duration ? i . duration : 5e3 ; return e . on ( s , "click" , function ( t ) { e . e _preventDefault ( t ) , o ( ) } ) , c && ( a = setTimeout ( o , c ) ) , o } ) } ) , 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 , r , i ) { var o = e . getLineHandle ( t . line ) , l = t . ch - 1 , c = l >= 0 && s [ o . text . charAt ( l ) ] || s [ o . text . charAt ( ++ l ) ] ; if ( ! c ) return null ; var u = ">" == c . charAt ( 1 ) ? 1 : - 1 ; if ( r && u > 0 != ( l == t . ch ) ) return null ; var f = e . getTokenTypeAt ( a ( t . line , l + 1 ) ) , d = n ( e , a ( t . line , l + ( u > 0 ? 1 : 0 ) ) , u , f || null , i ) ; return null == d ? null : { from : a ( t . line , l ) , to : d && d . pos , match : d && d . ch == c . charAt ( 0 ) , forward : u > 0 } } function n ( e , t , n , r , i ) { for ( var o = i && i . maxScanLineLength || 1e4 , l = i && i . maxScanLines || 1e3 , c = [ ] , u = i && i . bracketRegex ? i . bracketRegex : /[(){}[\]]/ , f = n > 0 ? Math . min ( t . line + l , e . lastLine ( ) + 1 ) : Math . max ( e . firstLine ( ) - 1 , t . line - l ) , d = t . line ; d != f ; d += n ) { var p = e . getLine ( d ) ; if ( p ) { var h = n > 0 ? 0 : p . length - 1 , m = n > 0 ? p . length : - 1 ; if ( ! ( p . length > o ) ) for ( d == t . line && ( h = t . ch - ( n < 0 ? 1 : 0 ) ) ; h != m ; h += n ) { var g = p . charAt ( h ) ; if ( u . test ( g ) && ( void 0 === r || e . getTokenTypeAt ( a ( d , h + 1 ) ) == r ) ) { var v = s [ g ] ; if ( ">" == v . charAt ( 1 ) == n > 0 ) c . push ( g ) ; else { if ( ! c . length ) return { pos : a ( d , h ) , ch : g } ; c . pop ( ) } } } } } return d - n != ( n > 0 ? e . lastLine ( ) : e . firstLine ( ) ) && null } function r ( e , n , r ) { 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 , r ) ; if ( u && e . getLine ( u . from . line ) . length <= i ) { var f = u . match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket" ; s . push ( e . markText ( u . from , a ( u . from . line , u . from . ch + 1 ) , { className : f } ) ) , u . to && e . getLine ( u . to . line ) . length <= i && s . push ( e . markText ( u . to , a ( u . to . line , u . to . ch + 1 ) , { className : f } ) ) } } if ( s . length ) { o && e . state . focused && e . focus ( ) ; var d = function ( ) { e . operation ( function ( ) { for ( var e = 0 ; e < s . length ; e ++ ) s [ e ] . clear ( ) } ) } ; if ( ! n ) return d ; setTimeout ( d , 800 ) } } function i ( e ) { e . operation ( function ( ) { l && ( l ( ) , l = null ) , l = r ( 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 , n , r ) { r && r != e . Init && ( t . off ( "cursorActivity" , i ) , l && ( l ( ) , l = null ) ) , 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 ] : f [ t ] } function n ( e ) { return function ( t ) { return s ( 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 ( ) , s = 0 ; s < a . length ; s ++ ) { if ( ! a [ s ] . empty ( ) ) return e . Pass ; var l = c ( n , 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 ; n . replaceRange ( "" , d ( u . lin
2016-11-18 04:17:37 +00:00
h5 : ! 0 , h6 : ! 0 , header : ! 0 , hgroup : ! 0 , hr : ! 0 , menu : ! 0 , nav : ! 0 , ol : ! 0 , p : ! 0 , pre : ! 0 , section : ! 0 , table : ! 0 , ul : ! 0 } , rp : { rp : ! 0 , rt : ! 0 } , rt : { rp : ! 0 , rt : ! 0 } , tbody : { tbody : ! 0 , tfoot : ! 0 } , td : { td : ! 0 , th : ! 0 } , tfoot : { tbody : ! 0 } , th : { td : ! 0 , th : ! 0 } , thead : { tbody : ! 0 , tfoot : ! 0 } , tr : { tr : ! 0 } } , doNotIndent : { pre : ! 0 } , allowUnquoted : ! 0 , allowMissing : ! 0 , caseFold : ! 0 } , n = { autoSelfClosers : { } , implicitlyClosed : { } , contextGrabbers : { } , doNotIndent : { } , allowUnquoted : ! 1 , allowMissing : ! 1 , caseFold : ! 1 } ; e . defineMode ( "xml" , function ( r , i ) { function o ( e , t ) { function n ( n ) { return t . tokenize = n , n ( e , t ) } var r = e . next ( ) ; if ( "<" == r ) return e . eat ( "!" ) ? e . eat ( "[" ) ? e . match ( "CDATA[" ) ? n ( l ( "atom" , "]]>" ) ) : null : e . match ( "--" ) ? n ( l ( "comment" , "-->" ) ) : e . match ( "DOCTYPE" , ! 0 , ! 0 ) ? ( e . eatWhile ( /[\w\._\-]/ ) , n ( c ( 1 ) ) ) : null : e . eat ( "?" ) ? ( e . eatWhile ( /[\w\._\-]/ ) , t . tokenize = l ( "meta" , "?>" ) , "meta" ) : ( M = e . eat ( "/" ) ? "closeTag" : "openTag" , t . tokenize = a , "tag bracket" ) ; if ( "&" == r ) { var i ; return i = e . eat ( "#" ) ? e . eat ( "x" ) ? e . eatWhile ( /[a-fA-F\d]/ ) && e . eat ( ";" ) : e . eatWhile ( /[\d]/ ) && e . eat ( ";" ) : e . eatWhile ( /[\w\.\-:]/ ) && e . eat ( ";" ) , i ? "atom" : "error" } return e . eatWhile ( /[^&<]/ ) , null } function a ( e , t ) { var n = e . next ( ) ; if ( ">" == n || "/" == n && e . eat ( ">" ) ) return t . tokenize = o , M = ">" == n ? "endTag" : "selfcloseTag" , "tag bracket" ; if ( "=" == n ) return M = "equals" , null ; if ( "<" == n ) { t . tokenize = o , t . state = p , t . tagName = t . tagStart = null ; var r = t . tokenize ( e , t ) ; return r ? r + " tag error" : "tag error" } return /[\'\"]/ . test ( n ) ? ( t . tokenize = s ( n ) , t . stringStartCol = e . column ( ) , t . tokenize ( e , t ) ) : ( e . match ( /^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/ ) , "word" ) } function s ( e ) { var t = function ( t , n ) { for ( ; ! t . eol ( ) ; ) if ( t . next ( ) == e ) { n . tokenize = a ; break } return "string" } ; return t . isInAttribute = ! 0 , t } function l ( e , t ) { return function ( n , r ) { for ( ; ! n . eol ( ) ; ) { if ( n . match ( t ) ) { r . tokenize = o ; break } n . next ( ) } return e } } function c ( e ) { return function ( t , n ) { for ( var r ; null != ( r = t . next ( ) ) ; ) { if ( "<" == r ) return n . tokenize = c ( e + 1 ) , n . tokenize ( t , n ) ; if ( ">" == r ) { if ( 1 == e ) { n . tokenize = o ; break } return n . tokenize = c ( e - 1 ) , n . tokenize ( t , n ) } } return "meta" } } function u ( e , t , n ) { this . prev = e . context , this . tagName = t , this . indent = e . indented , this . startOfLine = n , ( _ . doNotIndent . hasOwnProperty ( t ) || e . context && e . context . noIndent ) && ( this . noIndent = ! 0 ) } function f ( e ) { e . context && ( e . context = e . context . prev ) } function d ( e , t ) { for ( var n ; ; ) { if ( ! e . context ) return ; if ( n = e . context . tagName , ! _ . contextGrabbers . hasOwnProperty ( n ) || ! _ . contextGrabbers [ n ] . hasOwnProperty ( t ) ) return ; f ( e ) } } function p ( e , t , n ) { return "openTag" == e ? ( n . tagStart = t . column ( ) , h ) : "closeTag" == e ? m : p } function h ( e , t , n ) { return "word" == e ? ( n . tagName = t . current ( ) , L = "tag" , y ) : ( L = "error" , h ) } function m ( e , t , n ) { if ( "word" == e ) { var r = t . current ( ) ; return n . context && n . context . tagName != r && _ . implicitlyClosed . hasOwnProperty ( n . context . tagName ) && f ( n ) , n . context && n . context . tagName == r || _ . matchClosing === ! 1 ? ( L = "tag" , g ) : ( L = "tag error" , v ) } return L = "error" , v } function g ( e , t , n ) { return "endTag" != e ? ( L = "error" , g ) : ( f ( n ) , p ) } function v ( e , t , n ) { return L = "error" , g ( e , t , n ) } function y ( e , t , n ) { 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 || _ . autoSelfClosers . hasOwnProperty ( r ) ? d ( n , r ) : ( d ( n , r ) , n . context = new u ( n , r , i == n . indented ) ) , p } return L = "error" , y } function b ( e , t , n ) { return "equals" == e ? k : ( _ . allowMissing || ( L = "error" ) , y ( e , t , n ) ) } function k ( e , t , n ) { return "string" == e ? x : "word" == e && _ . allowUnquoted ? ( L = "string" , y ) : ( L = "error" , y ( e , t , n ) ) } function x ( e , t , n ) { return "string" == e ? x : y ( e , t , n ) } var w = r . indentUnit , _ = { } , C = i . htmlMode ? t : n ; 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 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 + w ; 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 _ . multilineTagIn
2016-10-10 13:15:29 +00:00
Me && ")" == s . type && "stat" == s . prev . type && ( s = s . prev ) ; var f = s . type , d = o == f ; return "vardef" == f ? s . indented + ( "operator" == t . lastType || "," == t . lastType ? s . info + 1 : 0 ) : "form" == f && "{" == o ? s . indented : "form" == f ? s . indented + Se : "stat" == f ? s . indented + ( we ( t , n ) ? Me || Se : 0 ) : "switch" != s . info || d || 0 == r . doubleIndentSwitch ? s . align ? s . column + ( d ? 0 : 1 ) : s . indented + ( d ? 0 : Se ) : s . indented + ( /^(?:case|default)\b/ . test ( n ) ? Se : 2 * Se ) } , electricInput : /^\s*(?:case .*?:|default:|\{|\})$/ , blockCommentStart : Te ? null : "/*" , blockCommentEnd : Te ? null : "*/" , lineComment : Te ? null : "//" , fold : "brace" , closeBrackets : "()[]{}''\"\"``" , helperType : Te ? "json" : "javascript" , jsonldMode : Le , jsonMode : Te , expressionAllowed : t , skipExpression : function ( e ) { var t = e . cc [ e . cc . length - 1 ] ; t != _ && t != C || e . cc . pop ( ) } } } ) , e . registerHelper ( "wordChars" , "javascript" , /[\w$]/ ) , e . defineMIME ( "text/javascript" , "javascript" ) , e . defineMIME ( "text/ecmascript" , "javascript" ) , e . defineMIME ( "application/javascript" , "javascript" ) , e . defineMIME ( "application/x-javascript" , "javascript" ) , e . defineMIME ( "application/ecmascript" , "javascript" ) , e . defineMIME ( "application/json" , { name : "javascript" , json : ! 0 } ) , e . defineMIME ( "application/x-json" , { name : "javascript" , json : ! 0 } ) , e . defineMIME ( "application/ld+json" , { name : "javascript" , jsonld : ! 0 } ) , e . defineMIME ( "text/typescript" , { name : "javascript" , typescript : ! 0 } ) , e . defineMIME ( "application/typescript" , { name : "javascript" , typescript : ! 0 } ) } ) , 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 = { } , n = 0 ; n < e . length ; ++ n ) t [ e [ n ] ] = ! 0 ; return t } function n ( e , t ) { for ( var n , r = ! 1 ; null != ( n = e . next ( ) ) ; ) { if ( r && "/" == n ) { t . tokenize = null ; break } r = "*" == n } return [ "comment" , "comment" ] } e . defineMode ( "css" , function ( t , n ) { function r ( e , t ) { return h = t , e } function i ( e , t ) { var n = e . next ( ) ; if ( v [ n ] ) { var i = v [ n ] ( e , t ) ; if ( i !== ! 1 ) return i } return "@" == n ? ( e . eatWhile ( /[\w\\\-]/ ) , r ( "def" , e . current ( ) ) ) : "=" == n || ( "~" == n || "|" == n ) && e . eat ( "=" ) ? r ( null , "compare" ) : '"' == n || "'" == n ? ( t . tokenize = o ( n ) , t . tokenize ( e , t ) ) : "#" == n ? ( e . eatWhile ( /[\w\\\-]/ ) , r ( "atom" , "hash" ) ) : "!" == n ? ( e . match ( /^\s*\w*/ ) , r ( "keyword" , "important" ) ) : /\d/ . test ( n ) || "." == n && e . eat ( /\d/ ) ? ( e . eatWhile ( /[\w.%]/ ) , r ( "number" , "unit" ) ) : "-" !== n ? /[,+>*\/]/ . test ( n ) ? r ( null , "select-op" ) : "." == n && e . match ( /^-?[_a-z][_a-z0-9-]*/i ) ? r ( "qualifier" , "qualifier" ) : /[:;{}\[\]\(\)]/ . test ( n ) ? r ( null , n ) : "u" == n && e . match ( /rl(-prefix)?\(/ ) || "d" == n && e . match ( "omain(" ) || "r" == n && e . match ( "egexp(" ) ? ( e . backUp ( 1 ) , t . tokenize = a , r ( "property" , "word" ) ) : /[\w\\\-]/ . test ( n ) ? ( e . eatWhile ( /[\w\\\-]/ ) , r ( "property" , "word" ) ) : r ( null , null ) : /[\d.]/ . test ( e . peek ( ) ) ? ( e . eatWhile ( /[\w.%]/ ) , r ( "number" , "unit" ) ) : e . match ( /^-[\w\\\-]+/ ) ? ( e . eatWhile ( /[\w\\\-]/ ) , e . match ( /^\s*:/ , ! 1 ) ? r ( "variable-2" , "variable-definition" ) : r ( "variable-2" , "variable" ) ) : e . match ( /^\w+-/ ) ? r ( "meta" , "meta" ) : void 0 } function o ( e ) { return function ( t , n ) { for ( var i , o = ! 1 ; null != ( i = t . next ( ) ) ; ) { if ( i == e && ! o ) { ")" == e && t . backUp ( 1 ) ; break } o = ! o && "\\" == i } return ( i == e || ! o && ")" != e ) && ( n . tokenize = null ) , r ( "string" , "string" ) } } function a ( e , t ) { return e . next ( ) , e . match ( /\s*[\"\')]/ , ! 1 ) ? t . tokenize = null : t . tokenize = o ( ")" ) , r ( null , "(" ) } function s ( e , t , n ) { this . type = e , this . indent = t , this . prev = n } function l ( e , t , n , r ) { return e . context = new s ( n , t . indentation ( ) + ( r === ! 1 ? 0 : g ) , e . context ) , n } function c ( e ) { return e . context . prev && ( e . context = e . context . prev ) , e . context . type } function u ( e , t , n ) { return E [ n . context . type ] ( e , t , n ) } function f ( e , t , n , r ) { for ( var i = r || 1 ; i > 0 ; i -- ) n . context = n . context . prev ; return u ( e , t , n ) } function d ( e ) { var t = e . current ( ) . toLowerCase ( ) ; m = L . hasOwnProperty ( t ) ? "atom" : M . hasOwnProperty ( t ) ? "keyword" : "variable" } var p = n . inline ; n . propertyKeywords || ( n = e . resolveMode ( "text/css" ) ) ; var h , m , g = t . indentUnit , v = n . tokenHooks , y = n . documentTypes || { } , b = n . mediaTypes || { } , k = n . mediaFeatures || { } , x = n . mediaValueKeywords || { } , w = n . propertyKeywords || { } , _ = n . nonStandardPropertyKeywords || { } , C = n . fontProperties || { } , S = n . counterDescriptors || { } , M = n . colorKeywords || { } , L = n . valueKeywords || { } , T = n . allowNested , A = n . supportsAtComponent === ! 0 , E = { } ; return E . top = function ( e , t , n ) { if ( "{" == e ) return l ( n , t , "block" ) ; if ( "}" == e && n . context . prev ) return c
o = ! 0 ; break } if ( e && t . match ( '"""' ) ) { o = ! 0 ; break } r = t . next ( ) , ! i && "$" == r && t . match ( "{" ) && t . skipTo ( "}" ) , i = ! i && "\\" == r && ! e } return ! o && e || ( n . tokenize = null ) , "string" } } function y ( e ) { return function ( t , n ) { for ( var r , i = ! 1 , o = ! 1 ; ! t . eol ( ) ; ) { if ( ! i && t . match ( '"' ) && ( "single" == e || t . match ( '""' ) ) ) { o = ! 0 ; break } if ( ! i && t . match ( "``" ) ) { x = y ( e ) , o = ! 0 ; break } r = t . next ( ) , i = "single" == e && ! i && "\\" == r } return o && ( n . tokenize = null ) , "string" } } e . defineMode ( "clike" , function ( a , l ) { function c ( e , t ) { var n = e . next ( ) ; if ( C [ n ] ) { var r = C [ n ] ( e , t ) ; if ( r !== ! 1 ) return r } if ( '"' == n || "'" == n ) return t . tokenize = u ( n ) , t . tokenize ( e , t ) ; if ( A . test ( n ) ) return p = n , null ; if ( E . test ( n ) ) { if ( e . backUp ( 1 ) , e . match ( z ) ) return "number" ; e . next ( ) } if ( "/" == n ) { if ( e . eat ( "*" ) ) return t . tokenize = f , f ( e , t ) ; if ( e . eat ( "/" ) ) return e . skipToEnd ( ) , "comment" } if ( O . test ( n ) ) { for ( ; ! e . match ( /^\/[\/*]/ , ! 1 ) && e . eat ( O ) ; ) ; return "operator" } if ( e . eatWhile ( /[\w\$_\xa1-\uffff]/ ) , T ) for ( ; e . match ( T ) ; ) e . eatWhile ( /[\w\$_\xa1-\uffff]/ ) ; var i = e . current ( ) ; return s ( y , i ) ? ( s ( x , i ) && ( p = "newstatement" ) , s ( w , i ) && ( h = ! 0 ) , "keyword" ) : s ( b , i ) ? "variable-3" : s ( k , i ) ? ( s ( x , i ) && ( p = "newstatement" ) , "builtin" ) : s ( _ , i ) ? "atom" : "variable" } function u ( e ) { return function ( t , n ) { for ( var r , i = ! 1 , o = ! 1 ; null != ( r = t . next ( ) ) ; ) { if ( r == e && ! i ) { o = ! 0 ; break } i = ! i && "\\" == r } return ( o || ! i && ! S ) && ( n . tokenize = null ) , "string" } } function f ( e , t ) { for ( var n , r = ! 1 ; n = e . next ( ) ; ) { if ( "/" == n && r ) { t . tokenize = null ; break } r = "*" == n } return "comment" } function d ( e , t ) { l . typeFirstDefinitions && e . eol ( ) && o ( t . context ) && ( t . typeAtEndOfLine = i ( e , t , e . pos ) ) } var p , h , m = a . indentUnit , g = l . statementIndentUnit || m , v = l . dontAlignCalls , y = l . keywords || { } , b = l . types || { } , k = l . builtin || { } , x = l . blockKeywords || { } , w = l . defKeywords || { } , _ = l . atoms || { } , C = l . hooks || { } , S = l . multiLineStrings , M = l . indentStatements !== ! 1 , L = l . indentSwitch !== ! 1 , T = l . namespaceSeparator , A = l . isPunctuationChar || /[\[\]{}\(\),;\:\.]/ , E = l . numberStart || /[\d\.]/ , z = l . number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i , O = l . isOperatorChar || /[+\-*&%=<>!?|\/]/ , I = l . endStatement || /^[;:,]$/ ; return { startState : function ( e ) { return { tokenize : null , context : new t ( ( e || 0 ) - m , 0 , "top" , null , ( ! 1 ) ) , indented : 0 , startOfLine : ! 0 , prevToken : null } } , token : function ( e , t ) { var a = t . context ; if ( e . sol ( ) && ( null == a . align && ( a . align = ! 1 ) , t . indented = e . indentation ( ) , t . startOfLine = ! 0 ) , e . eatSpace ( ) ) return d ( e , t ) , null ; p = h = null ; var s = ( t . tokenize || c ) ( e , t ) ; if ( "comment" == s || "meta" == s ) return s ; if ( null == a . align && ( a . align = ! 0 ) , I . test ( p ) ) for ( ; "statement" == t . context . type ; ) r ( t ) ; else if ( "{" == p ) n ( t , e . column ( ) , "}" ) ; else if ( "[" == p ) n ( t , e . column ( ) , "]" ) ; else if ( "(" == p ) n ( t , e . column ( ) , ")" ) ; else if ( "}" == p ) { for ( ; "statement" == a . type ; ) a = r ( t ) ; for ( "}" == a . type && ( a = r ( t ) ) ; "statement" == a . type ; ) a = r ( t ) } else p == a . type ? r ( t ) : M && ( ( "}" == a . type || "top" == a . type ) && ";" != p || "statement" == a . type && "newstatement" == p ) && n ( t , e . column ( ) , "statement" , e . current ( ) ) ; if ( "variable" == s && ( "def" == t . prevToken || l . typeFirstDefinitions && i ( e , t , e . start ) && o ( t . context ) && e . match ( /^\s*\(/ , ! 1 ) ) && ( s = "def" ) , C . token ) { var u = C . token ( e , t , s ) ; void 0 !== u && ( s = u ) } return "def" == s && l . styleDefs === ! 1 && ( s = "variable" ) , t . startOfLine = ! 1 , t . prevToken = h ? "def" : s || p , d ( e , t ) , s } , indent : function ( t , n ) { if ( t . tokenize != c && null != t . tokenize || t . typeAtEndOfLine ) return e . Pass ; var r = t . context , i = n && n . charAt ( 0 ) ; if ( "statement" == r . type && "}" == i && ( r = r . prev ) , l . dontIndentStatements ) for ( ; "statement" == r . type && l . dontIndentStatements . test ( r . info ) ; ) r = r . prev ; if ( C . indent ) { var o = C . indent ( t , r , n ) ; if ( "number" == typeof o ) return o } var a = i == r . type , s = r . prev && "switch" == r . prev . info ; if ( l . allmanIndentation && /[{(]/ . test ( i ) ) { for ( ; "top" != r . type && "}" != r . type ; ) r = r . prev ; return r . indented } return "statement" == r . type ? r . indented + ( "{" == i ? 0 : g ) : ! r . align || v && ")" == r . type ? ")" != r . type || a ? r . indented + ( a ? 0 : m ) + ( a || ! s || /^(?:case|default)\b/ . test ( n ) ? 0 : m ) : r . indented + g : r . column + ( a ? 0 : 1 ) } , electricInput : L ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/ , blockCommentStart : "/*" , blockCommentEnd : "*/" , lineComment : "//" , fold : "brace" } } ) ; var b = "auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile" , k = "int long char short double float unsigned signed void size_t ptrdiff_t" ; m ( [ "text/x-csrc" , "text/x-c" , "text/x-chdr" ] , { n
e . match ( /^0o[0-7]+/i ) && ( o = ! 0 ) , e . match ( /^[1-9]\d*(e[\+\-]?\d+)?/ ) && ( e . eat ( /J/i ) , o = ! 0 ) , e . match ( /^0(?![\dx])/i ) && ( o = ! 0 ) , o ) return e . eat ( /L/i ) , "number" } return e . match ( M ) ? ( t . tokenize = u ( e . current ( ) ) , t . tokenize ( e , t ) ) : e . match ( b ) || e . match ( y ) ? "punctuation" : e . match ( v ) || e . match ( C ) ? "operator" : e . match ( g ) ? "punctuation" : "." == t . lastToken && e . match ( S ) ? "property" : e . match ( L ) || e . match ( r ) ? "keyword" : e . match ( T ) ? "builtin" : e . match ( /^(self|cls)\b/ ) ? "variable-2" : e . match ( S ) ? "def" == t . lastToken || "class" == t . lastToken ? "def" : "variable" : ( e . next ( ) , m ) } function u ( e ) { function t ( t , i ) { for ( ; ! t . eol ( ) ; ) if ( t . eatWhile ( /[^'"\\]/ ) , t . eat ( "\\" ) ) { if ( t . next ( ) , n && t . eol ( ) ) return r } else { if ( t . match ( e ) ) return i . tokenize = l , r ; t . eat ( /['"]/ ) } if ( n ) { if ( s . singleLineStringErrors ) return m ; i . tokenize = l } return r } for ( ; "rubf" . indexOf ( e . charAt ( 0 ) . toLowerCase ( ) ) >= 0 ; ) e = e . substr ( 1 ) ; var n = 1 == e . length , r = "string" ; return t . isString = ! 0 , t } function f ( e ) { for ( ; "py" != n ( e ) . type ; ) e . scopes . pop ( ) ; e . scopes . push ( { offset : n ( e ) . offset + a . indentUnit , type : "py" , align : null } ) } function d ( e , t , n ) { var r = e . match ( /^([\s\[\{\(]|#.*)*$/ , ! 1 ) ? null : e . column ( ) + 1 ; t . scopes . push ( { offset : t . indent + k , type : n , align : r } ) } function p ( e , t ) { for ( var r = e . indentation ( ) ; t . scopes . length > 1 && n ( t ) . offset > r ; ) { if ( "py" != n ( t ) . type ) return ! 0 ; t . scopes . pop ( ) } return n ( t ) . offset != r } function h ( e , t ) { e . sol ( ) && ( t . beginningOfLine = ! 0 ) ; var r = t . tokenize ( e , t ) , i = e . current ( ) ; if ( t . beginningOfLine && "@" == i ) return e . match ( S , ! 1 ) ? "meta" : _ ? "operator" : m ; /\S/ . test ( i ) && ( t . beginningOfLine = ! 1 ) , "variable" != r && "builtin" != r || "meta" != t . lastToken || ( r = "meta" ) , "pass" != i && "return" != i || ( t . dedent += 1 ) , "lambda" == i && ( t . lambda = ! 0 ) , ":" != i || t . lambda || "py" != n ( t ) . type || f ( t ) ; var o = 1 == i . length ? "[({" . indexOf ( i ) : - 1 ; if ( o != - 1 && d ( e , t , "])}" . slice ( o , o + 1 ) ) , o = "])}" . indexOf ( i ) , o != - 1 ) { if ( n ( t ) . type != i ) return m ; t . indent = t . scopes . pop ( ) . offset - k } return t . dedent > 0 && e . eol ( ) && "py" == n ( t ) . type && ( t . scopes . length > 1 && t . scopes . pop ( ) , t . dedent -= 1 ) , r } var m = "error" , g = s . singleDelimiters || /^[\(\)\[\]\{\}@,:`=;\.]/ , v = s . doubleOperators || /^([!<>]==|<>|<<|>>|\/\/|\*\*)/ , y = s . doubleDelimiters || /^(\+=|\-=|\*=|%=|\/=|&=|\|=|\^=)/ , b = s . tripleDelimiters || /^(\/\/=|>>=|<<=|\*\*=)/ , k = s . hangingIndent || a . indentUnit , x = i , w = o ; void 0 != s . extra _keywords && ( x = x . concat ( s . extra _keywords ) ) , void 0 != s . extra _builtins && ( w = w . concat ( s . extra _builtins ) ) ; var _ = ! ( s . version && Number ( s . version ) < 3 ) ; if ( _ ) { var C = s . singleOperators || /^[\+\-\*\/%&|\^~<>!@]/ , S = s . identifiers || /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/ ; x = x . concat ( [ "nonlocal" , "False" , "True" , "None" , "async" , "await" ] ) , w = w . concat ( [ "ascii" , "bytes" , "exec" , "print" ] ) ; var M = new RegExp ( "^(([rbuf]|(br))?('{3}|\"{3}|['\"]))" , "i" ) } else { var C = s . singleOperators || /^[\+\-\*\/%&|\^~<>!]/ , S = s . identifiers || /^[_A-Za-z][_A-Za-z0-9]*/ ; x = x . concat ( [ "exec" , "print" ] ) , w = w . concat ( [ "apply" , "basestring" , "buffer" , "cmp" , "coerce" , "execfile" , "file" , "intern" , "long" , "raw_input" , "reduce" , "reload" , "unichr" , "unicode" , "xrange" , "False" , "True" , "None" ] ) ; var M = new RegExp ( "^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))" , "i" ) } var L = t ( x ) , T = t ( w ) , A = { startState : function ( e ) { return { tokenize : l , scopes : [ { offset : e || 0 , type : "py" , align : null } ] , indent : e || 0 , lastToken : null , lambda : ! 1 , dedent : 0 } } , token : function ( e , t ) { var n = t . errorToken ; n && ( t . errorToken = ! 1 ) ; var r = h ( e , t ) ; return r && "comment" != r && ( t . lastToken = "keyword" == r || "punctuation" == r ? e . current ( ) : r ) , "punctuation" == r && ( r = null ) , e . eol ( ) && t . lambda && ( t . lambda = ! 1 ) , n ? r + " " + m : r } , indent : function ( t , r ) { if ( t . tokenize != l ) return t . tokenize . isString ? e . Pass : 0 ; var i = n ( t ) , o = i . type == r . charAt ( 0 ) ; return null != i . align ? i . align - ( o ? 1 : 0 ) : i . offset - ( o ? k : 0 ) } , electricInput : /^\s*[\}\]\)]$/ , closeBrackets : { triples : "'\"" } , lineComment : "#" , fold : "indent" } ; return A } ) , e . defineMIME ( "text/x-python" , "python" ) ; var a = function ( e ) { return e . split ( " " ) } ; e . defineMIME ( "text/x-cython" , { name : "python" , extra _keywords : a ( "by cdef cimport cpdef ctypedef enum exceptextern gil include nogil property publicreadonly struct union DEF IF ELIF ELSE" ) } ) } ) , 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 ( "shell" , function ( ) {
2016-11-18 04:17:37 +00:00
atoms : i ( "false true null unknown" ) , operatorChars : /^[*+\-%<>!=&|^]/ , dateSQL : i ( "date time timestamp" ) , support : i ( "ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired" ) , hooks : { "@" : n , "`" : t , "\\" : r } } ) , e . defineMIME ( "text/x-cassandra" , { name : "sql" , client : { } , keywords : i ( "add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime" ) , builtin : i ( "ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint" ) , atoms : i ( "false true infinity NaN" ) , operatorChars : /^[<>=]/ , dateSQL : { } , support : i ( "commentSlashSlash decimallessFloat" ) , hooks : { } } ) , e . defineMIME ( "text/x-plsql" , { name : "sql" , client : i ( "appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap" ) , keywords : i ( "abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work" ) , builtin : i ( " abs acos add _months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup _val _on _index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last _day least length lengthb ln lower lpad ltrim lub make _ref max min mlslabel mod months _between natural naturaln nchar nclob new _time next _day
t . isAttrs = this . isAttrs , t . attrsNest = this . attrsNest . slice ( ) , t . inAttributeName = this . inAttributeName , t . attributeIsType = this . attributeIsType , t . attrValue = this . attrValue , t . indentOf = this . indentOf , t . indentToken = this . indentToken , t . innerModeForLine = this . innerModeForLine , t } , { startState : H , copyState : $ , token : U } } , "javascript" , "css" , "htmlmixed" ) , e . defineMIME ( "text/x-pug" , "pug" ) , e . defineMIME ( "text/x-jade" , "pug" ) } ) , 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 ( "lua" , function ( e , t ) { function n ( e ) { return new RegExp ( "^(?:" + e . join ( "|" ) + ")" , "i" ) } function r ( e ) { return new RegExp ( "^(?:" + e . join ( "|" ) + ")$" , "i" ) } function i ( e ) { for ( var t = 0 ; e . eat ( "=" ) ; ) ++ t ; return e . eat ( "[" ) , t } function o ( e , t ) { var n = e . next ( ) ; return "-" == n && e . eat ( "-" ) ? e . eat ( "[" ) && e . eat ( "[" ) ? ( t . cur = a ( i ( e ) , "comment" ) ) ( e , t ) : ( e . skipToEnd ( ) , "comment" ) : '"' == n || "'" == n ? ( t . cur = s ( n ) ) ( e , t ) : "[" == n && /[\[=]/ . test ( e . peek ( ) ) ? ( t . cur = a ( i ( e ) , "string" ) ) ( e , t ) : /\d/ . test ( n ) ? ( e . eatWhile ( /[\w.%]/ ) , "number" ) : /[\w_]/ . test ( n ) ? ( e . eatWhile ( /[\w\\\-_.]/ ) , "variable" ) : null } function a ( e , t ) { return function ( n , r ) { for ( var i , a = null ; null != ( i = n . next ( ) ) ; ) if ( null == a ) "]" == i && ( a = 0 ) ; else if ( "=" == i ) ++ a ; else { if ( "]" == i && a == e ) { r . cur = o ; break } a = null } return t } } function s ( e ) { return function ( t , n ) { for ( var r , i = ! 1 ; null != ( r = t . next ( ) ) && ( r != e || i ) ; ) i = ! i && "\\" == r ; return i || ( n . cur = o ) , "string" } } var l = e . indentUnit , c = r ( t . specials || [ ] ) , u = r ( [ "_G" , "_VERSION" , "assert" , "collectgarbage" , "dofile" , "error" , "getfenv" , "getmetatable" , "ipairs" , "load" , "loadfile" , "loadstring" , "module" , "next" , "pairs" , "pcall" , "print" , "rawequal" , "rawget" , "rawset" , "require" , "select" , "setfenv" , "setmetatable" , "tonumber" , "tostring" , "type" , "unpack" , "xpcall" , "coroutine.create" , "coroutine.resume" , "coroutine.running" , "coroutine.status" , "coroutine.wrap" , "coroutine.yield" , "debug.debug" , "debug.getfenv" , "debug.gethook" , "debug.getinfo" , "debug.getlocal" , "debug.getmetatable" , "debug.getregistry" , "debug.getupvalue" , "debug.setfenv" , "debug.sethook" , "debug.setlocal" , "debug.setmetatable" , "debug.setupvalue" , "debug.traceback" , "close" , "flush" , "lines" , "read" , "seek" , "setvbuf" , "write" , "io.close" , "io.flush" , "io.input" , "io.lines" , "io.open" , "io.output" , "io.popen" , "io.read" , "io.stderr" , "io.stdin" , "io.stdout" , "io.tmpfile" , "io.type" , "io.write" , "math.abs" , "math.acos" , "math.asin" , "math.atan" , "math.atan2" , "math.ceil" , "math.cos" , "math.cosh" , "math.deg" , "math.exp" , "math.floor" , "math.fmod" , "math.frexp" , "math.huge" , "math.ldexp" , "math.log" , "math.log10" , "math.max" , "math.min" , "math.modf" , "math.pi" , "math.pow" , "math.rad" , "math.random" , "math.randomseed" , "math.sin" , "math.sinh" , "math.sqrt" , "math.tan" , "math.tanh" , "os.clock" , "os.date" , "os.difftime" , "os.execute" , "os.exit" , "os.getenv" , "os.remove" , "os.rename" , "os.setlocale" , "os.time" , "os.tmpname" , "package.cpath" , "package.loaded" , "package.loaders" , "package.loadlib" , "package.path" , "package.preload" , "package.seeall" , "string.byte" , "string.char" , "string.dump" , "string.find" , "string.format" , "string.gmatch" , "string.gsub" , "string.len" , "string.lower" , "string.match" , "string.rep" , "string.reverse" , "string.sub" , "string.upper" , "table.concat" , "table.insert" , "table.maxn" , "table.remove" , "table.sort" ] ) , f = r ( [ "and" , "break" , "elseif" , "false" , "nil" , "not" , "or" , "return" , "true" , "function" , "end" , "if" , "then" , "else" , "do" , "while" , "repeat" , "until" , "for" , "in" , "local" ] ) , d = r ( [ "function" , "if" , "repeat" , "do" , "\\(" , "{" ] ) , p = r ( [ "end" , "until" , "\\)" , "}" ] ) , h = n ( [ "end" , "until" , "\\)" , "}" , "else" , "elseif" ] ) ; return { startState : function ( e ) { return { basecol : e || 0 , indentDepth : 0 , cur : o } } , token : function ( e , t ) { if ( e . eatSpace ( ) ) return null ; var n = t . cur ( e , t ) , r = e . current ( ) ; return "variable" == n && ( f . test ( r ) ? n = "keyword" : u . test ( r ) ? n = "builtin" : c . test ( r ) && ( n = "variable-2" ) ) , "comment" != n && "string" != n && ( d . test ( r ) ? ++ t . indentDepth : p . test ( r ) && -- t . indentDepth ) , n } , indent : function ( e , t ) { var n = h . test ( t ) ; return e . basecol + l * ( e . indentDepth - ( n ? 1 : 0 ) ) } , lineComment : "--" , blockCommentStart : "--[[" , blockCommentEnd : "]]" } } ) , e . defineMIME ( "text/x-lua" , "lua" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof modul
for ( var r , i = ! 1 ; r = e . next ( ) ; ) { if ( "/" == r && i ) { n . tokenize = t ; break } i = "%" == r } return "comment" } function r ( e , n ) { for ( var r , i = ! 1 ; r = e . next ( ) ; ) { if ( "'" == r && i ) { n . tokenize = t ; break } i = "'" == r } return "strong" } function i ( e , n ) { var r = n . block ; return r && e . current ( ) ? "comment" : ! r && e . match ( w ) ? ( n . tokenize = t , "comment" ) : r && e . sol ( ) && e . match ( x ) ? ( n . tokenize = t , "comment" ) : ( e . next ( ) , "comment" ) } function o ( e , n ) { for ( var r , i = ! 1 ; r = e . next ( ) ; ) { if ( "/" == r && i ) { n . tokenize = t ; break } i = "/" == r } return "em" } function a ( e , n ) { for ( var r , i = ! 1 ; r = e . next ( ) ; ) { if ( "_" == r && i ) { n . tokenize = t ; break } i = "_" == r } return "underlined" } function s ( e , n ) { for ( var r , i = ! 1 ; r = e . next ( ) ; ) { if ( "-" == r && i ) { n . tokenize = t ; break } i = "-" == r } return "strikethrough" } function l ( e , n ) { if ( "<<" == e . current ( ) ) return "macro" ; var r = e . next ( ) ; return r ? ">" == r && ">" == e . peek ( ) ? ( e . next ( ) , n . tokenize = t , "macro" ) : ( e . eatWhile ( /[\w\$_]/ ) , u . propertyIsEnumerable ( e . current ( ) ) ? "keyword" : null ) : ( n . tokenize = t , null ) } var c = { } , u = { allTags : ! 0 , closeAll : ! 0 , list : ! 0 , newJournal : ! 0 , newTiddler : ! 0 , permaview : ! 0 , saveChanges : ! 0 , search : ! 0 , slider : ! 0 , tabs : ! 0 , tag : ! 0 , tagging : ! 0 , tags : ! 0 , tiddler : ! 0 , timeline : ! 0 , today : ! 0 , version : ! 0 , option : ! 0 , "with" : ! 0 , filter : ! 0 } , f = /[\w_\-]/i , d = /^\-\-\-\-+$/ , p = /^\/\*\*\*$/ , h = /^\*\*\*\/$/ , m = /^<<<$/ , g = /^\/\/\{\{\{$/ , v = /^\/\/\}\}\}$/ , y = /^<!--\{\{\{-->$/ , b = /^<!--\}\}\}-->$/ , k = /^\{\{\{$/ , x = /^\}\}\}$/ , w = /.*?\}\}\}/ ; return { startState : function ( ) { return { tokenize : t } } , token : function ( e , t ) { if ( e . eatSpace ( ) ) return null ; var n = t . tokenize ( e , t ) ; return n } } } ) , e . defineMIME ( "text/x-tiddlywiki" , "tiddlywiki" ) } ) , function ( e ) { e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t , n ) { var r ; return r = e . eat ( "#" ) ? e . eat ( "x" ) ? e . eatWhile ( /[a-fA-F\d]/ ) && e . eat ( ";" ) : e . eatWhile ( /[\d]/ ) && e . eat ( ";" ) : e . eatWhile ( /[\w\.\-:]/ ) && e . eat ( ";" ) , r ? n += " mw-mnemonic" : t } function n ( e , n ) { return function ( r , i , o ) { o && r . sol ( ) ? i . ownLine = ! 0 : o === ! 1 && i . ownLine && ( i . ownLine = ! 1 ) ; var a = i . ownLine ? n : e ; return r . match ( /[^&]+/ ) ? a : ( r . next ( ) , t ( r , a , a ) ) } } e . defineMode ( "mediawiki" , function ( n ) { function r ( e , t , n ) { return t . isBold && ( e += " strong" ) , t . isItalic && ( e += " em" ) , i ( e , t , n ) } function i ( e , t , n ) { var r = "" ; switch ( t . nTemplate ) { case 0 : break ; case 1 : r += "-template" ; break ; case 2 : r += "-template2" ; break ; default : r += "-template3" } switch ( t . nExt ) { case 0 : break ; case 1 : r += "-ext" ; break ; case 2 : r += "-ext2" ; break ; default : r += "-ext3" } return t . nLink > 0 && ( r += "-link" ) , "" !== r && ( e = "mw" + r + "-ground " + e ) , n && t [ n ] -- , e } function o ( e , t ) { return function ( n , r ) { for ( ; ! n . eol ( ) ; ) { if ( n . match ( t ) ) { r . tokenize = r . stack . pop ( ) ; break } n . next ( ) } return i ( e , r ) } } function a ( e ) { return function ( t , n ) { return t . skipToEnd ( ) , n . tokenize = n . stack . pop ( ) , i ( e , n ) } } function s ( e , t ) { return function ( n , r ) { return r . tokenize = r . stack . pop ( ) , n . eat ( e ) ? i ( t , r ) : i ( "error" , r ) } } function l ( e ) { return function ( t , n ) { return t . match ( /[^&<\[\{~]+/ ) ? ( t . eol ( ) && ( t . backUp ( e ) , n . tokenize = a ( "mw-section-header" ) ) , null ) : E ( "" , "" ) ( t , n ) } } function c ( e , t ) { return e . match ( /[^\{\}\|]+/ ) ? i ( "mw-templatevariable-name" , t ) : e . eat ( "|" ) ? ( t . tokenize = u , i ( "mw-templatevariable-delimiter" , t ) ) : e . match ( "}}}" ) ? ( t . tokenize = t . stack . pop ( ) , i ( "mw-templatevariable-bracket" , t ) ) : e . match ( "{{{" ) ? ( t . stack . push ( t . tokenize ) , i ( "mw-templatevariable-bracket" , t ) ) : ( e . next ( ) , i ( "mw-templatevariable-name" , t ) ) } function u ( e , t ) { return e . match ( /[^\{\}\[<\&~]+/ ) ? i ( "mw-templatevariable" , t ) : e . match ( "}}}" ) ? ( t . tokenize = t . stack . pop ( ) , i ( "mw-templatevariable-bracket" , t ) ) : E ( "mw-templatevariable" , "" ) ( e , t ) } function f ( e , t ) { return e . match ( /#?[^\:\}\{~]+/ ) ? i ( "mw-parserfunction-name" , t ) : e . eat ( ":" ) ? ( t . tokenize = d , i ( "mw-parserfunction-delimiter" , t ) ) : e . match ( "}}" ) ? ( t . tokenize = t . stack . pop ( ) , i ( "mw-parserfunction-bracket" , t , "nExt" ) ) : E ( "mw-parserfunction" , "" ) ( e , t ) } function d ( e , t ) { return e . match ( /[^\|\}\{\[<\&~]+/ ) ? i ( "mw-parserfunction" , t ) : e . eat ( "|" ) ? i ( "mw-parserfunction-delimiter" , t ) : e . match ( "}}" ) ? ( t . tokenize = t . stack . pop ( ) , i ( "mw-parserfunction-bracket" , t , "nExt" ) ) : E ( "mw-parserfunction" , "" ) ( e , t ) } function p ( e ) { return function ( t , n ) { return t . match ( /[\s\u00a0]*\|[\s\u00a0]*/ ) ? ( n . tokenize = h ( ! 0 ) , i ( "mw-template-delimiter" , n ) ) : t . match ( /[\s\u00a0]*\}\}/ ) ? ( n . tokenize = n . stack . pop ( ) , i ( "mw-template-bracket" , n , "nTemplate" ) ) : e && t . sol ( ) ? ( n . nTemplate -- , void ( n . tokenize = n . stack . pop ( ) ) ) : t . match ( /[\s\u00a0]*[^\s\u00a0\|\}<\{\&~]+/ ) ? (
e . normalizeKeyMap ( u ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../lib/codemirror" ) , require ( "../addon/search/searchcursor" ) , require ( "../addon/dialog/dialog" ) , require ( "../addon/edit/matchbrackets.js" ) ) : "function" == typeof define && define . amd ? define ( [ "../lib/codemirror" , "../addon/search/searchcursor" , "../addon/dialog/dialog" , "../addon/edit/matchbrackets" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = [ { keys : "<Left>" , type : "keyToKey" , toKeys : "h" } , { keys : "<Right>" , type : "keyToKey" , toKeys : "l" } , { keys : "<Up>" , type : "keyToKey" , toKeys : "k" } , { keys : "<Down>" , type : "keyToKey" , toKeys : "j" } , { keys : "<Space>" , type : "keyToKey" , toKeys : "l" } , { keys : "<BS>" , type : "keyToKey" , toKeys : "h" , context : "normal" } , { keys : "<C-Space>" , type : "keyToKey" , toKeys : "W" } , { keys : "<C-BS>" , type : "keyToKey" , toKeys : "B" , context : "normal" } , { keys : "<S-Space>" , type : "keyToKey" , toKeys : "w" } , { keys : "<S-BS>" , type : "keyToKey" , toKeys : "b" , context : "normal" } , { keys : "<C-n>" , type : "keyToKey" , toKeys : "j" } , { keys : "<C-p>" , type : "keyToKey" , toKeys : "k" } , { keys : "<C-[>" , type : "keyToKey" , toKeys : "<Esc>" } , { keys : "<C-c>" , type : "keyToKey" , toKeys : "<Esc>" } , { keys : "<C-[>" , type : "keyToKey" , toKeys : "<Esc>" , context : "insert" } , { keys : "<C-c>" , type : "keyToKey" , toKeys : "<Esc>" , context : "insert" } , { keys : "s" , type : "keyToKey" , toKeys : "cl" , context : "normal" } , { keys : "s" , type : "keyToKey" , toKeys : "c" , context : "visual" } , { keys : "S" , type : "keyToKey" , toKeys : "cc" , context : "normal" } , { keys : "S" , type : "keyToKey" , toKeys : "VdO" , context : "visual" } , { keys : "<Home>" , type : "keyToKey" , toKeys : "0" } , { keys : "<End>" , type : "keyToKey" , toKeys : "$" } , { keys : "<PageUp>" , type : "keyToKey" , toKeys : "<C-b>" } , { keys : "<PageDown>" , type : "keyToKey" , toKeys : "<C-f>" } , { keys : "<CR>" , type : "keyToKey" , toKeys : "j^" , context : "normal" } , { keys : "<Ins>" , type : "action" , action : "toggleOverwrite" , context : "insert" } , { keys : "H" , type : "motion" , motion : "moveToTopLine" , motionArgs : { linewise : ! 0 , toJumplist : ! 0 } } , { keys : "M" , type : "motion" , motion : "moveToMiddleLine" , motionArgs : { linewise : ! 0 , toJumplist : ! 0 } } , { keys : "L" , type : "motion" , motion : "moveToBottomLine" , motionArgs : { linewise : ! 0 , toJumplist : ! 0 } } , { keys : "h" , type : "motion" , motion : "moveByCharacters" , motionArgs : { forward : ! 1 } } , { keys : "l" , type : "motion" , motion : "moveByCharacters" , motionArgs : { forward : ! 0 } } , { keys : "j" , type : "motion" , motion : "moveByLines" , motionArgs : { forward : ! 0 , linewise : ! 0 } } , { keys : "k" , type : "motion" , motion : "moveByLines" , motionArgs : { forward : ! 1 , linewise : ! 0 } } , { keys : "gj" , type : "motion" , motion : "moveByDisplayLines" , motionArgs : { forward : ! 0 } } , { keys : "gk" , type : "motion" , motion : "moveByDisplayLines" , motionArgs : { forward : ! 1 } } , { keys : "w" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 0 , wordEnd : ! 1 } } , { keys : "W" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 0 , wordEnd : ! 1 , bigWord : ! 0 } } , { keys : "e" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 0 , wordEnd : ! 0 , inclusive : ! 0 } } , { keys : "E" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 0 , wordEnd : ! 0 , bigWord : ! 0 , inclusive : ! 0 } } , { keys : "b" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 1 , wordEnd : ! 1 } } , { keys : "B" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 1 , wordEnd : ! 1 , bigWord : ! 0 } } , { keys : "ge" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 1 , wordEnd : ! 0 , inclusive : ! 0 } } , { keys : "gE" , type : "motion" , motion : "moveByWords" , motionArgs : { forward : ! 1 , wordEnd : ! 0 , bigWord : ! 0 , inclusive : ! 0 } } , { keys : "{" , type : "motion" , motion : "moveByParagraph" , motionArgs : { forward : ! 1 , toJumplist : ! 0 } } , { keys : "}" , type : "motion" , motion : "moveByParagraph" , motionArgs : { forward : ! 0 , toJumplist : ! 0 } } , { keys : "<C-f>" , type : "motion" , motion : "moveByPage" , motionArgs : { forward : ! 0 } } , { keys : "<C-b>" , type : "motion" , motion : "moveByPage" , motionArgs : { forward : ! 1 } } , { keys : "<C-d>" , type : "motion" , motion : "moveByScroll" , motionArgs : { forward : ! 0 , explicitRepeat : ! 0 } } , { keys : "<C-u>" , type : "motion" , motion : "moveByScroll" , motionArgs : { forward : ! 1 , explicitRepeat : ! 0 } } , { keys : "gg" , type : "motion" , motion : "moveToLineOrEdgeOfDocument" , motionArgs : { forward : ! 1 , explicitRepeat : ! 0 , linewise : ! 0 , toJumplist : ! 0 } } , { keys : "G" , type : "motion" , motion : "moveToLineOrEdgeOfDocument" , motionArgs : { forward : ! 0 , explicitRepeat : ! 0 , linewise : ! 0 , toJumplist : ! 0 } } , { keys : "0" , type : "motion" , motion : "moveToStartOfLine" } , { keys : "^" , type : "motion" , motion :
n . insertMode ) { var d = o . insertModeChanges [ s ++ ] . changes ; kt . macroModeState . lastInsertModeChanges . changes = d , at ( t , d , 1 ) , Ke ( t ) } r . isPlaying = ! 1 } function Ze ( e , t ) { if ( ! e . isPlaying ) { var n = e . latestRegister , r = kt . registerController . getRegister ( n ) ; r && r . pushText ( t ) } } function Ye ( e ) { if ( ! e . isPlaying ) { var t = e . latestRegister , n = kt . registerController . getRegister ( t ) ; n && n . pushInsertModeChanges && n . pushInsertModeChanges ( e . lastInsertModeChanges ) } } function Qe ( e , t ) { if ( ! e . isPlaying ) { var n = e . latestRegister , r = kt . registerController . getRegister ( n ) ; r && r . pushSearchQuery && r . pushSearchQuery ( t ) } } function Je ( e , t ) { var n = kt . macroModeState , r = n . lastInsertModeChanges ; if ( ! n . isPlaying ) for ( ; t ; ) { if ( r . expectCursorActivityForChange = ! 0 , "+input" == t . origin || "paste" == t . origin || void 0 === t . origin ) { var i = t . text . join ( "\n" ) ; r . maybeReset && ( r . changes = [ ] , r . maybeReset = ! 1 ) , r . changes . push ( i ) } t = t . next } } function et ( e ) { var t = e . state . vim ; if ( t . insertMode ) { var n = kt . macroModeState ; if ( n . isPlaying ) return ; var r = n . lastInsertModeChanges ; r . expectCursorActivityForChange ? r . expectCursorActivityForChange = ! 1 : r . maybeReset = ! 0 } else e . curOp . isVimOp || nt ( e , t ) ; t . visualMode && tt ( e ) } function tt ( e ) { var t = e . state . vim , n = q ( e , H ( t . sel . head ) ) , r = R ( n , 0 , 1 ) ; t . fakeCursor && t . fakeCursor . clear ( ) , t . fakeCursor = e . markText ( n , r , { className : "cm-animate-fat-cursor" } ) } function nt ( t , n ) { var r = t . getCursor ( "anchor" ) , i = t . getCursor ( "head" ) ; if ( n . visualMode && ! t . somethingSelected ( ) ? le ( t , ! 1 ) : n . visualMode || n . insertMode || ! t . somethingSelected ( ) || ( n . visualMode = ! 0 , n . visualLine = ! 1 , e . signal ( t , "vim-mode-change" , { mode : "visual" } ) ) , n . visualMode ) { var o = U ( i , r ) ? 0 : - 1 , a = U ( i , r ) ? - 1 : 0 ; i = R ( i , 0 , o ) , r = R ( r , 0 , a ) , n . sel = { anchor : r , head : i } , ke ( t , n , "<" , K ( i , r ) ) , ke ( t , n , ">" , V ( i , r ) ) } else n . insertMode || ( n . lastHPos = t . getCursor ( ) . ch ) } function rt ( e ) { this . keyName = e } function it ( t ) { function n ( ) { return i . maybeReset && ( i . changes = [ ] , i . maybeReset = ! 1 ) , i . changes . push ( new rt ( o ) ) , ! 0 } var r = kt . macroModeState , i = r . lastInsertModeChanges , o = e . keyName ( t ) ; o && ( o . indexOf ( "Delete" ) == - 1 && o . indexOf ( "Backspace" ) == - 1 || e . lookupKey ( o , "vim-insert" , n ) ) } function ot ( e , t , n , r ) { function i ( ) { s ? _t . processAction ( e , t , t . lastEditActionCommand ) : _t . evalInput ( e , t ) } function o ( n ) { if ( a . lastInsertModeChanges . changes . length > 0 ) { n = t . lastEditActionCommand ? n : 1 ; var r = a . lastInsertModeChanges ; at ( e , r . changes , n ) } } var a = kt . macroModeState ; a . isPlaying = ! 0 ; var s = ! ! t . lastEditActionCommand , l = t . inputState ; if ( t . inputState = t . lastEditInputState , s && t . lastEditActionCommand . interlaceInsertRepeat ) for ( var c = 0 ; c < n ; c ++ ) i ( ) , o ( 1 ) ; else r || i ( ) , o ( n ) ; t . inputState = l , t . insertMode && ! r && Ke ( e ) , a . isPlaying = ! 1 } function at ( t , n , r ) { function i ( n ) { return "string" == typeof n ? e . commands [ n ] ( t ) : n ( t ) , ! 0 } var o = t . getCursor ( "head" ) , a = kt . macroModeState . lastInsertModeChanges . inVisualBlock ; if ( a ) { var s = t . state . vim , l = s . lastSelection , c = j ( l . anchor , l . head ) ; ee ( t , o , c . line + 1 ) , r = t . listSelections ( ) . length , t . setCursor ( o ) } for ( var u = 0 ; u < r ; u ++ ) { a && t . setCursor ( R ( o , u , 0 ) ) ; for ( var f = 0 ; f < n . length ; f ++ ) { var d = n [ f ] ; if ( d instanceof rt ) e . lookupKey ( d . keyName , "vim-insert" , i ) ; else { var p = t . getCursor ( ) ; t . replaceRange ( d , p , p ) } } } a && t . setCursor ( R ( o , 0 , 1 ) ) } e . defineOption ( "vimMode" , ! 1 , function ( t , n , r ) { n && "vim" != t . getOption ( "keyMap" ) ? t . setOption ( "keyMap" , "vim" ) : ! n && r != e . Init && /^vim/ . test ( t . getOption ( "keyMap" ) ) && t . setOption ( "keyMap" , "default" ) } ) ; var st = { Shift : "S" , Ctrl : "C" , Alt : "A" , Cmd : "D" , Mod : "A" } , lt = { Enter : "CR" , Backspace : "BS" , Delete : "Del" , Insert : "Ins" } , ct = /[\d]/ , ut = [ e . isWordChar , function ( t ) { return t && ! e . isWordChar ( t ) && ! /\s/ . test ( t ) } ] , ft = [ function ( e ) { return /\S/ . test ( e ) } ] , dt = f ( 65 , 26 ) , pt = f ( 97 , 26 ) , ht = f ( 48 , 10 ) , mt = [ ] . concat ( dt , pt , ht , [ "<" , ">" ] ) , gt = [ ] . concat ( dt , pt , ht , [ "-" , '"' , "." , ":" , "/" ] ) , vt = { } ; b ( "filetype" , void 0 , "string" , [ "ft" ] , function ( e , t ) { if ( void 0 !== t ) { if ( void 0 === e ) { var n = t . getOption ( "mode" ) ; return "null" == n ? "" : n } var n = "" == e ? "null" : e ; t . setOption ( "mode" , n ) } } ) ; var yt = function ( ) { function e ( e , t , s ) { function l ( t ) { var i = ++ r % n , o = a [ i ] ; o && o . clear ( ) , a [ i ] = e . setBookmark ( t ) } var c = r % n , u = a [ c ] ; if ( u ) { var f = u . find ( ) ; f && ! $ ( f , t ) && l ( t ) } else l ( t ) ; l ( s ) , i = r , o = r - n + 1 , o < 0 && ( o = 0 ) } function t ( e , t ) { r += t , r > i ? r = i : r < o && ( r = o ) ; var s = a [ ( n + r ) % n ] ; if ( s && ! s . find ( ) ) { var l , c = t > 0 ? 1 : - 1 , u = e . getCursor ( ) ; do if ( r += c , s = a [ ( n + r ) % n ] , s && ( l = s . find ( ) ) && ! $ ( u , l ) ) break ; while ( r < i && r > o ) } return
} } ; b ( "pcre" , ! 0 , "boolean" ) , Se . prototype = { getQuery : function ( ) { return kt . query } , setQuery : function ( e ) { kt . query = e } , getOverlay : function ( ) { return this . searchOverlay } , setOverlay : function ( e ) { this . searchOverlay = e } , isReversed : function ( ) { return kt . isReversed } , setReversed : function ( e ) { kt . isReversed = e } , getScrollbarAnnotate : function ( ) { return this . annotate } , setScrollbarAnnotate : function ( e ) { this . annotate = e } } ; var At = { "\\n" : "\n" , "\\r" : "\r" , "\\t" : "\t" } , Et = { "\\/" : "/" , "\\\\" : "\\" , "\\n" : "\n" , "\\r" : "\r" , "\\t" : "\t" } , zt = "(Javascript regexp)" , Ot = function ( ) { this . buildCommandMap _ ( ) } ; Ot . prototype = { processCommand : function ( e , t , n ) { var r = this ; e . operation ( function ( ) { e . curOp . isVimOp = ! 0 , r . _processCommand ( e , t , n ) } ) } , _processCommand : function ( t , n , r ) { var i = t . state . vim , o = kt . registerController . getRegister ( ":" ) , a = o . toString ( ) ; i . visualMode && le ( t ) ; var s = new e . StringStream ( n ) ; o . setText ( n ) ; var l = r || { } ; l . input = n ; try { this . parseInput _ ( t , s , l ) } catch ( c ) { throw Ne ( t , c ) , c } var u , f ; if ( l . commandName ) { if ( u = this . matchCommand _ ( l . commandName ) ) { if ( f = u . name , u . excludeFromCommandHistory && o . setText ( a ) , this . parseCommandArgs _ ( s , l , u ) , "exToKey" == u . type ) { for ( var d = 0 ; d < u . toKeys . length ; d ++ ) e . Vim . handleKey ( t , u . toKeys [ d ] , "mapping" ) ; return } if ( "exToEx" == u . type ) return void this . processCommand ( t , u . toInput ) } } else void 0 !== l . line && ( f = "move" ) ; if ( ! f ) return void Ne ( t , 'Not an editor command ":' + n + '"' ) ; try { It [ f ] ( t , l ) , u && u . possiblyAsync || ! l . callback || l . callback ( ) } catch ( c ) { throw Ne ( t , c ) , c } } , parseInput _ : function ( e , t , n ) { t . eatWhile ( ":" ) , t . eat ( "%" ) ? ( n . line = e . firstLine ( ) , n . lineEnd = e . lastLine ( ) ) : ( n . line = this . parseLineSpec _ ( e , t ) , void 0 !== n . line && t . eat ( "," ) && ( n . lineEnd = this . parseLineSpec _ ( e , t ) ) ) ; var r = t . match ( /^(\w+)/ ) ; return r ? n . commandName = r [ 1 ] : n . commandName = t . match ( /.*/ ) [ 0 ] , n } , parseLineSpec _ : function ( e , t ) { var n = t . match ( /^(\d+)/ ) ; if ( n ) return parseInt ( n [ 1 ] , 10 ) - 1 ; switch ( t . next ( ) ) { case "." : return e . getCursor ( ) . line ; case "$" : return e . lastLine ( ) ; case "'" : var r = e . state . vim . marks [ t . next ( ) ] ; if ( r && r . find ( ) ) return r . find ( ) . line ; throw new Error ( "Mark not set" ) ; default : return void t . backUp ( 1 ) } } , parseCommandArgs _ : function ( e , t , n ) { if ( ! e . eol ( ) ) { t . argString = e . match ( /.*/ ) [ 0 ] ; var r = n . argDelimiter || /\s+/ , i = Z ( t . argString ) . split ( r ) ; i . length && i [ 0 ] && ( t . args = i ) } } , matchCommand _ : function ( e ) { for ( var t = e . length ; t > 0 ; t -- ) { var n = e . substring ( 0 , t ) ; if ( this . commandMap _ [ n ] ) { var r = this . commandMap _ [ n ] ; if ( 0 === r . name . indexOf ( e ) ) return r } } return null } , buildCommandMap _ : function ( ) { this . commandMap _ = { } ; for ( var e = 0 ; e < n . length ; e ++ ) { var t = n [ e ] , r = t . shortName || t . name ; this . commandMap _ [ r ] = t } } , map : function ( e , n , r ) { if ( ":" != e && ":" == e . charAt ( 0 ) ) { if ( r ) throw Error ( "Mode not supported for ex mappings" ) ; var i = e . substring ( 1 ) ; ":" != n && ":" == n . charAt ( 0 ) ? this . commandMap _ [ i ] = { name : i , type : "exToEx" , toInput : n . substring ( 1 ) , user : ! 0 } : this . commandMap _ [ i ] = { name : i , type : "exToKey" , toKeys : n , user : ! 0 } } else if ( ":" != n && ":" == n . charAt ( 0 ) ) { var o = { keys : e , type : "keyToEx" , exArgs : { input : n . substring ( 1 ) } , user : ! 0 } ; r && ( o . context = r ) , t . unshift ( o ) } else { var o = { keys : e , type : "keyToKey" , toKeys : n , user : ! 0 } ; r && ( o . context = r ) , t . unshift ( o ) } } , unmap : function ( e , n ) { if ( ":" != e && ":" == e . charAt ( 0 ) ) { if ( n ) throw Error ( "Mode not supported for ex mappings" ) ; var r = e . substring ( 1 ) ; if ( this . commandMap _ [ r ] && this . commandMap _ [ r ] . user ) return void delete this . commandMap _ [ r ] } else for ( var i = e , o = 0 ; o < t . length ; o ++ ) if ( i == t [ o ] . keys && t [ o ] . context === n && t [ o ] . user ) return void t . splice ( o , 1 ) ; throw Error ( "No such mapping." ) } } ; var It = { colorscheme : function ( e , t ) { return ! t . args || t . args . length < 1 ? void Ne ( e , e . getOption ( "theme" ) ) : void e . setOption ( "theme" , t . args [ 0 ] ) } , map : function ( e , t , n ) { var r = t . args ; return ! r || r . length < 2 ? void ( e && Ne ( e , "Invalid mapping: " + t . input ) ) : void Nt . map ( r [ 0 ] , r [ 1 ] , n ) } , imap : function ( e , t ) { this . map ( e , t , "insert" ) } , nmap : function ( e , t ) { this . map ( e , t , "normal" ) } , vmap : function ( e , t ) { this . map ( e , t , "visual" ) } , unmap : function ( e , t , n ) { var r = t . args ; return ! r || r . length < 1 ? void ( e && Ne ( e , "No such mapping: " + t . input ) ) : void Nt . unmap ( r [ 0 ] , n ) } , move : function ( e , t ) { _t . processCommand ( e , e . state . vim , { type : "motion" , motion : "moveToLineOrEdgeOfDocument" , motionArgs : { forward : ! 1 , explicitRepeat : ! 0 , linewise : ! 0 } , repeatOverride : t . line + 1 } ) } , set : function ( e , t ) { var n = t . args , r = t . setCfg || { } ; if ( ! n || n . length < 1