mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
Restore closed tab at previous index
This commit is contained in:
parent
fb9451556d
commit
5ecbda0aac
@ -2673,13 +2673,23 @@ describe "Editor", ->
|
||||
expect(rightEditor.editSessions[1].getPath()).toBe txtPath
|
||||
|
||||
describe "when editor:undo-close-session is triggered", ->
|
||||
it "opens the closed session back up", ->
|
||||
describe "when an edit session is opened back up after it is closed", ->
|
||||
it "is removed from the undo stack and not reopened when the event is triggered", ->
|
||||
rootView.open('sample.txt')
|
||||
expect(editor.getPath()).toBe fixturesProject.resolve('sample.txt')
|
||||
editor.trigger "core:close"
|
||||
expect(editor.closedEditSessions.length).toBe 1
|
||||
rootView.open('sample.txt')
|
||||
expect(editor.closedEditSessions.length).toBe 0
|
||||
editor.trigger 'editor:undo-close-session'
|
||||
expect(editor.getPath()).toBe fixturesProject.resolve('sample.txt')
|
||||
|
||||
it "opens the closed session back up at the previous index", ->
|
||||
rootView.open('sample.txt')
|
||||
expect(editor.getPath()).toBe require.resolve('fixtures/sample.txt')
|
||||
expect(editor.closedEditSessions.length).toBe 0
|
||||
editor.loadPreviousEditSession()
|
||||
expect(editor.getPath()).toBe fixturesProject.resolve('sample.js')
|
||||
editor.trigger "core:close"
|
||||
expect(editor.getPath()).toBe require.resolve('fixtures/sample.js')
|
||||
expect(editor.closedEditSessions.length).toBe 1
|
||||
expect(editor.getPath()).toBe fixturesProject.resolve('sample.txt')
|
||||
editor.trigger 'editor:undo-close-session'
|
||||
expect(editor.getPath()).toBe require.resolve('fixtures/sample.txt')
|
||||
expect(editor.closedEditSessions.length).toBe 0
|
||||
expect(editor.getPath()).toBe fixturesProject.resolve('sample.js')
|
||||
expect(editor.getActiveEditSessionIndex()).toBe 0
|
||||
|
@ -467,6 +467,8 @@ class Editor extends View
|
||||
pushEditSession: (editSession) ->
|
||||
index = @editSessions.length
|
||||
@editSessions.push(editSession)
|
||||
@closedEditSessions = @closedEditSessions.filter ({path})->
|
||||
path isnt editSession.getPath()
|
||||
editSession.on 'destroyed', => @editSessionDestroyed(editSession)
|
||||
@trigger 'editor:edit-session-added', [editSession, index]
|
||||
index
|
||||
@ -474,7 +476,12 @@ class Editor extends View
|
||||
getBuffer: -> @activeEditSession.buffer
|
||||
|
||||
undoDestroySession: ->
|
||||
@rootView().open(@closedEditSessions.pop(), true) unless @closedEditSessions.length == 0
|
||||
return unless @closedEditSessions.length > 0
|
||||
|
||||
{path, index} = @closedEditSessions.pop()
|
||||
@rootView().open(path)
|
||||
activeIndex = @getActiveEditSessionIndex()
|
||||
@moveEditSessionToIndex(activeIndex, index) if index < activeIndex
|
||||
|
||||
destroyActiveEditSession: ->
|
||||
@destroyEditSessionIndex(@getActiveEditSessionIndex())
|
||||
@ -485,7 +492,7 @@ class Editor extends View
|
||||
editSession = @editSessions[index]
|
||||
destroySession = =>
|
||||
path = editSession.getPath()
|
||||
@closedEditSessions.push(path) unless @closedEditSessions.indexOf(path) > -1
|
||||
@closedEditSessions.push({path, index})
|
||||
editSession.destroy()
|
||||
callback?(index)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user