diff --git a/lib/ace/incremental_search.js b/lib/ace/incremental_search.js index 0faee1d9..5d439c81 100644 --- a/lib/ace/incremental_search.js +++ b/lib/ace/incremental_search.js @@ -167,4 +167,33 @@ oop.inherits(IncrementalSearch, Search); exports.IncrementalSearch = IncrementalSearch; + +var Editor = require("./editor").Editor; +require("./config").defineOptions(Editor.prototype, "editor", { + useIncrementalSearch: { + set: function(val) { + var iSearchCommands = require("ace/commands/incremental_search_commands").iSearchStartCommands; + var kbd = ace.getKeyboardHandler(); + if (val) { + // enable for whole editor + this.commands.addCommands(iSearchCommands); + if (kbd.isEmacs) { // adapt emacs key handler if used + kbd.oldSearchBindings = { + 'c-s': kbd.commmandKeyBinding['c-s'], + 'c-r': kbd.commmandKeyBinding['c-r'] + } + kbd.bindKey('C-s', 'iSearch'); + kbd.bindKey('C-r', 'iSearchBackwards'); + } + } else { + this.commands.removeCommands(iSearchCommands); + if (kbd.isEmacs) { + kbd.bindKey('C-s', kbd.oldSearchBindings['c-s']); + kbd.bindKey('C-r', kbd.oldSearchBindings['c-r']); + } + } + } + } +}); + });