EditSession reloads its grammar on the 'grammars-loaded' event

This commit is contained in:
Corey Johnson & Nathan Sobo
2013-03-07 14:25:14 -08:00
parent 39fabaa344
commit 17f4d6f064
2 changed files with 15 additions and 0 deletions

View File

@@ -2033,6 +2033,19 @@ describe "EditSession", ->
editSession.buffer.reload()
expect(editSession.getCursorScreenPosition()).toEqual [0,1]
describe "when the 'grammars-loaded' event is triggered on the syntax global", ->
it "reloads the edit session's grammar and re-tokenizes the buffer if it changes", ->
editSession.destroy()
grammarToReturn = syntax.grammarByFileTypeSuffix('txt')
spyOn(syntax, 'grammarForFilePath').andCallFake -> grammarToReturn
editSession = project.buildEditSession('sample.js', autoIndent: false)
expect(editSession.lineForScreenRow(0).tokens).toHaveLength 1
grammarToReturn = syntax.grammarByFileTypeSuffix('js')
syntax.trigger 'grammars-loaded'
expect(editSession.lineForScreenRow(0).tokens.length).toBeGreaterThan 1
describe "auto-indent", ->
describe "editor.autoIndent", ->
it "auto-indents newlines if editor.autoIndent is true", ->

View File

@@ -61,6 +61,8 @@ class EditSession
@subscribe @displayBuffer, "changed", (e) =>
@trigger 'screen-lines-changed', e
@subscribe syntax, 'grammars-loaded', => @reloadGrammar()
getViewClass: ->
require 'editor'