diff --git a/src/packages/markdown-preview/lib/markdown-preview.coffee b/src/packages/markdown-preview/lib/markdown-preview.coffee index 2c0fe213e..fa21e2a47 100644 --- a/src/packages/markdown-preview/lib/markdown-preview.coffee +++ b/src/packages/markdown-preview/lib/markdown-preview.coffee @@ -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?()}") diff --git a/src/packages/markdown-preview/spec/markdown-preview-spec.coffee b/src/packages/markdown-preview/spec/markdown-preview-spec.coffee index 478418f82..92eaa6703 100644 --- a/src/packages/markdown-preview/spec/markdown-preview-spec.coffee +++ b/src/packages/markdown-preview/spec/markdown-preview-spec.coffee @@ -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()