From c56ac701812d98fa7ce23cfc4c2d263a0928eb5e Mon Sep 17 00:00:00 2001 From: probablycorey Date: Wed, 28 May 2014 14:53:38 -0700 Subject: [PATCH] Add `tokenized` event to tokenized buffer --- spec/tokenized-buffer-spec.coffee | 14 ++++++++++++++ src/tokenized-buffer.coffee | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) 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]