Add "enableLiveAutocomplete" option

This makes live autocomplete optional and is not tied to
“enableBasicAutocomplete” anymore

This also renames “onChangeAutocomplete” to “doLiveAutocomplete”
This commit is contained in:
Aaron O'Mullan 2014-02-08 01:01:30 +01:00
commit f7be399bd2
2 changed files with 16 additions and 8 deletions

View file

@ -592,6 +592,7 @@ env.editSnippets = function() {
require("ace/ext/language_tools"); require("ace/ext/language_tools");
env.editor.setOptions({ env.editor.setOptions({
enableBasicAutocompletion: true, enableBasicAutocompletion: true,
enableLiveAutocomplete: true,
enableSnippets: true enableSnippets: true
}); });

View file

@ -115,7 +115,7 @@ var loadSnippetFile = function(id) {
}); });
}; };
var onChangeAutocomplete = function(e) { var doLiveAutocomplete = function(e) {
var editor = e.editor; var editor = e.editor;
var session = editor.getSession(); var session = editor.getSession();
var pos = editor.getCursorPosition(); var pos = editor.getCursorPosition();
@ -174,16 +174,23 @@ require("../config").defineOptions(Editor.prototype, "editor", {
if (val) { if (val) {
this.completers = completers; this.completers = completers;
this.commands.addCommand(Autocomplete.startCommand); this.commands.addCommand(Autocomplete.startCommand);
// On each change automatically trigger the autocomplete
this.commands.on('afterExec', onChangeAutocomplete);
} else { } else {
this.removeListener('afterExec', onChangeAutocomplete);
this.commands.removeCommand(Autocomplete.startCommand); this.commands.removeCommand(Autocomplete.startCommand);
} }
}, },
value: false 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: { enableSnippets: {
set: function(val) { set: function(val) {
if (val) { if (val) {