Merge branch 'multiCursor'
Conflicts: demo/kitchen-sink/demo.js lib/ace/test/all_browser.js
This commit is contained in:
commit
aed7ca654c
26 changed files with 1902 additions and 386 deletions
|
|
@ -56,6 +56,10 @@ var HashHandler = require("ace/keyboard/hash_handler").HashHandler;
|
|||
|
||||
var modesByName;
|
||||
|
||||
// workers do not work for file:
|
||||
if (location.protocol == "file:")
|
||||
EditSession.prototype.$useWorker = false;
|
||||
|
||||
var Doc = function(name, desc, file) {
|
||||
this.name = name;
|
||||
this.desc = desc;
|
||||
|
|
@ -82,6 +86,7 @@ Mode.prototype.supportsFile = function(filename) {
|
|||
return filename.match(this.extRe);
|
||||
};
|
||||
|
||||
//{
|
||||
var modes = [
|
||||
new Mode("c_cpp", "C/C++", ["c", "cpp", "cxx", "h", "hpp"]),
|
||||
new Mode("clojure", "Clojure", ["clj"]),
|
||||
|
|
@ -260,6 +265,9 @@ var docs = [
|
|||
)
|
||||
];
|
||||
|
||||
//}
|
||||
|
||||
|
||||
var docsByName = {};
|
||||
docs.forEach(function(d) {
|
||||
docsByName[d.name] = d;
|
||||
|
|
@ -324,6 +332,11 @@ modes.forEach(function(mode) {
|
|||
modeEl.appendChild(option);
|
||||
});
|
||||
|
||||
bindDropdown("mode", function(value) {
|
||||
env.editor.getSession().setMode(modesByName[value].mode || modesByName.text.mode);
|
||||
env.editor.getSession().modeName = value;
|
||||
});
|
||||
|
||||
bindDropdown("doc", function(value) {
|
||||
var doc = docsByName[value].doc;
|
||||
|
||||
|
|
@ -344,40 +357,43 @@ function updateUIEditorOptions() {
|
|||
var editor = env.editor;
|
||||
var session = editor.session;
|
||||
|
||||
docEl.value = session.name;
|
||||
modeEl.value = session.modeName || "text";
|
||||
|
||||
session.setFoldStyle(foldingEl.value);
|
||||
|
||||
if (!session.getUseWrapMode()) {
|
||||
wrapModeEl.value = "off";
|
||||
} else {
|
||||
wrapModeEl.value = session.getWrapLimitRange().min || "free";
|
||||
}
|
||||
saveOption(docEl, session.name);
|
||||
saveOption(modeEl, session.modeName || "text");
|
||||
saveOption(wrapModeEl, session.getUseWrapMode() ? session.getWrapLimitRange().min || "free" : "off");
|
||||
|
||||
selectStyleEl.checked = editor.getSelectionStyle() == "line";
|
||||
themeEl.value = editor.getTheme();
|
||||
highlightActiveEl.checked = editor.getHighlightActiveLine();
|
||||
showHiddenEl.checked = editor.getShowInvisibles();
|
||||
showGutterEl.checked = editor.renderer.getShowGutter();
|
||||
showPrintMarginEl.checked = editor.renderer.getShowPrintMargin();
|
||||
highlightSelectedWordE.checked = editor.getHighlightSelectedWord();
|
||||
showHScrollEl.checked = editor.renderer.getHScrollBarAlwaysVisible();
|
||||
animateScrollEl.checked = editor.getAnimatedScroll();
|
||||
softTabEl.checked = session.getUseSoftTabs();
|
||||
behavioursEl.checked = editor.getBehavioursEnabled();
|
||||
saveOption(selectStyleEl, editor.getSelectionStyle() == "line");
|
||||
saveOption(themeEl, editor.getTheme());
|
||||
saveOption(highlightActiveEl, editor.getHighlightActiveLine());
|
||||
saveOption(showHiddenEl, editor.getShowInvisibles());
|
||||
saveOption(showGutterEl, editor.renderer.getShowGutter());
|
||||
saveOption(showPrintMarginEl, editor.renderer.getShowPrintMargin());
|
||||
saveOption(highlightSelectedWordE, editor.getHighlightSelectedWord());
|
||||
saveOption(showHScrollEl, editor.renderer.getHScrollBarAlwaysVisible());
|
||||
saveOption(showHScrollEl, editor.getAnimatedScroll());
|
||||
saveOption(softTabEl, session.getUseSoftTabs());
|
||||
saveOption(behavioursEl, editor.getBehavioursEnabled());
|
||||
}
|
||||
|
||||
bindDropdown("mode", function(value) {
|
||||
env.editor.getSession().setMode(modesByName[value].mode || modesByName.text.mode);
|
||||
env.editor.getSession().modeName = value;
|
||||
});
|
||||
function saveOption(el, val) {
|
||||
if (!el.onchange || el.onclick)
|
||||
return;
|
||||
if ("checked" in el) {
|
||||
if (val !== undefined)
|
||||
el.checked = val;
|
||||
localStorage && localStorage.setItem(el.id, el.checked ? 1 : 0);
|
||||
} else {
|
||||
if (val !== undefined)
|
||||
el.value = val;
|
||||
localStorage && localStorage.setItem(el.id, el.value);
|
||||
}
|
||||
}
|
||||
|
||||
bindDropdown("theme", function(value) {
|
||||
if (!value)
|
||||
return;
|
||||
|
||||
env.editor.setTheme(value);
|
||||
env.editor.setTheme(value);
|
||||
});
|
||||
|
||||
bindDropdown("keybinding", function(value) {
|
||||
|
|
@ -459,6 +475,7 @@ bindCheckbox("enable_behaviours", function(checked) {
|
|||
env.editor.setBehavioursEnabled(checked);
|
||||
});
|
||||
|
||||
|
||||
var secondSession = null;
|
||||
bindDropdown("split", function(value) {
|
||||
var sp = env.split;
|
||||
|
|
@ -486,8 +503,12 @@ bindDropdown("split", function(value) {
|
|||
|
||||
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();
|
||||
|
|
@ -495,9 +516,14 @@ function bindCheckbox(id, callback) {
|
|||
|
||||
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();
|
||||
}
|
||||
|
|
@ -589,4 +615,7 @@ commands.addCommand({
|
|||
}
|
||||
});
|
||||
|
||||
// add multiple cursor support to editor
|
||||
require("ace/multi_select").MultiSelect(env.editor);
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
function foo (items, nada) {
|
||||
function foo(items, nada) {
|
||||
for (var i=0; i<items.length; i++) {
|
||||
alert(items[i] + "juhu\n");
|
||||
} // Real Tab.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue