diff --git a/lib/ace/ext/searchbox.css b/lib/ace/ext/searchbox.css index ca58e74d..5de8d847 100644 --- a/lib/ace/ext/searchbox.css +++ b/lib/ace/ext/searchbox.css @@ -7,7 +7,7 @@ background-color: #ddd; border: 1px solid #cbcbcb; border-top: 0 none; - max-width: 297px; + max-width: 325px; overflow: hidden; margin: 0; padding: 4px; diff --git a/lib/ace/ext/searchbox.js b/lib/ace/ext/searchbox.js index fbbaa8f3..0369f2d0 100644 --- a/lib/ace/ext/searchbox.js +++ b/lib/ace/ext/searchbox.js @@ -46,6 +46,7 @@ var html = '\
\ \ @@ -170,6 +171,11 @@ var SearchBox = function(editor, range, showReplaceForm) { sb.replace(); sb.findPrev(); }, + "Alt-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replaceAll(); + sb.findAll(); + }, "Tab": function(sb) { (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus(); } @@ -229,6 +235,18 @@ var SearchBox = function(editor, range, showReplaceForm) { this.findPrev = function() { this.find(true, true); }; + this.findAll = function(){ + var range = this.editor.findAll(this.searchInput.value, { + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.hide(); + }; this.replace = function() { if (!this.editor.getReadOnly()) this.editor.replace(this.replaceInput.value);