'use strict' ; define ( ( ) => { function selectAndClose ( inf ) { inf . closedlg ( true ) ; } const PREFKEY = 'prefs' ; function _checkForHttp ( text ) { return ( text . indexOf ( 'http://' ) === 0 ) || ( text . indexOf ( 'https://' ) === 0 ) ; } function _buildIo ( prefs , prefsio , isPrefToIo ) { Object . keys ( prefs ) . forEach ( ( key ) => { const pref = prefs [ key ] ; const storeProp = pref . storeprop || 'value' ; let prefIo ; if ( pref [ storeProp ] !== undefined ) { prefIo = prefsio [ key ] ; if ( prefIo === undefined ) { prefsio [ key ] = { } ; prefIo = prefsio [ key ] ; } if ( isPrefToIo ) { prefIo [ storeProp ] = pref [ storeProp ] ; if ( pref . history ) { prefIo . history = pref . history ; } } else { if ( prefIo !== undefined && prefIo [ storeProp ] !== undefined ) { pref [ storeProp ] = prefIo [ storeProp ] ; if ( pref . history && prefIo . history ) { pref . history = prefIo . history ; } } } if ( pref . fields ) { if ( ! prefIo . fields ) { prefIo . fields = { } ; } _buildIo ( pref . fields , prefIo . fields , isPrefToIo ) ; } } } ) ; return prefsio ; } return { checkForHttp : ( text ) => _checkForHttp ( text ) , load : ( prefs , extprefs ) => { extprefs . definePreference ( PREFKEY , 'object' , _buildIo ( prefs , { } , true ) ) ; _buildIo ( prefs , extprefs . get ( PREFKEY ) , false ) ; } , save : ( prefs , extprefs ) => { extprefs . set ( PREFKEY , _buildIo ( prefs , { } , true ) ) ; extprefs . save ( ) ; } , OPTIONFIELDS : [ 'tabSize' , 'historySize' , 'recentSize' , 'showcxtedit' , 'webSearch' , 'js6' , 'scss' , 'js' ] , version : { value : '' , } , commands : { value : { showinmenu : [ ] , showinctxmenu : [ ] , hotkeys : { } , } , } , splitMarker : { value : ',' , } , splitMarkerExtr : { value : '\\t' , samelabelas : 'splitMarker' , samehintas : 'splitMarker' , } , historySize : { value : 20 , type : 'number' , } , recentSize : { value : 20 , type : 'number' , } , showcxtedit : { value : true , type : 'boolean' , canempty : true , } , recentFiles : { value : '' , rows : 14 , size : '100%' , type : 'list' , storeprop : 'files' , files : [ ] , values : [ ] , events : [ { name : 'dblclick' , f : selectAndClose , } ] , } , startNum : { value : 1 , type : 'number' , } , numSep : { value : ".\\$" , history : [ ] , canempty : true , type : 'spacetext' , } , tabSize : { value : 2 , type : 'number' , } , findre : { value : '' , samelabelas : 'find' , history : [ ] , buttons : [ { label : 'Regnize' , } ] , } , findlabel : 'Find' , find : { value : '' , history : [ ] , buttons : [ { label : 'Regnize' , } ] , } , replace : { value : '' , history : [ ] , canempty : true , } , startValue : { value : '' , history : [ ] , canempty : true , } , stepValue : { value : '' , history : [ ] , canempty : true , } , iswordsonly : { value : false , type : 'boolean' , canempty : true , groupcols : 3 , } , isregexpr : { value : true , type : 'boolean' , canempty : true , } , isignorecase : { value : false , type : 'boolean' , canempty : true , groupcols : 1 , } , isimultiline : { value : false , type : 'boolean' , canempty : true , } , isall : { value : true , type : 'boolean' , canempty : true , } , isselonly : { value : true , type : 'boolean' , canempty : true , } , webSearch : { value : 'https://www.google.com/search?q=' , checkfunc ( text ) { return _checkForHttp ( text ) ? '' : 'It must start with http(s)://' ; } , } , js6 : { value : 'traceur --out "{{out}}" --script "{{in}}"' , fields : { autosave : { value : false , type : 'boolean' , align : 'center' , canempty : true , } , } , } , scss : { value : 'sass --sourcemap "{{in}}" "{{out}}"' , fields : { autosave : { value : false , type : 'boolean' , align : 'center' , canempty : true , } , } , buttons : [ { id : 'compass' , setvalue : 'compass compile "{{inrelfile}}"' , } , { id : 'sass' , setvalue : 'sass --sourcemap "{{in}}" "{{out}}"' , } ] , } , js : { value : 'uglifyjs "{{in}}" -o "{{out}}"' , } , linrparagraphs : { value : '1' , } , limaxcharsperline : { value : '0' , } , lihtmlparawrap : { value : '' , canempty : true , } , maxcharsperline : { value : '80' , } , tobreakwords : { value : false , type : 'boolean' , canempty : true , } , beforesave : { value : [ ] , } , aftersave : { value : [ ] , } , tools : { value : [ ] , } , } ; } ) ;