2015-09-24 05:57:10 +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 . CodeMirror = e ( ) } } ( function ( ) { "use strict" ; function e ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? Ii ( r ) : { } , Ii ( Xo , r , ! 1 ) , p ( r ) ; var i = r . value ; "string" == typeof i && ( i = new ba ( i , r . mode ) ) , this . doc = i ; var o = new e . inputStyles [ r . inputStyle ] ( this ) , a = this . display = new t ( n , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! So && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , draggingText : ! 1 , highlight : new Mi , keySeq : null , specialChars : null } ; var s = this ; mo && 11 > go && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , Ht ( this ) , Gi ( ) , xt ( this ) , this . curOp . forceUpdate = ! 0 , Kr ( this , i ) , r . autofocus && ! So || s . hasFocus ( ) ? setTimeout ( Pi ( mn , this ) , 20 ) : gn ( this ) ; for ( var u in Zo ) Zo . hasOwnProperty ( u ) && Zo [ u ] ( this , r [ u ] , Yo ) ; k ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < ta . length ; ++ f ) ta [ f ] ( this ) ; kt ( this ) , vo && 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 = Wi ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = Wi ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = Wi ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = Wi ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = Wi ( "div" , null , "CodeMirror-cursors" ) , r . measure = Wi ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = Wi ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = Wi ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = Wi ( "div" , [ Wi ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = Wi ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = Wi ( "div" , null , null , "position: absolute; height: " + Aa + "px; width: 1px;" ) , r . gutters = Wi ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = Wi ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = Wi ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , mo && 8 > go && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , vo || fo && So || ( 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 , Re ( e , 100 ) , e . state . modeGen ++ , e . curOp && It ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ua ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Ba ( e . display . wrapper , "CodeMirror-wrap" ) , d ( e ) ) , a ( e ) , It ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = yt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / bt ( e . display ) - 3 ) ; return function ( i ) { if ( xr ( 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 && Qr ( e , t ) } ) } function l ( e ) { e . display . wrapper . className = e . display . wrapper . class
2015-05-04 07:53:29 +00:00
2015-09-24 05:57:10 +00:00
} else { l > 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 ( mo && 9 > go && ! l && ( ! i || ! i . left && ! i . right ) ) { var d = a . parentNode . getClientRects ( ) [ 0 ] ; i = d ? { left : d . left , right : d . left + bt ( e . display ) , top : d . top , bottom : d . bottom } : Ro } 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 it ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Yi ( 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 ot ( 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 at ( e ) { e . display . externalMeasure = null , Fi ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) ot ( e . display . view [ t ] ) } function lt ( e ) { at ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function st ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ct ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function ut ( e , t , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = wr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ti ( t ) ; if ( "local" == r ? a += $e ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ct ( ) ) ; var s = l . left + ( "window" == r ? 0 : st ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= st ( ) , i -= ct ( ) ; 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 dt ( e , t , n , r , i ) { return r || ( r = Xr ( e . doc , t . line ) ) , ut ( e , r , Qe ( e , r , t . ch , i ) , n ) } function pt ( e , t , n , r , i , o ) { function a ( t , a ) { var l = tt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , ut ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == Ji ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = eo ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == eo ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = Ji ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Xr ( e . doc , t . line ) , i || ( i = et ( e , r ) ) ; var s = ni ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = lo ( s , c ) , f = l ( c , u ) ; return null != Ja && ( f . other = l ( c , Ja ) ) , f } function ht ( e , t ) { var n = 0 , t = ve ( e . doc , t ) ; e . options . lineWrapping || ( n = bt ( e . display ) * t . ch ) ; var r = Xr ( e . doc , t . line ) , i = ti ( r ) + $e ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function mt ( e , t , n , r ) { var i = qo ( e , t ) ; return i . xRel = r , n && ( i . outside = ! 0 ) , i } function gt ( e , t , n ) { var r = e . doc ; if ( n += e . display . viewOffset , 0 > n ) return mt ( r . first , 0 , ! 0 , - 1 ) ; var i = ei ( r , n ) , o = r . first + r . size - 1 ; if ( i > o ) return mt ( r . first + r . size - 1 , Xr ( r , o ) . text . length , ! 0 , 1 ) ; 0 > t && ( t = 0 ) ; for ( var a = Xr ( r , i ) ; ; ) { var l = vt ( e , a , i , t , n ) , s = hr ( a ) , c = s && s . find ( 0 , ! 0 ) ; if ( ! s || ! ( l . ch > c . from . ch || l . ch == c . from . ch && l . xRel > 0 ) ) return l ; i = Jr ( a = c . to . line ) } } function vt ( e , t , n , r , i ) { function o ( r ) { var i = pt ( e , qo ( n , r ) , "line" , t , c ) ; return l = ! 0 , a > i . bottom ? i . left - s : a < i . top ? i . left + s : ( l = ! 1 , i . left ) } var a = i - ti ( t ) , l = ! 1 , s = 2 * e . display . wrapper . clientWidth , c = et ( e , t ) , u = ni ( t ) , f = t . text . length , d = to ( t ) , p = no ( t ) , h = o ( d ) , m = l , g = o ( p ) , v = l ; if ( r > g ) return mt ( n , p , v , 1 ) ; for ( ; ; ) { if ( u ? p == d || p == co ( t , d , 1 ) : 1 >= p - d ) { for ( var y = h > r || g - r >= r - h ? d : p , b = r - ( y == d ? h : g ) ; Ri ( t . text . charAt ( y ) ) ; ) ++ y ; var x = mt ( n , y , y == d ? m : v , - 1 > b ? - 1 : b > 1 ? 1 : 0 ) ; return x } var _ = Math . ceil ( f / 2 ) , k = d + _ ; if ( u ) { k = d ; for ( var w = 0 ; _ > w ; ++ w ) k = co ( t , k , 1 ) } var C = o ( k ) ; C > r ? ( p = k , g = C , ( v = l ) && ( g += 1e3 ) , f = _ ) : ( d = k , h = C , m = l , f -= _ ) } } function yt ( e ) { if ( null != e . cachedTextHeight ) return e . cachedTextHeight ; if ( null == Po ) { Po = Wi ( "pre" ) ; for ( var t = 0 ; 49 > t
2015-05-04 07:53:29 +00:00
2015-09-24 05:57:10 +00:00
if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var d = null , p = "group" == r , h = e . cm && e . cm . getHelper ( t , "wordChars" ) , m = ! 0 ; ! ( 0 > n ) || a ( ! m ) ; m = ! 1 ) { var g = u . text . charAt ( s ) || "\n" , v = Di ( g , h ) ? "w" : p && "\n" == g ? "n" : ! p || /\s/ . test ( g ) ? null : "p" ; if ( ! p || m || v || ( v = "s" ) , d && d != v ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( v && ( d = v ) , n > 0 && ! a ( ! m ) ) break } var y = qe ( e , qo ( l , s ) , c , ! 0 ) ; return f || ( y . hitSide = ! 0 ) , y } function Hn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * yt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = gt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function $n ( t , n , r , i ) { e . defaults [ t ] = n , r && ( Zo [ t ] = i ? function ( e , t , n ) { n != Yo && r ( e , t , n ) } : r ) } function Bn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function Un ( e ) { return "string" == typeof e ? aa [ e ] : e } function Vn ( e , t , n , r , i ) { if ( r && r . shared ) return Gn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return zt ( e . cm , Vn ) ( e , t , n , r , i ) ; var o = new da ( e , i ) , a = No ( t , n ) ; if ( r && Ii ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = Wi ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( mr ( e , t . line , t , n , o ) || t . line != n . line && mr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; Oo = ! 0 } o . addToHistory && li ( e , { from : t , to : n , origin : "markText" } , e . sel , 0 / 0 ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && gr ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed && s != t . line && Qr ( e , 0 ) , er ( e , new Yn ( o , s == t . line ? t . ch : null , s == n . line ? n . ch : null ) ) , ++ s } ) , o . collapsed && e . iter ( t . line , n . line + 1 , function ( t ) { xr ( e , t ) && Qr ( t , 0 ) } ) , o . clearOnEnter && Sa ( o , "beforeCursorEnter" , function ( ) { o . clear ( ) } ) , o . readOnly && ( Eo = ! 0 , ( e . history . done . length || e . history . undone . length ) && e . clearHistory ( ) ) , o . collapsed && ( o . id = ++ fa , o . atomic = ! 0 ) , c ) { if ( l && ( c . curOp . updateMaxLine = ! 0 ) , o . collapsed ) It ( c , t . line , n . line + 1 ) ; else if ( o . className || o . title || o . startStyle || o . endStyle || o . css ) for ( var u = t . line ; u <= n . line ; u ++ ) Pt ( c , u , "text" ) ; o . atomic && Ee ( c . doc ) , _i ( c , "markerAdded" , c , o ) } return o } function Gn ( e , t , n , r , i ) { r = Ii ( r ) , r . shared = ! 1 ; var o = [ Vn ( e , t , n , r , i ) ] , a = o [ 0 ] , l = r . widgetNode ; return Gr ( e , function ( e ) { l && ( r . widgetNode = l . cloneNode ( ! 0 ) ) , o . push ( Vn ( e , ve ( e , t ) , ve ( e , n ) , r , i ) ) ; for ( var s = 0 ; s < e . linked . length ; ++ s ) if ( e . linked [ s ] . isParent ) return ; a = zi ( o ) } ) , new pa ( o , a ) } function Kn ( e ) { return e . findMarks ( qo ( e . first , 0 ) , e . clipPos ( qo ( e . lastLine ( ) ) ) , function ( e ) { return e . parent } ) } function Xn ( e , t ) { for ( var n = 0 ; n < t . length ; n ++ ) { var r = t [ n ] , i = r . find ( ) , o = e . clipPos ( i . from ) , a = e . clipPos ( i . to ) ; if ( No ( o , a ) ) { var l = Vn ( e , o , a , r . primary , r . primary . type ) ; r . markers . push ( l ) , l . parent = r } } } function Zn ( e ) { for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = [ n . primary . doc ] ; Gr ( n . primary . doc , function ( e ) { r . push ( e ) } ) ; for ( var i = 0 ; i < n . markers . length ; i ++ ) { var o = n . markers [ i ] ; - 1 == Ei ( r , o . doc ) && ( o . parent = null , n . markers . splice ( i -- , 1 ) ) } } } function Yn ( e , t , n ) { this . marker = e , this . from = t , this . to = n } function Qn ( e , t ) { if ( e ) for ( var n = 0 ; n < e . length ; ++ n ) { var r = e [ n ] ; if ( r . marker == t ) return r } } function Jn ( e , t ) { for ( var n , r = 0 ; r < e . length ; ++ r ) e [ r ] != t && ( n || ( n = [ ] ) ) . push ( e [ r ] ) ; return n } function er ( e , t ) { e . markedSpans = e . markedSpans ? e . markedSpans . concat ( [ t ] ) : [ t ] , t . marker . attachLine ( e ) } function tr ( e , t , n ) { if ( e ) for ( var r , i = 0 ; i < e . length ; ++ i ) { var o = e [ i ] , a = o . marker , l = null == o . from || ( a . inclusiveLeft ? o . from <= t : o . from < t ) ; if ( l || o . from == t && "bookmark" == a . type && ( ! n || ! o . marker . insertLeft ) ) { var s = null == o . to || ( a . inclusiveRight ? o . to >= t : o . to > t ) ; ( r || ( r = [ ] ) ) . push ( new Yn ( a , o . from , s ? null : o . to ) ) } } return r } function nr ( e , t , n ) { if ( e ) for ( var r , i = 0 ; i < e . length ; ++ i ) { var o = e [ i ] , a = o . marker , l = null == o . to || ( a . incl
mo && go >= 9 && ( this . hasSelection = a ) } else e || ( this . composing || ( this . prevInput = this . textarea . value = "" ) , mo && go >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! So || $i ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || Xa ( t ) && ! n || Q ( e ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( mo && go >= 9 && this . hasSelection === r || Lo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return At ( e , function ( ) { J ( e , r . slice ( o ) , n . length - o , null , l . composing ? "*compose" : null ) , r . length > 1e3 || r . indexOf ( "\n" ) > - 1 ? t . value = l . prevInput = "" : l . prevInput = r , l . composing && ( l . composing . range . clear ( ) , l . composing . range = e . markText ( l . composing . start , e . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) ) } ) , ! 0 } , ensurePolled : function ( ) { this . pollingFast && this . poll ( ) && ( this . pollingFast = ! 1 ) } , onKeyPress : function ( ) { mo && go >= 9 && ( this . hasSelection = null ) , this . fastPoll ( ) } , onContextMenu : function ( e ) { function t ( ) { if ( null != a . selectionStart ) { var e = i . somethingSelected ( ) , t = " " + ( e ? a . value : "" ) ; a . value = "⇚" , a . value = t , r . prevInput = e ? "" : " " , a . selectionStart = 1 , a . selectionEnd = t . length , o . selForContextMenu = i . doc . sel } } function n ( ) { if ( r . contextMenuPending = ! 1 , r . wrapper . style . position = "relative" , a . style . cssText = u , mo && 9 > go && o . scrollbars . setScrollTop ( o . scroller . scrollTop = s ) , null != a . selectionStart ) { ( ! mo || mo && 9 > go ) && t ( ) ; var e = 0 , n = function ( ) { o . selForContextMenu == i . doc . sel && 0 == a . selectionStart && a . selectionEnd > 0 && " " == r . prevInput ? zt ( i , oa . selectAll ) ( i ) : e ++ < 10 ? o . detectingSelectAll = setTimeout ( n , 500 ) : o . input . reset ( ) } ; o . detectingSelectAll = setTimeout ( n , 200 ) } } var r = this , i = r . cm , o = i . display , a = r . textarea , l = Vt ( i , e ) , s = o . scroller . scrollTop ; if ( l && ! xo ) { var c = i . options . resetSelectionOnContextMenu ; c && - 1 == i . doc . sel . contains ( l ) && zt ( i , Te ) ( i . doc , me ( l ) , Ea ) ; var u = a . style . cssText ; if ( r . wrapper . style . position = "absolute" , a . style . cssText = "position: fixed; width: 30px; height: 30px; top: " + ( e . clientY - 5 ) + "px; left: " + ( e . clientX - 5 ) + "px; z-index: 1000; background: " + ( mo ? "rgba(255, 255, 255, .05)" : "transparent" ) + "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);" , vo ) var f = window . scrollY ; if ( o . input . focus ( ) , vo && window . scrollTo ( null , f ) , o . input . reset ( ) , i . somethingSelected ( ) || ( a . value = r . prevInput = " " ) , r . contextMenuPending = ! 0 , o . selForContextMenu = i . doc . sel , clearTimeout ( o . detectingSelectAll ) , mo && go >= 9 && t ( ) , zo ) { Ca ( e ) ; var d = function ( ) { La ( window , "mouseup" , d ) , setTimeout ( n , 20 ) } ; Sa ( window , "mouseup" , d ) } else setTimeout ( n , 50 ) } } , setUneditable : qi , needsContentAttribute : ! 1 } , ie . prototype ) , ae . prototype = Ii ( { init : function ( e ) { function t ( e ) { if ( r . somethingSelected ( ) ) Io = r . getSelections ( ) , "cut" == e . type && r . replaceSelection ( "" , null , "cut" ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ne ( r ) ; Io = t . text , "cut" == e . type && r . operation ( function ( ) { r . setSelections ( t . ranges , 0 , Ea ) , r . replaceSelection ( "" , null , "cut" ) } ) } if ( e . clipboardData && ! Co ) e . preventDefault ( ) , e . clipboardData . clearData ( ) , e . clipboardData . setData ( "text/plain" , Io . join ( "\n" ) ) ; else { var n = oe ( ) , i = n . firstChild ; r . display . lineSpace . insertBefore ( n , r . display . lineSpace . firstChild ) , i . value = Io . join ( "\n" ) ; var o = document . activeElement ; Pa ( i ) , setTimeout ( function
function r ( ) { t . value = c . getValue ( ) } if ( n = n ? Ii ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = $i ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Sa ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . removeChild ( e . getWrapperElement ( ) ) , t . style . display = "" , t . form && ( La ( t . form , "submit" , r ) , "function" == typeof t . form . submit && ( t . form . submit = a ) ) } } , t . style . display = "none" ; var c = e ( function ( e ) { t . parentNode . insertBefore ( e , t . nextSibling ) } , n ) ; return c } ; var ua = e . StringStream = function ( e , t ) { this . pos = this . start = 0 , this . string = e , this . tabSize = t || 8 , this . lastColumnPos = this . lastColumnValue = 0 , this . lineStart = 0 } ; ua . prototype = { eol : function ( ) { return this . pos >= this . string . length } , sol : function ( ) { return this . pos == this . lineStart } , peek : function ( ) { return this . string . charAt ( this . pos ) || void 0 } , next : function ( ) { return this . pos < this . string . length ? this . string . charAt ( this . pos ++ ) : void 0 } , eat : function ( e ) { var t = this . string . charAt ( this . pos ) ; if ( "string" == typeof e ) var n = t == e ; else var n = t && ( e . test ? e . test ( t ) : e ( t ) ) ; return n ? ( ++ this . pos , t ) : void 0 } , eatWhile : function ( e ) { for ( var t = this . pos ; this . eat ( e ) ; ) ; return this . pos > t } , eatSpace : function ( ) { for ( var e = this . pos ; /[\s\u00a0]/ . test ( this . string . charAt ( this . pos ) ) ; ) ++ this . pos ; return this . pos > e } , skipToEnd : function ( ) { this . pos = this . string . length } , skipTo : function ( e ) { var t = this . string . indexOf ( e , this . pos ) ; return t > - 1 ? ( this . pos = t , ! 0 ) : void 0 } , backUp : function ( e ) { this . pos -= e } , column : function ( ) { return this . lastColumnPos < this . start && ( this . lastColumnValue = Na ( this . string , this . start , this . tabSize , this . lastColumnPos , this . lastColumnValue ) , this . lastColumnPos = this . start ) , this . lastColumnValue - ( this . lineStart ? Na ( this . string , this . lineStart , this . tabSize ) : 0 ) } , indentation : function ( ) { return Na ( this . string , null , this . tabSize ) - ( this . lineStart ? Na ( this . string , this . lineStart , this . tabSize ) : 0 ) } , match : function ( e , t , n ) { if ( "string" != typeof e ) { var r = this . string . slice ( this . pos ) . match ( e ) ; return r && r . index > 0 ? null : ( r && t !== ! 1 && ( this . pos += r [ 0 ] . length ) , r ) } var i = function ( e ) { return n ? e . toLowerCase ( ) : e } , o = this . string . substr ( this . pos , e . length ) ; return i ( o ) == i ( e ) ? ( t !== ! 1 && ( this . pos += e . length ) , ! 0 ) : void 0 } , current : function ( ) { return this . string . slice ( this . start , this . pos ) } , hideFirstChars : function ( e , t ) { this . lineStart += e ; try { return t ( ) } finally { this . lineStart -= e } } } ; var fa = 0 , da = e . TextMarker = function ( e , t ) { this . lines = [ ] , this . type = t , this . doc = e , this . id = ++ fa } ; Li ( da ) , da . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { var e = this . doc . cm , t = e && ! e . curOp ; if ( t && xt ( e ) , Si ( this , "clear" ) ) { var n = this . find ( ) ; n && _i ( this , "clear" , n . from , n . to ) } for ( var r = null , i = null , o = 0 ; o < this . lines . length ; ++ o ) { var a = this . lines [ o ] , l = Qn ( a . markedSpans , this ) ; e && ! this . collapsed ? Pt ( e , Jr ( a ) , "text" ) : e && ( null != l . to && ( i = Jr ( a ) ) , null != l . from && ( r = Jr ( a ) ) ) , a . markedSpans = Jn ( a . markedSpans , l ) , null == l . from && this . collapsed && ! xr ( this . doc , a ) && e && Qr ( a , yt ( e . display ) ) } if ( e && this . collapsed && ! e . options . lineWrapping ) for ( var o = 0 ; o < this . lines . length ; ++ o ) { var s = gr ( this . lines [ o ] ) , c = f ( s ) ; c > e . display . maxLineLength && ( e . display . maxLine = s , e . display . maxLineLength = c , e . display . maxLineChanged = ! 0 ) } null != r && e && this . collapsed && It ( e , r , i + 1 ) , this . lines . length = 0 , this . explicitlyCleared = ! 0 , this . atomic && this . doc . cantEdit && ( this . doc . cantEdit = ! 1 , e && Ee ( e . doc ) ) , e && _i ( e , "markerCleared" , e , this ) , t && kt ( e ) , this . parent && this . parent . clear ( ) } } , da . prototype . find = function ( e , t ) { null == e && "bookmark" == this . type && ( e = 1 ) ; for ( var n , r , i = 0 ; i < this . lines . length ; ++ i ) { var o = this . lines [ i ] , a = Qn ( o . markedSpans , this ) ; if ( null != a . from && ( n = qo ( t ? o : Jr ( o ) , a . from ) , - 1 == e ) ) return n ; if ( null != a . to && ( r = qo ( t ? o : Jr ( o ) , a . to ) , 1 == e ) ) return r } return n && { from : n , to : r } } , da . prototype . changed = function ( ) { var e = this . find ( - 1 , ! 0 ) , t = this , n = this . doc . cm ; e && n && At ( n , function ( ) { var r = e . line , i = Jr ( e . line ) , o = Je ( n , i ) ; if ( o && ( ot ( o ) , n . curOp . selectionChanged = n . curOp . forceUpdate = ! 0 ) , n . cu
n . on ( "beforeSelectionChange" , i ) ) : ! o && l && ( n . off ( "beforeSelectionChange" , i ) , t ( n ) , delete n . state . activeLines ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t , i , o ) { if ( this . atOccurrence = ! 1 , this . doc = e , null == o && "string" == typeof t && ( o = ! 1 ) , i = i ? e . clipPos ( i ) : r ( 0 , 0 ) , this . pos = { from : i , to : i } , "string" != typeof t ) t . global || ( t = new RegExp ( t . source , t . ignoreCase ? "ig" : "g" ) ) , this . matches = function ( n , i ) { if ( n ) { t . lastIndex = 0 ; for ( var o , a , l = e . getLine ( i . line ) . slice ( 0 , i . ch ) , s = 0 ; ; ) { t . lastIndex = s ; var c = t . exec ( l ) ; if ( ! c ) break ; if ( o = c , a = o . index , s = o . index + ( o [ 0 ] . length || 1 ) , s == l . length ) break } var u = o && o [ 0 ] . length || 0 ; u || ( 0 == a && 0 == l . length ? o = void 0 : a != e . getLine ( i . line ) . length && u ++ ) } else { t . lastIndex = i . ch ; var l = e . getLine ( i . line ) , o = t . exec ( l ) , u = o && o [ 0 ] . length || 0 , a = o && o . index ; a + u == l . length || u || ( u = 1 ) } return o && u ? { from : r ( i . line , a ) , to : r ( i . line , a + u ) , match : o } : void 0 } ; else { var a = t ; o && ( t = t . toLowerCase ( ) ) ; var l = o ? function ( e ) { return e . toLowerCase ( ) } : function ( e ) { return e } , s = t . split ( "\n" ) ; if ( 1 == s . length ) t . length ? this . matches = function ( i , o ) { if ( i ) { var s = e . getLine ( o . line ) . slice ( 0 , o . ch ) , c = l ( s ) , u = c . lastIndexOf ( t ) ; if ( u > - 1 ) return u = n ( s , c , u ) , { from : r ( o . line , u ) , to : r ( o . line , u + a . length ) } } else { var s = e . getLine ( o . line ) . slice ( o . ch ) , c = l ( s ) , u = c . indexOf ( t ) ; if ( u > - 1 ) return u = n ( s , c , u ) + o . ch , { from : r ( o . line , u ) , to : r ( o . line , u + a . length ) } } } : this . matches = function ( ) { } ; else { var c = a . split ( "\n" ) ; this . matches = function ( t , n ) { var i = s . length - 1 ; if ( t ) { if ( n . line - ( s . length - 1 ) < e . firstLine ( ) ) return ; if ( l ( e . getLine ( n . line ) . slice ( 0 , c [ i ] . length ) ) != s [ s . length - 1 ] ) return ; for ( var o = r ( n . line , c [ i ] . length ) , a = n . line - 1 , u = i - 1 ; u >= 1 ; -- u , -- a ) if ( s [ u ] != l ( e . getLine ( a ) ) ) return ; var f = e . getLine ( a ) , d = f . length - c [ 0 ] . length ; if ( l ( f . slice ( d ) ) != s [ 0 ] ) return ; return { from : r ( a , d ) , to : o } } if ( ! ( n . line + ( s . length - 1 ) > e . lastLine ( ) ) ) { var f = e . getLine ( n . line ) , d = f . length - c [ 0 ] . length ; if ( l ( f . slice ( d ) ) == s [ 0 ] ) { for ( var p = r ( n . line , d ) , a = n . line + 1 , u = 1 ; i > u ; ++ u , ++ a ) if ( s [ u ] != l ( e . getLine ( a ) ) ) return ; if ( l ( e . getLine ( a ) . slice ( 0 , c [ i ] . length ) ) == s [ i ] ) return { from : p , to : r ( a , c [ i ] . length ) } } } } } } } function n ( e , t , n ) { if ( e . length == t . length ) return n ; for ( var r = Math . min ( n , e . length ) ; ; ) { var i = e . slice ( 0 , r ) . toLowerCase ( ) . length ; if ( n > i ) ++ r ; else { if ( ! ( i > n ) ) return r ; -- r } } } var r = e . Pos ; t . prototype = { findNext : function ( ) { return this . find ( ! 1 ) } , findPrevious : function ( ) { return this . find ( ! 0 ) } , find : function ( e ) { function t ( e ) { var t = r ( e , 0 ) ; return n . pos = { from : t , to : t } , n . atOccurrence = ! 1 , ! 1 } for ( var n = this , i = this . doc . clipPos ( e ? this . pos . from : this . pos . to ) ; ; ) { if ( this . pos = this . matches ( e , i ) ) return this . atOccurrence = ! 0 , this . pos . match || ! 0 ; if ( e ) { if ( ! i . line ) return t ( 0 ) ; i = r ( i . line - 1 , this . doc . getLine ( i . line - 1 ) . length ) } else { var o = this . doc . lineCount ( ) ; if ( i . line == o - 1 ) return t ( o ) ; i = r ( i . line + 1 , 0 ) } } } , from : function ( ) { return this . atOccurrence ? this . pos . from : void 0 } , to : function ( ) { return this . atOccurrence ? this . pos . to : void 0 } , replace : function ( t , n ) { if ( this . atOccurrence ) { var i = e . splitLines ( t ) ; this . doc . replaceRange ( i , this . pos . from , this . pos . to , n ) , this . pos . to = r ( this . pos . from . line + i . length - 1 , i [ i . length - 1 ] . length + ( 1 == i . length ? this . pos . from . ch : 0 ) ) } } } , e . defineExtension ( "getSearchCursor" , function ( e , n , r ) { return new t ( this . doc , e , n , r ) } ) , e . defineDocExtension ( "getSearchCursor" , function ( e , n , r ) { return new t ( this , e , n , r ) } ) , e . defineExtension ( "selectMatches" , function ( t , n ) { for ( var r = [ ] , i = this . getSearchCursor ( t , this . getCursor ( "from" ) , n ) ; i . findNext ( ) && ! ( e . cmpPos ( i . to ( ) , this . getCursor ( "to" ) ) > 0 ) ; ) r . push ( { anchor : i . from ( ) , head : i . to ( ) } ) ; r . length && this . setSelections ( r , 0 ) } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "./searchcursor" ) , require ( "../dialog/dialog" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "./searchcursor" , "../dialog/dialog" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t ) { return "string" == typeof e ? e = new RegExp ( e . replace ( /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g , "\\$&" ) , t ? "gi" : "g" ) : e . global || ( e = new RegExp ( e . source , e . ignoreCase ? "gi" : "g" ) ) , { token : function ( t ) { e . lastIndex = t . pos ; var n = e . exec ( t . string ) ;
2015-05-04 07:53:29 +00:00
2015-09-24 05:57:10 +00:00
e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , a = [ ] , l = 0 ; l < o . length ; l ++ ) { var s = o [ l ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , f = 0 !== c . quote , d = i . getLine ( s . line ) , p = t . exec ( d ) ; if ( ! o [ l ] . empty ( ) || ! u && ! f || ! p ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( d ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } , "+delete" ) , a [ l ] = "\n" ; else { var h = p [ 1 ] , m = p [ 5 ] , g = r . test ( p [ 2 ] ) || p [ 2 ] . indexOf ( ">" ) >= 0 ? p [ 2 ] : parseInt ( p [ 3 ] , 10 ) + 1 + p [ 4 ] ; a [ l ] = "\n" + h + g + m } } i . replaceSelections ( a , null , "+input" ) } } ) , 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 ) { var t = e . search ( r ) ; return - 1 == t ? 0 : t } var n = { } , r = /[^\s\u00a0]/ , i = e . Pos ; e . commands . toggleComment = function ( e ) { for ( var t = 1 / 0 , n = e . listSelections ( ) , r = null , o = n . length - 1 ; o >= 0 ; o -- ) { var a = n [ o ] . from ( ) , l = n [ o ] . to ( ) ; a . line >= t || ( l . line >= t && ( l = i ( t , 0 ) ) , t = a . line , null == r ? e . uncomment ( a , l ) ? r = "un" : ( e . lineComment ( a , l ) , r = "line" ) : "un" == r ? e . uncomment ( a , l ) : e . lineComment ( a , l ) ) } } , e . defineExtension ( "lineComment" , function ( e , o , a ) { a || ( a = n ) ; var l = this , s = l . getModeAt ( e ) , c = a . lineComment || s . lineComment ; if ( ! c ) return void ( ( a . blockCommentStart || s . blockCommentStart ) && ( a . fullLines = ! 0 , l . blockComment ( e , o , a ) ) ) ; var u = l . getLine ( e . line ) ; if ( null != u ) { var f = Math . min ( 0 != o . ch || o . line == e . line ? o . line + 1 : o . line , l . lastLine ( ) + 1 ) , d = null == a . padding ? " " : a . padding , p = a . commentBlankLines || e . line == o . line ; l . operation ( function ( ) { if ( a . indent ) for ( var n = u . slice ( 0 , t ( u ) ) , o = e . line ; f > o ; ++ o ) { var s = l . getLine ( o ) , h = n . length ; ( p || r . test ( s ) ) && ( s . slice ( 0 , h ) != n && ( h = t ( s ) ) , l . replaceRange ( n + c + d , i ( o , 0 ) , i ( o , h ) ) ) } else for ( var o = e . line ; f > o ; ++ o ) ( p || r . test ( l . getLine ( o ) ) ) && l . replaceRange ( c + d , i ( o , 0 ) ) } ) } } ) , e . defineExtension ( "blockComment" , function ( e , t , o ) { o || ( o = n ) ; var a = this , l = a . getModeAt ( e ) , s = o . blockCommentStart || l . blockCommentStart , c = o . blockCommentEnd || l . blockCommentEnd ; if ( ! s || ! c ) return void ( ( o . lineComment || l . lineComment ) && 0 != o . fullLines && a . lineComment ( e , t , o ) ) ; var u = Math . min ( t . line , a . lastLine ( ) ) ; u != e . line && 0 == t . ch && r . test ( a . getLine ( u ) ) && -- u ; var f = null == o . padding ? " " : o . padding ; e . line > u || a . operation ( function ( ) { if ( 0 != o . fullLines ) { var n = r . test ( a . getLine ( u ) ) ; a . replaceRange ( f + c , i ( u ) ) , a . replaceRange ( s + f , i ( e . line , 0 ) ) ; var d = o . blockCommentLead || l . blockCommentLead ; if ( null != d ) for ( var p = e . line + 1 ; u >= p ; ++ p ) ( p != u || n ) && a . replaceRange ( d + f , i ( p , 0 ) ) } else a . replaceRange ( c , t ) , a . replaceRange ( s , e ) } ) } ) , e . defineExtension ( "uncomment" , function ( e , t , o ) { o || ( o = n ) ; var a , l = this , s = l . getModeAt ( e ) , c = Math . min ( 0 != t . ch || t . line == e . line ? t . line : t . line - 1 , l . lastLine ( ) ) , u = Math . min ( e . line , c ) , f = o . lineComment || s . lineComment , d = [ ] , p = null == o . padding ? " " : o . padding ; e : if ( f ) { for ( var h = u ; c >= h ; ++ h ) { var m = l . getLine ( h ) , g = m . indexOf ( f ) ; if ( g > - 1 && ! /comment/ . test ( l . getTokenTypeAt ( i ( h , g + 1 ) ) ) && ( g = - 1 ) , - 1 == g && ( h != c || h == u ) && r . test ( m ) ) break e ; if ( g > - 1 && r . test ( m . slice ( 0 , g ) ) ) break e ; d . push ( m ) } if ( l . operation ( function ( ) { for ( var e = u ; c >= e ; ++ e ) { var t = d [ e - u ] , n = t . indexOf ( f ) , r = n + f . length ; 0 > n || ( t . slice ( r , r + p . length ) == p && ( r += p . length ) , a = ! 0 , l . replaceRange ( "" , i ( e , n ) , i ( e , r ) ) ) } } ) , a ) return ! 0 } var v = o . blockCommentStart || s . blockCommentStart , y = o . blockCommentEnd || s . blockCommentEnd ; if ( ! v || ! y ) return ! 1 ; var b = o . blockCommentLead || s . blockCommentLead , x = l . getLine ( u ) , _ = c == u ? x : l . getLine ( c ) , k = x . indexOf ( v ) , w = _ . lastIndexOf ( y ) ; if ( - 1 == w && u != c && ( _ = l . getLine ( -- c ) , w = _ . lastIndexOf ( y ) ) , - 1 == k || - 1 == w || ! /comment/ . test ( l . getTokenTypeAt ( i ( u , k + 1 ) ) ) || ! /comment/ . test ( l . getTokenTypeAt ( i ( c , w + 1 ) ) ) ) return ! 1 ; var C = x . lastIndexOf ( v , e . ch ) , S = - 1 == C ? - 1 : x . slice ( 0 , e . ch ) . indexOf ( y , C + v . length ) ; if ( - 1 != C && - 1 != S && S + y . length != e . ch ) return ! 1 ; S = _ . indexOf ( y , t . ch ) ; var L = _ . slice ( t . ch ) . lastIndexOf ( v , S - t . ch ) ; return C = - 1 == S || - 1 == L ? - 1 : t . ch + L , - 1 != S && - 1 != C && C != t . ch ? ! 1 : ( l . operation ( function ( ) { l . replaceRange ( "" , i ( c , w - ( p && _ . slice ( w - p . length , w ) == p ? p . length : 0 ) ) , i ( c , w + y . length ) ) ; var e = k + v . length ; if ( p && x . slice ( e , e + p . length ) == p && ( e += p . length ) , l . replaceRange ( "" , i ( u , k ) , i ( u , e ) ) , b ) for ( var t = u + 1 ; c >= t ; ++ t ) { var n = l . getLine ( t ) , o = n . indexOf ( b ) ; if ( - 1 != o && ! r . test ( n . slice ( 0 , o ) ) ) { var a = o + b . length ; p && n . s
r } return e . match ( /^[^\]]+/ , ! 0 ) , I } function b ( e , t ) { return e . eatSpace ( ) ? null : ( e . match ( /^[^\s]+/ , ! 0 ) , void 0 === e . peek ( ) ? t . linkTitle = ! 0 : e . match ( /^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/ , ! 0 ) , t . f = t . inline = p , P + " url" ) } function x ( e ) { return G [ e ] || ( e = ( e + "" ) . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) , G [ e ] = new RegExp ( "^(?:[^\\\\]|\\\\.)*?(" + e + ")" ) ) , G [ e ] } var _ = e . modes . hasOwnProperty ( "xml" ) , k = e . getMode ( t , _ ? { name : "xml" , htmlMode : ! 0 } : "text/plain" ) ; void 0 === n . highlightFormatting && ( n . highlightFormatting = ! 1 ) , void 0 === n . maxBlockquoteDepth && ( n . maxBlockquoteDepth = 0 ) , void 0 === n . underscoresBreakWords && ( n . underscoresBreakWords = ! 0 ) , void 0 === n . fencedCodeBlocks && ( n . fencedCodeBlocks = ! 1 ) , void 0 === n . taskLists && ( n . taskLists = ! 1 ) , void 0 === n . strikethrough && ( n . strikethrough = ! 1 ) ; var w = 0 , C = "header" , S = "comment" , L = "quote" , M = "variable-2" , T = "variable-3" , A = "keyword" , z = "hr" , E = "tag" , O = "formatting" , q = "link" , N = "link" , I = "link" , P = "string" , D = "em" , j = "strong" , R = "strikethrough" , W = /^([*\-_])(?:\s*\1){2,}\s*$/ , F = /^[*\-+]\s+/ , H = /^[0-9]+([.)])\s+/ , $ = /^\[(x| )\](?=\s)/ , B = /^(#+)(?: |$)/ , U = /^ *(?:\={1,}|-{1,})\s*$/ , V = /^[^#!\[\]*_\\<>` "'(~]+/ , G = [ ] , K = { startState : function ( ) { return { f : l , prevLineHasContent : ! 1 , thisLineHasContent : ! 1 , block : l , htmlState : null , indentation : 0 , inline : p , text : d , formatting : ! 1 , linkText : ! 1 , linkHref : ! 1 , linkTitle : ! 1 , em : ! 1 , strong : ! 1 , header : 0 , hr : ! 1 , taskList : ! 1 , list : ! 1 , listDepth : 0 , quote : 0 , trailingSpace : 0 , trailingSpaceNewLine : ! 1 , strikethrough : ! 1 } } , copyState : function ( t ) { return { f : t . f , prevLineHasContent : t . prevLineHasContent , thisLineHasContent : t . thisLineHasContent , block : t . block , htmlState : t . htmlState && e . copyState ( k , t . htmlState ) , indentation : t . indentation , localMode : t . localMode , localState : t . localMode ? e . copyState ( t . localMode , t . localState ) : null , inline : t . inline , text : t . text , formatting : ! 1 , linkTitle : t . linkTitle , em : t . em , strong : t . strong , strikethrough : t . strikethrough , header : t . header , hr : t . hr , taskList : t . taskList , list : t . list , listDepth : t . listDepth , quote : t . quote , indentedCode : t . indentedCode , trailingSpace : t . trailingSpace , trailingSpaceNewLine : t . trailingSpaceNewLine , md _inside : t . md _inside } } , token : function ( e , t ) { if ( t . formatting = ! 1 , e . sol ( ) ) { var n = ! ! t . header || t . hr ; if ( t . header = 0 , t . hr = ! 1 , e . match ( /^\s*$/ , ! 0 ) || n ) return t . prevLineHasContent = ! 1 , a ( t ) , n ? this . token ( e , t ) : null ; t . prevLineHasContent = t . thisLineHasContent , t . thisLineHasContent = ! 0 , t . taskList = ! 1 , t . code = ! 1 , t . trailingSpace = 0 , t . trailingSpaceNewLine = ! 1 , t . f = t . block ; var r = e . match ( /^\s*/ , ! 0 ) [ 0 ] . replace ( /\t/g , " " ) . length , i = 4 * Math . floor ( ( r - t . indentation ) / 4 ) ; i > 4 && ( i = 4 ) ; var o = t . indentation + i ; if ( t . indentationDiff = o - t . indentation , t . indentation = o , r > 0 ) return null } return t . f ( e , t ) } , innerMode : function ( e ) { return e . block == s ? { state : e . htmlState , mode : k } : e . localState ? { state : e . localState , mode : e . localMode } : { state : e , mode : K } } , blankLine : a , getType : f , fold : "markdown" } ; return K } , "xml" ) , e . defineMIME ( "text/x-markdown" , "markdown" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "../markdown/markdown" ) , require ( "../../addon/mode/overlay" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "gfm" , function ( t , n ) { function r ( e ) { return e . code = ! 1 , null } var i = 0 , o = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , t ) { if ( t . combineTokens = null , t . codeBlock ) return e . match ( /^```/ ) ? ( t . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( t . code = ! 1 ) , e . sol ( ) && e . match ( /^```/ ) ) return e . skipToEnd ( ) , t . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var n = e . pos ; e . eatWhile ( "`" ) ; var r = 1 + e . pos - n ; return t . code ? r === i && ( t . code = ! 1 ) : ( i = r , t . code = ! 0 ) , null } if ( t . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return t . ateSpace = ! 0 , null ; if ( e . sol ( ) || t . ateSpace ) { if ( t . ateSpace = ! 1 , e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return t . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return t . combineTokens = ! 0 , "link" } return e . match ( / ^ ( (
2015-05-04 07:53:29 +00:00
2015-09-24 05:57:10 +00:00
e . registerHelper ( "hintWords" , "css" , _ ) , e . defineMIME ( "text/css" , { documentTypes : i , mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , fontProperties : h , counterDescriptors : g , colorKeywords : y , valueKeywords : x , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : ! 1 } } , name : "css" } ) , e . defineMIME ( "text/x-scss" , { mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , colorKeywords : y , valueKeywords : x , fontProperties : h , allowNested : ! 0 , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "/" ) ? ( e . skipToEnd ( ) , [ "comment" , "comment" ] ) : e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : [ "operator" , "operator" ] } , ":" : function ( e ) { return e . match ( /\s*\{/ ) ? [ null , "{" ] : ! 1 } , $ : function ( e ) { return e . match ( /^[\w-]+/ ) , e . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] } , "#" : function ( e ) { return e . eat ( "{" ) ? [ null , "interpolation" ] : ! 1 } } , name : "css" , helperType : "scss" } ) , e . defineMIME ( "text/x-less" , { mediaTypes : a , mediaFeatures : s , propertyKeywords : u , nonStandardPropertyKeywords : d , colorKeywords : y , valueKeywords : x , fontProperties : h , allowNested : ! 0 , tokenHooks : { "/" : function ( e , t ) { return e . eat ( "/" ) ? ( e . skipToEnd ( ) , [ "comment" , "comment" ] ) : e . eat ( "*" ) ? ( t . tokenize = n , n ( e , t ) ) : [ "operator" , "operator" ] } , "@" : function ( e ) { return e . eat ( "{" ) ? [ null , "interpolation" ] : e . match ( /^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/ , ! 1 ) ? ! 1 : ( e . eatWhile ( /[\w\\\-]/ ) , e . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] ) } , "&" : function ( ) { return [ "atom" , "atom" ] } } , name : "css" , helperType : "less" } ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) , require ( "../xml/xml" ) , require ( "../javascript/javascript" ) , require ( "../css/css" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../xml/xml" , "../javascript/javascript" , "../css/css" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "htmlmixed" , function ( t , n ) { function r ( e , t ) { var n = t . htmlState . tagName ; n && ( n = n . toLowerCase ( ) ) ; var r = l . token ( e , t . htmlState ) ; if ( "script" == n && /\btag\b/ . test ( r ) && ">" == e . current ( ) ) { var i = e . string . slice ( Math . max ( 0 , e . pos - 100 ) , e . pos ) . match ( /\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i ) ; i = i ? i [ 1 ] : "" , i && /[\"\']/ . test ( i . charAt ( 0 ) ) && ( i = i . slice ( 1 , i . length - 1 ) ) ; for ( var u = 0 ; u < c . length ; ++ u ) { var f = c [ u ] ; if ( "string" == typeof f . matches ? i == f . matches : f . matches . test ( i ) ) { f . mode && ( t . token = o , t . localMode = f . mode , t . localState = f . mode . startState && f . mode . startState ( l . indent ( t . htmlState , "" ) ) ) ; break } } } else "style" == n && /\btag\b/ . test ( r ) && ">" == e . current ( ) && ( t . token = a , t . localMode = s , t . localState = s . startState ( l . indent ( t . htmlState , "" ) ) ) ; return r } function i ( e , t , n ) { var r = e . current ( ) , i = r . search ( t ) ; return i > - 1 ? e . backUp ( r . length - i ) : r . match ( /<\/?$/ ) && ( e . backUp ( r . length ) , e . match ( t , ! 1 ) || e . match ( r ) ) , n } function o ( e , t ) { return e . match ( /^<\/\s*script\s*>/i , ! 1 ) ? ( t . token = r , t . localState = t . localMode = null , null ) : i ( e , /<\/\s*script\s*>/ , t . localMode . token ( e , t . localState ) ) } function a ( e , t ) { return e . match ( /^<\/\s*style\s*>/i , ! 1 ) ? ( t . token = r , t . localState = t . localMode = null , null ) : i ( e , /<\/\s*style\s*>/ , s . token ( e , t . localState ) ) } var l = e . getMode ( t , { name : "xml" , htmlMode : ! 0 , multilineTagIndentFactor : n . multilineTagIndentFactor , multilineTagIndentPastTag : n . multilineTagIndentPastTag } ) , s = e . getMode ( t , "css" ) , c = [ ] , u = n && n . scriptTypes ; if ( c . push ( { matches : /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i , mode : e . getMode ( t , "javascript" ) } ) , u ) for ( var f = 0 ; f < u . length ; ++ f ) { var d = u [ f ] ; c . push ( { matches : d . matches , mode : d . mode && e . getMode ( t , d . mode ) } ) } return c . push ( { matches : /./ , mode : e . getMode ( t , "text/plain" ) } ) , { startState : function ( ) { var e = l . startState ( ) ; return { token : r , localMode : null , localState : null , htmlState : e } } , copyState : function ( t ) { if ( t . localState ) var n = e . copyState ( t . localMode , t . localState ) ; return { token : t . token , localMode : t . localMode , localState : n , htmlState : e . copyState ( l , t . htmlState ) } } , token : function ( e , t ) { return t . token ( e , t ) } , indent : function ( t , n ) { return ! t . localMode || /^\s*<\// . test ( n ) ? l . indent ( t . htmlState , n ) : t . localMode . indent ? t . localMode . indent ( t . localState , n ) : e . Pass } , innerMode : function ( e ) { return { state : e . localState || e . htmlState , mode : e .
} return ( c || r && "comment" != r ) && ( t . lastTok = i ) , "|" == c && ( t . varList = ! t . varList ) , "indent" == n || /[\(\[\{]/ . test ( c ) ? t . context = { prev : t . context , type : c || r , indented : t . indented } : ( "dedent" == n || /[\)\]\}]/ . test ( c ) ) && t . context . prev && ( t . context = t . context . prev ) , e . eol ( ) && ( t . continuedLine = "\\" == c || "operator" == r ) , r } , indent : function ( t , n ) { if ( t . tokenize [ t . tokenize . length - 1 ] != r ) return 0 ; var i = n && n . charAt ( 0 ) , o = t . context , a = o . type == p [ i ] || "keyword" == o . type && /^(?:end|until|else|elsif|when|rescue)\b/ . test ( n ) ; return o . indented + ( a ? 0 : e . indentUnit ) + ( t . continuedLine ? e . indentUnit : 0 ) } , electricChars : "}de" , lineComment : "#" } } ) , e . defineMIME ( "text/x-ruby" , "ruby" ) } ) , 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 ) { return new RegExp ( "^((" + e . join ( ")|(" ) + "))\\b" ) } function n ( e ) { return e . scopes [ e . scopes . length - 1 ] } var r = t ( [ "and" , "or" , "not" , "is" ] ) , i = [ "as" , "assert" , "break" , "class" , "continue" , "def" , "del" , "elif" , "else" , "except" , "finally" , "for" , "from" , "global" , "if" , "import" , "lambda" , "pass" , "raise" , "return" , "try" , "while" , "with" , "yield" , "in" ] , o = [ "abs" , "all" , "any" , "bin" , "bool" , "bytearray" , "callable" , "chr" , "classmethod" , "compile" , "complex" , "delattr" , "dict" , "dir" , "divmod" , "enumerate" , "eval" , "filter" , "float" , "format" , "frozenset" , "getattr" , "globals" , "hasattr" , "hash" , "help" , "hex" , "id" , "input" , "int" , "isinstance" , "issubclass" , "iter" , "len" , "list" , "locals" , "map" , "max" , "memoryview" , "min" , "next" , "object" , "oct" , "open" , "ord" , "pow" , "property" , "range" , "repr" , "reversed" , "round" , "set" , "setattr" , "slice" , "sorted" , "staticmethod" , "str" , "sum" , "super" , "tuple" , "type" , "vars" , "zip" , "__import__" , "NotImplemented" , "Ellipsis" , "__debug__" ] , a = { builtins : [ "apply" , "basestring" , "buffer" , "cmp" , "coerce" , "execfile" , "file" , "intern" , "long" , "raw_input" , "reduce" , "reload" , "unichr" , "unicode" , "xrange" , "False" , "True" , "None" ] , keywords : [ "exec" , "print" ] } , l = { builtins : [ "ascii" , "bytes" , "exec" , "print" ] , keywords : [ "nonlocal" , "False" , "True" , "None" , "async" , "await" ] } ; e . registerHelper ( "hintWords" , "python" , i . concat ( o ) ) , e . defineMode ( "python" , function ( s , c ) { function u ( e , t ) { if ( e . sol ( ) && "py" == n ( t ) . type ) { var r = n ( t ) . offset ; if ( e . eatSpace ( ) ) { var i = e . indentation ( ) ; return i > r ? p ( e , t , "py" ) : r > i && h ( e , t ) && ( t . errorToken = ! 0 ) , null } var o = f ( e , t ) ; return r > 0 && h ( e , t ) && ( o += " " + g ) , o } return f ( e , t ) } function f ( e , t ) { if ( e . eatSpace ( ) ) return null ; var n = e . peek ( ) ; if ( "#" == n ) return e . skipToEnd ( ) , "comment" ; if ( e . match ( /^[0-9\.]/ , ! 1 ) ) { var i = ! 1 ; if ( e . match ( /^\d*\.\d+(e[\+\-]?\d+)?/i ) && ( i = ! 0 ) , e . match ( /^\d+\.\d*/ ) && ( i = ! 0 ) , e . match ( /^\.\d+/ ) && ( i = ! 0 ) , i ) return e . eat ( /J/i ) , "number" ; var o = ! 1 ; if ( e . match ( /^0x[0-9a-f]+/i ) && ( o = ! 0 ) , e . match ( /^0b[01]+/i ) && ( o = ! 0 ) , 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 ( L ) ? ( t . tokenize = d ( e . current ( ) ) , t . tokenize ( e , t ) ) : e . match ( x ) || e . match ( b ) ? null : e . match ( y ) || e . match ( _ ) ? "operator" : e . match ( v ) ? null : e . match ( M ) || e . match ( r ) ? "keyword" : e . match ( T ) ? "builtin" : e . match ( /^(self|cls)\b/ ) ? "variable-2" : e . match ( k ) ? "def" == t . lastToken || "class" == t . lastToken ? "def" : "variable" : ( e . next ( ) , g ) } function d ( 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 = u , r ; t . eat ( /['"]/ ) } if ( n ) { if ( c . singleLineStringErrors ) return g ; i . tokenize = u } return r } for ( ; "rub" . indexOf ( e . charAt ( 0 ) . toLowerCase ( ) ) >= 0 ; ) e = e . substr ( 1 ) ; var n = 1 == e . length , r = "string" ; return t . isString = ! 0 , t } function p ( e , t , r ) { var i = 0 , o = null ; if ( "py" == r ) for ( ; "py" != n ( t ) . type ; ) t . scopes . pop ( ) ; i = n ( t ) . offset + ( "py" == r ? s . indentUnit : w ) , "py" == r || e . match ( /^(\s|#.*)*$/ , ! 1 ) || ( o = e . column ( ) + 1 ) , t . scopes . push ( { offset : i , type : r , align : o } ) } function h ( e , t ) { for ( var r = e . indentation ( ) ; n ( t ) . offset > r ; ) { if ( "py" != n ( t ) . type ) return ! 0 ; t . scopes . pop ( ) } return n ( t ) . offset != r } function m ( e , t ) { var r = t . tokenize ( e , t ) , i = e . current ( ) ; if ( "." == i ) return r = e . match ( k , ! 1 ) ? null : g , null == r && "meta" == t . lastStyle && ( r = "meta" ) , r ; if ( "@" == i ) return c . version && 3 == parseInt ( c . version , 10 ) ? e . match ( k , ! 1 ) ? "meta" : "operator" : e . match ( k , ! 1 ) ? " meta
builtin : i ( "bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric" ) , 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 clo
2015-06-01 10:04:25 +00:00
return { startState : function ( e ) { return { tokenize : r , baseIndent : e || 0 , stack : [ ] } } , token : function ( e , t ) { if ( e . eatSpace ( ) ) return null ; l = null ; var n = t . tokenize ( e , t ) , r = t . stack [ t . stack . length - 1 ] ; return "hash" == l && "rule" == r ? n = "atom" : "variable" == n && ( "rule" == r ? n = "number" : r && "@media{" != r || ( n = "tag" ) ) , "rule" == r && /^[\{\};]$/ . test ( l ) && t . stack . pop ( ) , "{" == l ? "@media" == r ? t . stack [ t . stack . length - 1 ] = "@media{" : t . stack . push ( "{" ) : "}" == l ? t . stack . pop ( ) : "@media" == l ? t . stack . push ( "@media" ) : "{" == r && "comment" != l && t . stack . push ( "rule" ) , n } , indent : function ( e , t ) { var n = e . stack . length ; return /^\}/ . test ( t ) && ( n -= "rule" == e . stack [ e . stack . length - 1 ] ? 2 : 1 ) , e . baseIndent + n * f } , electricChars : "}" } } ) , e . defineMIME ( "text/nginx" , "text/x-nginx-conf" ) } ) , function ( e ) { "object" == typeof exports && "object" == typeof module ? e ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , e ) : e ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e , t ) { return e . string . charAt ( e . pos + ( t || 0 ) ) } function n ( e , t ) { if ( t ) { var n = e . pos - t ; return e . string . substr ( n >= 0 ? n : 0 , t ) } return e . string . substr ( 0 , e . pos - 1 ) } function r ( e , t ) { var n = e . string . length , r = n - e . pos + 1 ; return e . string . substr ( e . pos , t && n > t ? t : r ) } function i ( e , t ) { var n , r = e . pos + t ; 0 >= r ? e . pos = 0 : r >= ( n = e . string . length - 1 ) ? e . pos = n : e . pos = r } e . defineMode ( "perl" , function ( ) { function e ( e , t , n , r , i ) { return t . chain = null , t . style = null , t . tail = null , t . tokenize = function ( e , t ) { for ( var o , l = ! 1 , s = 0 ; o = e . next ( ) ; ) { if ( o === n [ s ] && ! l ) return void 0 !== n [ ++ s ] ? ( t . chain = n [ s ] , t . style = r , t . tail = i ) : i && e . eatWhile ( i ) , t . tokenize = a , r ; l = ! l && "\\" == o } return r } , t . tokenize ( e , t ) } function o ( e , t , n ) { return t . tokenize = function ( e , t ) { return e . string == n && ( t . tokenize = a ) , e . skipToEnd ( ) , "string" } , t . tokenize ( e , t ) } function a ( a , u ) { if ( a . eatSpace ( ) ) return null ; if ( u . chain ) return e ( a , u , u . chain , u . style , u . tail ) ; if ( a . match ( /^\-?[\d\.]/ , ! 1 ) && a . match ( /^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/ ) ) return "number" ; if ( a . match ( /^<<(?=\w)/ ) ) return a . eatWhile ( /\w/ ) , o ( a , u , a . current ( ) . substr ( 2 ) ) ; if ( a . sol ( ) && a . match ( /^\=item(?!\w)/ ) ) return o ( a , u , "=cut" ) ; var f = a . next ( ) ; if ( '"' == f || "'" == f ) { if ( n ( a , 3 ) == "<<" + f ) { var d = a . pos ; a . eatWhile ( /\w/ ) ; var p = a . current ( ) . substr ( 1 ) ; if ( p && a . eat ( f ) ) return o ( a , u , p ) ; a . pos = d } return e ( a , u , [ f ] , "string" ) } if ( "q" == f ) { var h = t ( a , - 2 ) ; if ( ! h || ! /\w/ . test ( h ) ) if ( h = t ( a , 0 ) , "x" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , s , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , s , c ) } else if ( "q" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "string" ) } else if ( "w" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , "bracket" ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , "bracket" ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , "bracket" ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , "bracket" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , "bracket" ) } else if ( "r" == h ) { if ( h = t ( a , 1 ) , "(" == h ) return i ( a , 2 ) , e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return i ( a , 2 ) , e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return i ( a , 2 ) , e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return i ( a , 2 ) , e ( a , u , [ ">" ] , s , c ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return i ( a , 1 ) , e ( a , u , [ a . eat ( h ) ] , s , c ) } else if ( /[\^'"!~\/(\[{<]/ . test ( h ) ) { if ( "(" == h ) return i ( a , 1 ) , e ( a , u , [ ")" ] , "string" ) ; if ( "[" == h ) return i ( a , 1 ) , e ( a , u , [ "]" ] , "string" ) ; if ( "{" == h ) return i ( a , 1 ) , e ( a , u , [ "}" ] , "string" ) ; if ( "<" == h ) return i ( a , 1 ) , e ( a , u , [ ">" ] , "string" ) ; if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ a . eat ( h ) ] , "string" ) } } if ( "m" == f ) { var h = t ( a , - 2 ) ; if ( ( ! h || ! /\w/ . test ( h ) ) && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) { if ( /[\^'"!~\/]/ . test ( h ) ) return e ( a , u , [ h ] , s , c ) ; if ( "(" == h ) return e ( a , u , [ ")" ] , s , c ) ; if ( "[" == h ) return e ( a , u , [ "]" ] , s , c ) ; if ( "{" == h ) return e ( a , u , [ "}" ] , s , c ) ; if ( "<" == h ) return e ( a , u , [ ">" ] , s , c ) } } if ( "s" == f ) { var h = /[\/>\]})\w]/ . test ( t ( a , - 2 ) ) ; if ( ! h && ( h = a . eat ( /[(\[{<\^'"!~\/]/ ) ) ) return "[" == h ? e ( a , u , [ "]" , "]" ] , s , c ) : "{" == h ? e ( a , u , [ "}" , "}" ] , s , c ) : "<" == h ? e ( a , u , [ ">" , ">" ] , s , c ) : "(" == h ? e ( a , u , [ ")" , ")" ] , s , c ) : e ( a , u , [ h , h ] , s , c ) } if ( "y" == f ) { var h = /[\/>\]})\w]/ . test ( t (