diff --git a/demo/kitchen-sink/demo.js b/demo/kitchen-sink/demo.js index 9880d33e..52f71d20 100644 --- a/demo/kitchen-sink/demo.js +++ b/demo/kitchen-sink/demo.js @@ -251,7 +251,7 @@ commands.addCommand({ } }); -var keybindings = { +var keybindings = { ace: null, // Null = use "default" keymapping vim: require("ace/keyboard/vim").handler, emacs: "ace/keyboard/emacs", @@ -317,7 +317,7 @@ doclist.history.index = 0; doclist.cycleOpen = function(editor, dir) { var h = this.history; h.index += dir; - if (h.index >= h.length) + if (h.index >= h.length) h.index = 0; else if (h.index <= 0) h.index = h.length - 1; @@ -499,7 +499,7 @@ bindDropdown("split", function(value) { sp.setSplits(1); } else { var newEditor = (sp.getSplits() == 1); - sp.setOrientation(value == "below" ? sp.BELOW : sp.BESIDE); + sp.setOrientation(value == "below" ? sp.BELOW : sp.BESIDE); sp.setSplits(2); if (newEditor) { @@ -592,6 +592,7 @@ env.editSnippets = function() { require("ace/ext/language_tools"); env.editor.setOptions({ enableBasicAutocompletion: true, + enableLiveAutocomplete: true, enableSnippets: true }); diff --git a/lib/ace/ext/language_tools.js b/lib/ace/ext/language_tools.js index 9bb5da6a..80c6973a 100644 --- a/lib/ace/ext/language_tools.js +++ b/lib/ace/ext/language_tools.js @@ -115,7 +115,7 @@ var loadSnippetFile = function(id) { }); }; -var onChangeAutocomplete = function(e) { +var doLiveAutocomplete = function(e) { var editor = e.editor; var session = editor.getSession(); var pos = editor.getCursorPosition(); @@ -174,16 +174,23 @@ require("../config").defineOptions(Editor.prototype, "editor", { if (val) { this.completers = completers; this.commands.addCommand(Autocomplete.startCommand); - - // On each change automatically trigger the autocomplete - this.commands.on('afterExec', onChangeAutocomplete); } else { - this.removeListener('afterExec', onChangeAutocomplete); this.commands.removeCommand(Autocomplete.startCommand); } }, value: false }, + enableLiveAutocomplete: { + set: function(val) { + if (val) { + // On each change automatically trigger the autocomplete + this.commands.on('afterExec', doLiveAutocomplete); + } else { + this.removeListener('afterExec', doLiveAutocomplete); + } + }, + value: false + }, enableSnippets: { set: function(val) { if (val) {