diff --git a/lib/ace/commands/multi_select_commands.js b/lib/ace/commands/multi_select_commands.js index ff59f045..347eb606 100644 --- a/lib/ace/commands/multi_select_commands.js +++ b/lib/ace/commands/multi_select_commands.js @@ -80,6 +80,11 @@ exports.defaultCommands = [{ name: "alignCursors", exec: function(editor) { editor.alignCursors(); }, bindKey: {win: "Ctrl-Alt-A", mac: "Ctrl-Alt-A"} +}, { + name: "findAll", + exec: function(editor) { editor.findAll(); }, + bindKey: {win: "Ctrl-Alt-K", mac: "Ctrl-Alt-G"}, + readonly: true }]; // commands active only in multiselect mode diff --git a/lib/ace/multi_select.js b/lib/ace/multi_select.js index 0df59244..6b11691e 100644 --- a/lib/ace/multi_select.js +++ b/lib/ace/multi_select.js @@ -578,8 +578,14 @@ var Editor = require("./editor").Editor; this.findAll = function(needle, options, additive) { options = options || {}; options.needle = needle || options.needle; + if (options.needle == undefined) { + var range = this.selection.isEmpty() + ? this.selection.getWordRange() + : this.selection.getRange(); + options.needle = this.session.getTextRange(range); + } this.$search.set(options); - + var ranges = this.$search.findAll(this.session); if (!ranges.length) return 0;