From 43a3c93d9bac80da29ea0d1e5c6a9bc1753210ac Mon Sep 17 00:00:00 2001 From: probablycorey Date: Mon, 6 May 2013 12:11:15 -0700 Subject: [PATCH] Substitution commands can replace text with empty string Closes #488 --- .../command-panel/lib/commands/composite-command.coffee | 2 +- src/packages/command-panel/lib/operation.coffee | 2 +- .../command-panel/spec/command-interpreter-spec.coffee | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/packages/command-panel/lib/commands/composite-command.coffee b/src/packages/command-panel/lib/commands/composite-command.coffee index 1f1e4f68e..7dbbc5258 100644 --- a/src/packages/command-panel/lib/commands/composite-command.coffee +++ b/src/packages/command-panel/lib/commands/composite-command.coffee @@ -40,7 +40,7 @@ class CompositeCommand if bufferRanges.length and not currentCommand.preserveSelections editSession.setSelectedBufferRanges(bufferRanges, autoscroll: true) - operationsWillChangeBuffer = _.detect(operations, (operation) -> operation.newText) + operationsWillChangeBuffer = _.detect(operations, (operation) -> operation.newText?) if operationsWillChangeBuffer editSession.transact(executeOperations) diff --git a/src/packages/command-panel/lib/operation.coffee b/src/packages/command-panel/lib/operation.coffee index 6b0ef00d3..c28b16f29 100644 --- a/src/packages/command-panel/lib/operation.coffee +++ b/src/packages/command-panel/lib/operation.coffee @@ -19,7 +19,7 @@ class Operation @getMarker().getRange() execute: (editSession) -> - @getBuffer().change(@getBufferRange(), @newText) if @newText + @getBuffer().change(@getBufferRange(), @newText) if @newText? @getBufferRange() unless @preserveSelection preview: -> diff --git a/src/packages/command-panel/spec/command-interpreter-spec.coffee b/src/packages/command-panel/spec/command-interpreter-spec.coffee index d5a7d283d..c35f42003 100644 --- a/src/packages/command-panel/spec/command-interpreter-spec.coffee +++ b/src/packages/command-panel/spec/command-interpreter-spec.coffee @@ -426,6 +426,12 @@ describe "CommandInterpreter", -> runs -> expect(buffer.lineForRow(6)).toBe '\t\t\tcurrent < pivot ? left.push(current) : right.push(current);' + it "removes matched text when an empty string is given as the replacement", -> + waitsForPromise -> + interpreter.eval('s/items//', editSession) + runs -> + expect(buffer.lineForRow(1)).toBe(' var sort = function() {') + describe "X x/regex/", -> it "returns selection operations for all regex matches in all the project's files", -> editSession.destroy()