ace.define('ace/ext/options', ['require', 'exports', 'module' ], function(require, exports, module) { var modesByName = modelist.modesByName; var options = [ ["Document", function(name) { doclist.loadDoc(name, function(session) { if (!session) return; session = env.split.setSession(session); updateUIEditorOptions(); env.editor.focus(); }); }, doclist.all], ["Mode", function(value) { env.editor.session.setMode(modesByName[value].mode || modesByName.text.mode); env.editor.session.modeName = value; }, function(value) { return env.editor.session.modeName || "text" }, modelist.modes], ["Split", function(value) { var sp = env.split; if (value == "none") { if (sp.getSplits() == 2) { env.secondSession = sp.getEditor(1).session; } sp.setSplits(1); } else { var newEditor = (sp.getSplits() == 1); if (value == "below") { sp.setOrientation(sp.BELOW); } else { sp.setOrientation(sp.BESIDE); } sp.setSplits(2); if (newEditor) { var session = env.secondSession || sp.getEditor(0).session; var newSession = sp.setSession(session, 1); newSession.name = session.name; } } }, ["None", "Beside", "Below"]], ["Theme", function(value) { if (!value) return; env.editor.setTheme("ace/theme/" + value); themeEl.selectedValue = value; }, function() { return env.editor.getTheme(); }, { "Bright": { chrome: "Chrome", clouds: "Clouds", crimson_editor: "Crimson Editor", dawn: "Dawn", dreamweaver: "Dreamweaver", eclipse: "Eclipse", github: "GitHub", solarized_light: "Solarized Light", textmate: "TextMate", tomorrow: "Tomorrow", xcode: "XCode" }, "Dark": { ambiance: "Ambiance", chaos: "Chaos", clouds_midnight: "Clouds Midnight", cobalt: "Cobalt", idle_fingers: "idleFingers", kr_theme: "krTheme", merbivore: "Merbivore", merbivore_soft: "Merbivore Soft", mono_industrial: "Mono Industrial", monokai: "Monokai", pastel_on_dark: "Pastel on dark", solarized_dark: "Solarized Dark", twilight: "Twilight", tomorrow_night: "Tomorrow Night", tomorrow_night_blue: "Tomorrow Night Blue", tomorrow_night_bright: "Tomorrow Night Bright", tomorrow_night_eighties: "Tomorrow Night 80s", vibrant_ink: "Vibrant Ink", } }], ["Code Folding", function(value) { env.editor.getSession().setFoldStyle(value); env.editor.setShowFoldWidgets(value !== "manual"); }, ["manual", "mark begin", "mark begin and end"]], ["Soft Wrap", function(value) { value = value.toLowerCase() var session = env.editor.getSession(); var renderer = env.editor.renderer; session.setUseWrapMode(value == "off"); var col = parseInt(value) || null; renderer.setPrintMarginColumn(col || 80); session.setWrapLimitRange(col, col); }, ["Off", "40 Chars", "80 Chars", "Free"]], ["Key Binding", function(value) { env.editor.setKeyboardHandler(keybindings[value]); }, ["Ace", "Vim", "Emacs", "Custom"]], ["Font Size", function(value) { env.split.setFontSize(value + "px"); }, [10, 11, 12, 14, 16, 20, 24]], ["Full Line Selection", function(checked) { env.editor.setSelectionStyle(checked ? "line" : "text"); }], ["Highlight Active Line", function(checked) { env.editor.setHighlightActiveLine(checked); }], ["Show Invisibles", function(checked) { env.editor.setShowInvisibles(checked); }], ["Show Gutter", function(checked) { env.editor.renderer.setShowGutter(checked); }], ["Show Indent Guides", function(checked) { env.editor.renderer.setDisplayIndentGuides(checked); }], ["Show Print Margin", function(checked) { env.editor.renderer.setShowPrintMargin(checked); }], ["Persistent HScroll", function(checked) { env.editor.renderer.setHScrollBarAlwaysVisible(checked); }], ["Animate Scrolling", function(checked) { env.editor.setAnimatedScroll(checked); }], ["Use Soft Tab", function(checked) { env.editor.getSession().setUseSoftTabs(checked); }], ["Highlight Selected Word", function(checked) { env.editor.setHighlightSelectedWord(checked); }], ["Enable Behaviours", function(checked) { env.editor.setBehavioursEnabled(checked); }], ["Fade Fold Widgets", function(checked) { env.editor.setFadeFoldWidgets(checked); }], ["Show Token info", function(checked) { env.editor.setFadeFoldWidgets(checked); }] ] var createOptionsPanel = function(options) { var html = [] var container = document.createElement("div"); container.style.cssText = "position: absolute; overflow: hidden"; var inner = document.createElement("div"); inner.style.cssText = "width: 120%;height:100%;overflow: scroll"; container.appendChild(inner); html.push(""); options.forEach(function(o) { }); html.push( '', '', '' ) html.push("
', '', '', '', '
"); return container; } function bindCheckbox(id, callback) { var el = document.getElementById(id); if (localStorage && localStorage.getItem(id)) el.checked = localStorage.getItem(id) == "1"; var onCheck = function() { callback(!!el.checked); saveOption(el); }; el.onclick = onCheck; onCheck(); } function bindDropdown(id, callback) { var el = document.getElementById(id); if (localStorage && localStorage.getItem(id)) el.value = localStorage.getItem(id); var onChange = function() { callback(el.value); saveOption(el); }; el.onchange = onChange; onChange(); } function fillOptgroup(list, el) { list.forEach(function(item) { var option = document.createElement("option"); option.setAttribute("value", item.name); option.innerHTML = item.desc; el.appendChild(option); }); } function fillDropdown(list, el) { if (Array.isArray(list)) { fillOptgroup(list, el); return; } for(var i in list) { var group = document.createElement("optgroup"); group.setAttribute("label", i); fillOptgroup(list[i], group); el.appendChild(group); } } function createOptionControl(opt) { if (opt.values) { var el = dom.createElement("select"); el.setAttribute("size", opt.visibleSize || 1); fillDropdown(opt.values, el) } else { var el = dom.createElement("checkbox"); } el.setAttribute("name", "opt_" + opt.name) return el; } function createOptionCell(opt) { if (opt.values) { var el = dom.createElement("select"); el.setAttribute("size", opt.visibleSize || 1); fillDropdown(opt.values, el) } else { var el = dom.createElement("checkbox"); } el.setAttribute("name", "opt_" + opt.name) return el; } createOptionsPanel(options) });