mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Retokenize when grammar with matching injection selector is loaded
This commit is contained in:
committed by
Kevin Sawicki
parent
b1527a7982
commit
0d35943386
@@ -1,6 +1,7 @@
|
||||
_ = require 'underscore'
|
||||
ScreenLine = require 'screen-line'
|
||||
EventEmitter = require 'event-emitter'
|
||||
Subscriber = require 'Subscriber'
|
||||
Token = require 'token'
|
||||
Range = require 'range'
|
||||
Point = require 'point'
|
||||
@@ -29,6 +30,15 @@ class TokenizedBuffer
|
||||
@buffer.on "changed.tokenized-buffer#{@id}", (e) => @handleBufferChange(e)
|
||||
@languageMode.on 'grammar-changed', => @resetScreenLines()
|
||||
@languageMode.on 'grammar-updated', => @resetScreenLines()
|
||||
@subscribe syntax, 'grammar-added', (grammar) =>
|
||||
if grammar.injectionSelector? and @hasTokenForSelector(grammar.injectionSelector)
|
||||
@resetScreenLines()
|
||||
|
||||
hasTokenForSelector: (selector) ->
|
||||
for {tokens} in @screenLines
|
||||
for token in tokens
|
||||
return true if selector.matches(token.scopes)
|
||||
false
|
||||
|
||||
resetScreenLines: ->
|
||||
@screenLines = @buildPlaceholderScreenLinesForRows(0, @buffer.getLastRow())
|
||||
@@ -250,3 +260,4 @@ class TokenizedBuffer
|
||||
lines.join('\n')
|
||||
|
||||
_.extend(TokenizedBuffer.prototype, EventEmitter)
|
||||
_.extend(TokenizedBuffer.prototype, Subscriber)
|
||||
|
||||
Reference in New Issue
Block a user