From 88d96898cde352732c8cbd0d1a8428d6b3a2ce86 Mon Sep 17 00:00:00 2001 From: Narciso Jaramillo Date: Wed, 5 Mar 2014 18:37:59 -0800 Subject: [PATCH] Preserve multiple selections when saving new document or doing save as --- src/document/DocumentCommandHandlers.js | 9 +++------ test/spec/DocumentCommandHandlers-test.js | 13 ++++++++++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/document/DocumentCommandHandlers.js b/src/document/DocumentCommandHandlers.js index 62c01f2ac12..553cf9f8b8f 100644 --- a/src/document/DocumentCommandHandlers.js +++ b/src/document/DocumentCommandHandlers.js @@ -714,8 +714,7 @@ define(function (require, exports, module) { var editor = EditorManager.getActiveEditor(); if (editor) { if (settings) { - editor.setCursorPos(settings.cursorPos); - editor.setSelection(settings.selection.start, settings.selection.end); + editor.setSelections(settings.selections); editor.setScrollPos(settings.scrollPos.x, settings.scrollPos.y); } } @@ -828,8 +827,7 @@ define(function (require, exports, module) { if (doc.isUntitled()) { if (doc === activeDoc) { settings = { - selection: activeEditor.getSelection(), - cursorPos: activeEditor.getCursorPos(), + selections: activeEditor.getSelections(), scrollPos: activeEditor.getScrollPos() }; } @@ -918,8 +916,7 @@ define(function (require, exports, module) { if (activeEditor) { doc = activeEditor.document; settings = {}; - settings.selection = activeEditor.getSelection(); - settings.cursorPos = activeEditor.getCursorPos(); + settings.selections = activeEditor.getSelections(); settings.scrollPos = activeEditor.getScrollPos(); } } diff --git a/test/spec/DocumentCommandHandlers-test.js b/test/spec/DocumentCommandHandlers-test.js index b98128f101c..53e94adb90e 100644 --- a/test/spec/DocumentCommandHandlers-test.js +++ b/test/spec/DocumentCommandHandlers-test.js @@ -752,7 +752,10 @@ define(function (require, exports, module) { describe("Save As", function () { var filePath, newFilename, - newFilePath; + newFilePath, + selections = [{start: {line: 0, ch: 1}, end: {line: 0, ch: 3}, primary: false, reversed: false}, + {start: {line: 0, ch: 6}, end: {line: 0, ch: 6}, primary: true, reversed: false}, + {start: {line: 0, ch: 9}, end: {line: 0, ch: 12}, primary: false, reversed: true}]; beforeEach(function () { filePath = testPath + "/test.js"; @@ -768,8 +771,10 @@ define(function (require, exports, module) { }); runs(function () { - var currentDocument = DocumentManager.getCurrentDocument(); + var currentDocument = DocumentManager.getCurrentDocument(), + currentEditor = EditorManager.getActiveEditor(); expect(currentDocument.file.fullPath).toEqual(filePath); + currentEditor.setSelections(selections); }); runs(function () { @@ -782,8 +787,10 @@ define(function (require, exports, module) { }); runs(function () { - var currentDocument = DocumentManager.getCurrentDocument(); + var currentDocument = DocumentManager.getCurrentDocument(), + currentEditor = EditorManager.getActiveEditor(); expect(currentDocument.file.fullPath).toEqual(newFilePath); + expect(currentEditor.getSelections()).toEqual(selections); }); runs(function () {