diff --git a/spec/tokenized-buffer-spec.coffee b/spec/tokenized-buffer-spec.coffee index c1f29196a..68a8cf54c 100644 --- a/spec/tokenized-buffer-spec.coffee +++ b/spec/tokenized-buffer-spec.coffee @@ -385,6 +385,20 @@ describe "TokenizedBuffer", -> expect(tokens[1].value).toBeTruthy() expect(tokens[2].value).toBe 'xyz' + describe "when the grammar tokenized", -> + it "emits the `tokenized` event", -> + buffer = null + tokenizedBuffer = null + tokenizedHandler = jasmine.createSpy("tokenized handler") + + waitsForPromise -> + atom.project.open('sample.js').then (editor) -> buffer = editor.getBuffer() + + runs -> + tokenizedBuffer = new TokenizedBuffer({buffer}) + tokenizedBuffer.on 'tokenized', tokenizedHandler + fullyTokenize(tokenizedBuffer) + expect(tokenizedHandler.callCount).toBe(1) describe "when the grammar is updated because a grammar it includes is activated", -> it "retokenizes the buffer", -> diff --git a/src/tokenized-buffer.coffee b/src/tokenized-buffer.coffee index 01886ee0a..1d17249e2 100644 --- a/src/tokenized-buffer.coffee +++ b/src/tokenized-buffer.coffee @@ -124,7 +124,10 @@ class TokenizedBuffer extends Model @invalidateRow(row + 1) unless filledRegion @emit "changed", { start: invalidRow, end: row, delta: 0 } - @tokenizeInBackground() if @firstInvalidRow()? + if @firstInvalidRow()? + @tokenizeInBackground() + else + @emit "tokenized" firstInvalidRow: -> @invalidRows[0]