Я хочу использовать Ace Editor для обработки событий, но не хочу дополнительных функций и команд (переключение строк, несколько курсоров и т. д.), а только команды по умолчанию. Есть ли быстрый способ сделать это?
Мой текущий подход состоит в том, чтобы создать массив стандартных команд в текстовой области (еще не знаю, как это сделать), а затем удалить их из всех команд следующим образом:
//Returns the set difference of this array and arr array
Array.prototype.diff = function(arr) {
return this.filter(function(i) {return arr.indexOf(i) < 0;});
};
//Removes all Ace Editor commands which are not in the standardCommands array
function removeSpecialCommands(editor) {
var commands = Object.keys(editor.commands.commands); //gets all commands
var specialCommands = commands.diff(standardCommands); //gets extra ace cmnds
editor.commands.removeCommands(specialCommands); //removes those commands
}
Однако выполнить каждую команду непросто, так как многие из них нельзя вызвать непосредственно в редакторе. Поэтому я не уверен, какие команды являются стандартными. Есть ли более простой способ получить только стандартные команды текстового поля (вкладка, вставка, удаление, перемещение курсора с домом, pgup, клавиши со стрелками и т. д.)?