mirror of
https://github.com/atom/atom.git
synced 2026-02-16 09:35:54 -05:00
Re-tokenize buffer when its grammar is updated
This can happen if a grammar that the grammar includes is added or removed from the syntax global.
This commit is contained in:
@@ -34,6 +34,7 @@ class LanguageMode
|
||||
return if grammar is @grammar
|
||||
@grammar = grammar
|
||||
@currentGrammarScore = score ? grammar.getScore(@buffer.getPath(), @buffer.getText())
|
||||
@subscribe @grammar, 'grammar-updated', => @trigger 'grammar-updated'
|
||||
@trigger 'grammar-changed', grammar
|
||||
|
||||
reloadGrammar: ->
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Token = require 'token'
|
||||
EventEmitter = require 'event-emitter'
|
||||
_ = require 'underscore'
|
||||
|
||||
###
|
||||
# Internal #
|
||||
@@ -14,3 +16,5 @@ class NullGrammar
|
||||
{ tokens: [new Token(value: line, scopes: ['null-grammar.text.plain'])] }
|
||||
|
||||
grammarAddedOrRemoved: -> # no op
|
||||
|
||||
_.extend NullGrammar.prototype, EventEmitter
|
||||
|
||||
@@ -28,6 +28,7 @@ class TokenizedBuffer
|
||||
@resetScreenLines()
|
||||
@buffer.on "changed.tokenized-buffer#{@id}", (e) => @handleBufferChange(e)
|
||||
@languageMode.on 'grammar-changed', => @resetScreenLines()
|
||||
@languageMode.on 'grammar-updated', => @resetScreenLines()
|
||||
|
||||
resetScreenLines: ->
|
||||
@screenLines = @buildPlaceholderScreenLinesForRows(0, @buffer.getLastRow())
|
||||
|
||||
Reference in New Issue
Block a user