2014-06-18 23:27:05 +02:00
ace . define ( "ace/ext/textarea" , [ "require" , "exports" , "module" , "ace/lib/event" , "ace/lib/useragent" , "ace/lib/net" , "ace/ace" , "ace/theme/textmate" , "ace/mode/text" ] , function ( e , t , n ) { function a ( e , t ) { for ( var n in t ) e . style [ n ] = t [ n ] } function f ( e , t ) { if ( e . type != "textarea" ) throw new Error ( "Textarea required!" ) ; var n = e . parentNode , i = document . createElement ( "div" ) , s = function ( ) { var t = "position:relative;" ; [ "margin-top" , "margin-left" , "margin-right" , "margin-bottom" ] . forEach ( function ( n ) { t += n + ":" + u ( e , i , n ) + ";" } ) ; var n = u ( e , i , "width" ) || e . clientWidth + "px" , r = u ( e , i , "height" ) || e . clientHeight + "px" ; t += "height:" + r + ";width:" + n + ";" , t += "display:inline-block;" , i . setAttribute ( "style" , t ) } ; r . addListener ( window , "resize" , s ) , s ( ) , n . insertBefore ( i , e . nextSibling ) ; while ( n !== document ) { if ( n . tagName . toUpperCase ( ) === "FORM" ) { var o = n . onsubmit ; n . onsubmit = function ( n ) { e . value = t ( ) , o && o . call ( this , n ) } ; break } n = n . parentNode } return i } function l ( t , n , r ) { s . loadScript ( t , function ( ) { e ( [ n ] , r ) } ) } function c ( n , r , i , s , o , u ) { function c ( e ) { return e === "true" || e == 1 } var a = n . getSession ( ) , f = n . renderer ; return u = u || l , n . setDisplaySettings = function ( e ) { e == null && ( e = i . style . display == "none" ) , e ? ( i . style . display = "block" , i . hideButton . focus ( ) , n . on ( "focus" , function t ( ) { n . removeListener ( "focus" , t ) , i . style . display = "none" } ) ) : n . focus ( ) } , n . $setOption = n . setOption , n . setOption = function ( t , i ) { if ( o [ t ] == i ) return ; switch ( t ) { case "mode" : i != "text" ? u ( "mode-" + i + ".js" , "ace/mode/" + i , function ( ) { var t = e ( "../mode/" + i ) . Mode ; a . setMode ( new t ) } ) : a . setMode ( new ( e ( "../mode/text" ) . Mode ) ) ; break ; case "theme" : i != "textmate" ? u ( "theme-" + i + ".js" , "ace/theme/" + i , function ( ) { n . setTheme ( "ace/theme/" + i ) } ) : n . setTheme ( "ace/theme/textmate" ) ; break ; case "fontSize" : r . style . fontSize = i ; break ; case "keybindings" : switch ( i ) { case "vim" : n . setKeyboardHandler ( "ace/keyboard/vim" ) ; break ; case "emacs" : n . setKeyboardHandler ( "ace/keyboard/emacs" ) ; break ; default : n . setKeyboardHandler ( null ) } break ; case "softWrap" : switch ( i ) { case "off" : a . setUseWrapMode ( ! 1 ) , f . setPrintMarginColumn ( 80 ) ; break ; case "40" : a . setUseWrapMode ( ! 0 ) , a . setWrapLimitRange ( 40 , 40 ) , f . setPrintMarginColumn ( 40 ) ; break ; case "80" : a . setUseWrapMode ( ! 0 ) , a . setWrapLimitRange ( 80 , 80 ) , f . setPrintMarginColumn ( 80 ) ; break ; case "free" : a . setUseWrapMode ( ! 0 ) , a . setWrapLimitRange ( null , null ) , f . setPrintMarginColumn ( 80 ) } break ; default : n . $setOption ( t , c ( i ) ) } o [ t ] = i } , n . getOption = function ( e ) { return o [ e ] } , n . getOptions = function ( ) { return o } , n . setOptions ( t . options ) , n } function h ( e , t , n , i ) { function f ( e , t , n , r ) { if ( ! n ) { e . push ( "<input type='checkbox' title='" , t , "' " , r == "true" ? "checked='true'" : "" , "'></input>" ) ; return } e . push ( "<select title='" + t + "'>" ) ; for ( var i in n ) e . push ( "<option value='" + i + "' " ) , r == i && e . push ( " selected " ) , e . push ( ">" , n [ i ] , "</option>" ) ; e . push ( "</select>" ) } var s = null , o = { mode : "Mode:" , gutter : "Display Gutter:" , theme : "Theme:" , fontSize : "Font Size:" , softWrap : "Soft Wrap:" , keybindings : "Keyboard" , showPrintMargin : "Show Print Margin:" , useSoftTabs : "Use Soft Tabs:" , showInvisibles : "Show Invisibles" } , u = { mode : { text : "Plain" , javascript : "JavaScript" , xml : "XML" , html : "HTML" , css : "CSS" , scss : "SCSS" , python : "Python" , php : "PHP" , java : "Java" , ruby : "Ruby" , c _cpp : "C/C++" , coffee : "CoffeeScript" , json : "json" , perl : "Perl" , clojure : "Clojure" , ocaml : "OCaml" , csharp : "C#" , haxe : "haXe" , svg : "SVG" , textile : "Textile" , groovy : "Groovy" , liquid : "Liquid" , Scala : "Scala" } , theme : { clouds : "Clouds" , clouds _midnight : "Clouds Midnight" , cobalt : "Cobalt" , crimson _editor : "Crimson Editor" , dawn : "Dawn" , eclipse : "Eclipse" , idle _fingers : "Idle Fingers" , kr _theme : "Kr Theme" , merbivore : "Merbivore" , merbivore _soft : "Merbivore Soft" , mono _industrial : "Mono Industrial" , monokai : "Monokai" , pastel _on _dark : "Pastel On Dark" , solarized _dark : "Solarized Dark" , solarized _light : "Solarized Light" , textmate : "Textmate" , twilight : "Twilight" , vibrant _ink : "Vibrant Ink" } , gutter : s , fontSize : { "10px" : "10px" , "11px" : "11px" , "12px" : "12px" , "14px" : "14px" , "16px" : "16px" } , softWrap : { off : "Off" , 40 : "40" , 80 : "80" , free : "Free" } , keybindings : { ace : "ace" , vim : "vim" , emacs : "emacs" } , showPrintMargin : s , useSoftTabs : s , showInvisibles : s } , a = [ ] ; a . push ( "<table><tr><th>Setting</th><th>Value</th></tr>" ) ; for ( var l in i ) a . push ( "<tr><td>" , o [ l ] , "</td>" ) , a . push ( "<td>" ) , f ( a , l , u [ l ] , i [ l ] ) , a . push ( "</td></tr>" ) ; a . push ( "</table>" )