Only display markdown preview on save if preview already exists

This commit is contained in:
Corey Johnson
2013-03-25 14:47:52 -07:00
committed by probablycorey
parent 5f2c4dad95
commit 55d4625091
2 changed files with 24 additions and 11 deletions

View File

@@ -4,7 +4,7 @@ MarkdownPreviewView = require 'markdown-preview/lib/markdown-preview-view'
module.exports =
activate: ->
rootView.command 'markdown-preview:show', '.editor', => @show()
rootView.on 'core:save', ".pane", => @show()
rootView.on 'core:save', ".pane", => @show() if @previewExists()
show: ->
activePane = rootView.getActivePane()
@@ -26,3 +26,8 @@ module.exports =
else
activePane.splitRight(new MarkdownPreviewView(editSession.buffer))
activePane.focus()
previewExists: ->
nextPane = rootView.getActivePane().getNextPane()
item = rootView.getActivePane().activeItem
nextPane?.itemForUri("markdown-preview:#{item.getPath?()}")

View File

@@ -55,6 +55,15 @@ describe "MarkdownPreview package", ->
expect(preview.buffer).toBe rootView.getActivePaneItem().buffer
expect(pane1).toMatchSelector(':has(:focus)')
describe "when a buffer is saved", ->
it "does not show the markdown preview", ->
[pane] = rootView.getPanes()
pane.focus()
MarkdownPreviewView.prototype.fetchRenderedMarkdown.reset()
pane.trigger("core:save")
expect(MarkdownPreviewView.prototype.fetchRenderedMarkdown).not.toHaveBeenCalled()
describe "when a preview item has already been created for the edit session's uri", ->
it "updates and shows the existing preview item if it isn't displayed", ->
rootView.getActiveView().trigger 'markdown-preview:show'
@@ -75,14 +84,13 @@ describe "MarkdownPreview package", ->
expect(pane2.activeItem).toBe preview
expect(pane1).toMatchSelector(':has(:focus)')
describe "when a buffer is modified and saved after a preview item has already been created", ->
it "updates the existing preview item", ->
rootView.getActiveView().trigger 'markdown-preview:show'
[pane1, pane2] = rootView.getPanes()
preview = pane2.activeItem
pane1.focus()
describe "when a buffer is saved", ->
it "updates the existing preview item", ->
rootView.getActiveView().trigger 'markdown-preview:show'
[pane1, pane2] = rootView.getPanes()
preview = pane2.activeItem
pane1.focus()
preview.fetchRenderedMarkdown.reset()
pane1.saveActiveItem = () ->
pane1.trigger("core:save")
expect(preview.fetchRenderedMarkdown).toHaveBeenCalled()
preview.fetchRenderedMarkdown.reset()
pane1.trigger("core:save")
expect(preview.fetchRenderedMarkdown).toHaveBeenCalled()