Store injections grammars on Syntax global

This commit is contained in:
Kevin Sawicki & Nathan Sobo
2013-04-22 17:23:51 -07:00
committed by Kevin Sawicki
parent 125c41a2e2
commit 228fa1abe5
2 changed files with 4 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ class Syntax
@nullGrammar = new NullGrammar
@grammars = [@nullGrammar]
@grammarsByScopeName = {}
@injectionGrammars = []
@grammarOverridesByPath = {}
@scopedPropertiesIndex = 0
@scopedProperties = []
@@ -34,12 +35,14 @@ class Syntax
previousGrammars = new Array(@grammars...)
@grammars.push(grammar)
@grammarsByScopeName[grammar.scopeName] = grammar
@injectionGrammars.push(grammar) if grammar.injectionSelector?
@grammarUpdated(grammar.scopeName)
@trigger 'grammar-added', grammar
removeGrammar: (grammar) ->
_.remove(@grammars, grammar)
delete @grammarsByScopeName[grammar.scopeName]
_.remove(@injectionGrammars, grammar)
@grammarUpdated(grammar.scopeName)
grammarUpdated: (scopeName) ->

View File

@@ -27,8 +27,6 @@ class TextMateGrammar
@loadSync: (path) ->
new TextMateGrammar(fsUtils.readObject(path))
@injectionGrammars: []
name: null
rawPatterns: null
rawRepository: null
@@ -47,7 +45,6 @@ class TextMateGrammar
if injectionSelector?
@injectionSelector = new TextMateScopeSelector(injectionSelector)
TextMateGrammar.injectionGrammars.push(this)
@firstLineRegex = new OnigRegExp(firstLineMatch) if firstLineMatch
@fileTypes ?= []
@@ -279,7 +276,7 @@ class Rule
results.push(result)
scopes = scopesFromStack(ruleStack)
for injectionGrammar in _.without(TextMateGrammar.injectionGrammars, @grammar, baseGrammar)
for injectionGrammar in _.without(syntax.injectionGrammars, @grammar, baseGrammar)
if injectionGrammar.injectionSelector.matches(scopes)
scanner = injectionGrammar.getInitialRule().getScanner(injectionGrammar, position, firstLine)
if result = scanner.findNextMatch(lineWithNewline, position)