@@ -12,21 +12,31 @@ var chalk = require("chalk"),
1212 plist = require ( "plist" ) ;
1313
1414
15- function compileGrammar ( grammarFile ) {
16- var tmp = temp . openSync ( ) ;
15+ function compileGrammar ( grammarFile , additionalGrammars ) {
16+ function _compile ( filename , registry ) {
17+ var tmp = temp . openSync ( ) ;
1718
18- try {
19- var yamlSource = fs . readFileSync ( grammarFile , 'utf8' ) ,
20- yamlSchema = yaml . safeLoad ( yamlSource ) ;
19+ try {
20+ var yamlSource = fs . readFileSync ( filename , 'utf8' ) ,
21+ yamlSchema = yaml . safeLoad ( yamlSource ) ;
2122
22- fs . writeSync ( tmp . fd , JSON . stringify ( yamlSchema ) ) ;
23- fs . closeSync ( tmp . fd ) ;
23+ fs . writeSync ( tmp . fd , JSON . stringify ( yamlSchema ) ) ;
24+ fs . closeSync ( tmp . fd ) ;
2425
25- var registry = new mate . GrammarRegistry ,
26- grammar = registry . loadGrammarSync ( tmp . path ) ;
26+ return registry . loadGrammarSync ( tmp . path ) ;
27+ }
28+ finally {
29+ temp . cleanupSync ( ) ;
30+ }
2731 }
28- finally {
29- temp . cleanupSync ( ) ;
32+
33+ var registry = new mate . GrammarRegistry ,
34+ grammar = _compile ( grammarFile , registry ) ;
35+
36+ if ( additionalGrammars ) {
37+ for ( var i = 0 ; i < additionalGrammars . length ; i ++ ) {
38+ _compile ( additionalGrammars [ i ] , registry ) ;
39+ }
3040 }
3141
3242 return grammar ;
@@ -171,7 +181,7 @@ function testFile(file, grammar, options) {
171181function test ( testFiles , grammarFile , options ) {
172182 options = options || { } ;
173183
174- var grammar = compileGrammar ( grammarFile ) ,
184+ var grammar = compileGrammar ( grammarFile , options . add_syntaxes ) ,
175185 sep = '--------' ,
176186 passed = 0 ,
177187 failed = 0 ,
0 commit comments