From 94f5cd8c3d61b7064a995d1c13396a6b7ecbda2f Mon Sep 17 00:00:00 2001 From: Pleshevskiy Dima Date: Mon, 4 Dec 2017 23:06:03 +0300 Subject: [PATCH] Add default pattern from last search regexp --- plugins/c9.ide.ace.keymaps/cli.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/c9.ide.ace.keymaps/cli.js b/plugins/c9.ide.ace.keymaps/cli.js index 0a69fc35..e393367c 100644 --- a/plugins/c9.ide.ace.keymaps/cli.js +++ b/plugins/c9.ide.ace.keymaps/cli.js @@ -224,14 +224,23 @@ define(function(require, exports, module) { * @see {@link http://vim.wikia.com/wiki/Search_and_replace|Vim wiki - sed} */ 'sed': { - regex: /^(%|'<,'>|(?:\d+|\.),(?:\+?\d+|\$|\.))?s(\/|#)(.+?)\2(.*?)\2([giIc]*)$/, + regex: /^(%|'<,'>|(?:\d+|\.),(?:\+?\d+|\$|\.))?s(\/|#)(.*?)\2(.*?)\2([giIc]*)$/, action: function (editor, cmd, data) { - // todo: if not data.match[3] get previous search result - var pattern = data.match[3] + var pattern = ( + data.match[3] + || (editor.state.cm + && editor.state.cm.$searchHighlight + && editor.state.cm.$searchHighlight.regExp.source) + || '') .replace(/(\\)?(\(|\)|\+|\?|\||\&|\{)/g, function (m, m1, m2) { // Revert regular syntax return m1 ? m2 : '\\' + m2; }); + if (!pattern) { + return editor.cmdLine.setTimedMessage( + 'E35: No previous regular expression', + 15000); + } /** * g - global by row