diff --git a/CHANGELOG.md b/CHANGELOG.md index 846cac2fc..6550419c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +* Fixed: Save As dialog now defaults to directory path of current editor * Fixed: Using toggle comment shortcut respects indentation level * Fixed: Search never completing in the command panel diff --git a/spec/app/pane-spec.coffee b/spec/app/pane-spec.coffee index c8ee47b0b..137ceac07 100644 --- a/spec/app/pane-spec.coffee +++ b/spec/app/pane-spec.coffee @@ -2,6 +2,7 @@ PaneContainer = require 'pane-container' Pane = require 'pane' {View} = require 'space-pen' $ = require 'jquery' +{dirname} = require 'path' describe "Pane", -> [container, view1, view2, editSession1, editSession2, pane] = [] @@ -373,7 +374,7 @@ describe "Pane", -> pane.trigger 'core:save-as' - expect(atom.showSaveDialogSync).toHaveBeenCalled() + expect(atom.showSaveDialogSync).toHaveBeenCalledWith(dirname(editSession2.getPath())) expect(editSession2.saveAs).toHaveBeenCalledWith('/selected/path') describe "when the current item does not have a saveAs method", -> diff --git a/src/app/atom.coffee b/src/app/atom.coffee index b3639eee8..94b6fb25b 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -199,9 +199,10 @@ window.atom = showSaveDialog: (callback) -> callback(showSaveDialogSync()) - showSaveDialogSync: -> + showSaveDialogSync: (defaultPath) -> + defaultPath ?= project?.getPath() currentWindow = remote.getCurrentWindow() - dialog.showSaveDialog currentWindow, title: 'Save File' + dialog.showSaveDialog currentWindow, {title: 'Save File', defaultPath} openDevTools: -> remote.getCurrentWindow().openDevTools() diff --git a/src/app/pane.coffee b/src/app/pane.coffee index 043c49ccf..fa9a2fcb5 100644 --- a/src/app/pane.coffee +++ b/src/app/pane.coffee @@ -1,3 +1,4 @@ +{dirname} = require 'path' {View} = require 'space-pen' $ = require 'jquery' _ = require 'underscore' @@ -222,7 +223,10 @@ class Pane extends View saveItemAs: (item, nextAction) -> return unless item.saveAs? - path = atom.showSaveDialogSync() + + itemPath = item.getUri?() + itemPath = dirname(itemPath) if itemPath + path = atom.showSaveDialogSync(itemPath) if path item.saveAs(path) nextAction?()