diff --git a/spec/text-editor-registry-spec.js b/spec/text-editor-registry-spec.js index ea779b00e..dfaf57dd2 100644 --- a/spec/text-editor-registry-spec.js +++ b/spec/text-editor-registry-spec.js @@ -338,5 +338,17 @@ describe('TextEditorRegistry', function () { atom.config.set('editor.preferredLineLength', 80) expect(editor.getPreferredLineLength()).toBe(80) }) + + it('enables or disables back-up-before-save based on the config', function () { + editor.setBackUpBeforeSaving(true) + expect(editor.doesBackUpBeforeSaving()).toBe(true) + + atom.config.set('editor.backUpBeforeSaving', false) + registry.maintainConfig(editor) + expect(editor.doesBackUpBeforeSaving()).toBe(false) + + atom.config.set('editor.backUpBeforeSaving', true) + expect(editor.doesBackUpBeforeSaving()).toBe(true) + }) }) }) diff --git a/src/text-editor-registry.js b/src/text-editor-registry.js index 0742a8477..8c52ab6ad 100644 --- a/src/text-editor-registry.js +++ b/src/text-editor-registry.js @@ -13,6 +13,7 @@ const EDITOR_SETTER_NAMES_BY_SETTING_KEY = [ ['editor.softWrapHangingIndent', 'setSoftWrapIndentLength'], ['editor.softWrapAtPreferredLineLength', 'setSoftWrapAtPreferredLineLength'], ['editor.preferredLineLength', 'setPreferredLineLength'], + ['editor.backUpBeforeSaving', 'setBackUpBeforeSaving'], ] // Experimental: This global registry tracks registered `TextEditors`. diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 796280ae9..4a66f3140 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -728,17 +728,21 @@ class TextEditor extends Model Section: File Operations ### + setBackUpBeforeSaving: (@backUpBeforeSaving) -> + + doesBackUpBeforeSaving: -> @backUpBeforeSaving + # Essential: Saves the editor's text buffer. # # See {TextBuffer::save} for more details. - save: -> @buffer.save(backup: @config.get('editor.backUpBeforeSaving')) + save: -> @buffer.save(backup: @backUpBeforeSaving) # Essential: Saves the editor's text buffer as the given path. # # See {TextBuffer::saveAs} for more details. # # * `filePath` A {String} path. - saveAs: (filePath) -> @buffer.saveAs(filePath, backup: @config.get('editor.backUpBeforeSaving')) + saveAs: (filePath) -> @buffer.saveAs(filePath, backup: @backUpBeforeSaving) # Determine whether the user should be prompted to save before closing # this editor.