diff --git a/src/extensions/command-panel/spec/command-panel-spec.coffee b/src/extensions/command-panel/spec/command-panel-spec.coffee index 96b7d6e98..a73155a8d 100644 --- a/src/extensions/command-panel/spec/command-panel-spec.coffee +++ b/src/extensions/command-panel/spec/command-panel-spec.coffee @@ -407,3 +407,8 @@ describe "CommandPanel", -> expect(editSession.buffer.getPath()).toBe project.resolve(operation.getPath()) expect(editSession.getSelectedBufferRange()).toEqual operation.getBufferRange() expect(rootView.focus).toHaveBeenCalled() + + describe ".escapedCommand()", -> + it "escapes characters with a backslash in front of them", -> + commandPanel.miniEditor.setText("a\\tb") + expect(commandPanel.escapedCommand()).toBe("a\tb") diff --git a/src/extensions/command-panel/src/command-panel.coffee b/src/extensions/command-panel/src/command-panel.coffee index b07e17d3c..fbc922c54 100644 --- a/src/extensions/command-panel/src/command-panel.coffee +++ b/src/extensions/command-panel/src/command-panel.coffee @@ -102,7 +102,10 @@ class CommandPanel extends View @previewList.hide() super - execute: (command = @miniEditor.getText()) -> + escapedCommand: -> + @miniEditor.getText().replace /\\(.)/, (match, charachter) -> eval("'\\#{charachter}'") + + execute: (command=@escapedCommand())-> try @commandInterpreter.eval(command, @rootView.getActiveEditSession()).done (operationsToPreview) => @history.push(command)