Re-render markdown when a grammar is added

Previously if the markdown preview launched before grammars finished
loading the fenced code blocks would not be colorized correctly.
This commit is contained in:
Kevin Sawicki
2013-08-08 18:28:26 -07:00
parent 28f9f22614
commit 26c9e7cfa9
2 changed files with 11 additions and 1 deletions

View File

@@ -37,6 +37,7 @@ class MarkdownPreviewView extends ScrollView
super
@renderMarkdown()
syntax.on 'grammar-added', => @renderMarkdown()
@on 'core:move-up', => @scrollUp()
@on 'core:move-down', => @scrollDown()
@@ -72,7 +73,6 @@ class MarkdownPreviewView extends ScrollView
setLoading: ->
@html($$$ -> @div class: 'markdown-spinner', 'Loading Markdown...')
tokenizeCodeBlocks: (html) =>
html = $(html)
preList = $(html.filter("pre"))

View File

@@ -122,3 +122,13 @@ describe "MarkdownPreview package", ->
pane1.activeItem.buffer.trigger 'saved'
expect(preview.renderMarkdown).toHaveBeenCalled()
expect(pane2.activeItem).toBe preview
describe "when a new grammar is loaded", ->
it "reloads the view to colorize any fenced code blocks matching the newly loaded grammar", ->
rootView.getActiveView().trigger 'markdown-preview:show'
[pane1, pane2] = rootView.getPanes()
preview = pane2.activeItem
preview.renderMarkdown.reset()
atom.activatePackage('javascript-tmbundle', sync: true)
expect(preview.renderMarkdown).toHaveBeenCalled()