mirror of
https://github.com/atom/atom.git
synced 2026-02-06 12:44:59 -05:00
Fix #505. Update grammars if any included grammars are updated.
This commit is contained in:
@@ -15,6 +15,6 @@ class NullGrammar
|
||||
tokenizeLine: (line) ->
|
||||
{ tokens: [new Token(value: line, scopes: ['null-grammar.text.plain'])] }
|
||||
|
||||
grammarAddedOrRemoved: -> # no op
|
||||
grammarUpdated: -> # noop
|
||||
|
||||
_.extend NullGrammar.prototype, EventEmitter
|
||||
|
||||
@@ -34,16 +34,17 @@ class Syntax
|
||||
previousGrammars = new Array(@grammars...)
|
||||
@grammars.push(grammar)
|
||||
@grammarsByScopeName[grammar.scopeName] = grammar
|
||||
@notifyOtherGrammars(previousGrammars, grammar.scopeName)
|
||||
@grammarUpdated(grammar.scopeName)
|
||||
@trigger 'grammar-added', grammar
|
||||
|
||||
removeGrammar: (grammar) ->
|
||||
_.remove(@grammars, grammar)
|
||||
delete @grammarsByScopeName[grammar.scopeName]
|
||||
@notifyOtherGrammars(@grammars, grammar.scopeName)
|
||||
@grammarUpdated(grammar.scopeName)
|
||||
|
||||
notifyOtherGrammars: (grammars, scopeName) ->
|
||||
grammar.grammarAddedOrRemoved(scopeName) for grammar in grammars
|
||||
grammarUpdated: (scopeName) ->
|
||||
for grammar in @grammars when grammar.scopeName isnt scopeName
|
||||
grammar.grammarUpdated(scopeName)
|
||||
|
||||
setGrammarOverrideForPath: (path, scopeName) ->
|
||||
@grammarOverridesByPath[path] = scopeName
|
||||
|
||||
@@ -64,9 +64,10 @@ class TextMateGrammar
|
||||
addIncludedGrammarScope: (scope) ->
|
||||
@includedGrammarScopes.push(scope) unless _.include(@includedGrammarScopes, scope)
|
||||
|
||||
grammarAddedOrRemoved: (scopeName) =>
|
||||
grammarUpdated: (scopeName) =>
|
||||
return unless _.include(@includedGrammarScopes, scopeName)
|
||||
@clearRules()
|
||||
syntax.grammarUpdated(@scopeName)
|
||||
@trigger 'grammar-updated'
|
||||
|
||||
getScore: (path, contents) ->
|
||||
|
||||
Reference in New Issue
Block a user