2
2
3
3
import * as vt from 'vscode-textmate/release/main' ;
4
4
import fs = require( 'fs' ) ;
5
+ import path = require( 'path' ) ;
5
6
6
7
var register = new vt . Registry ( ) ;
7
8
var tsGrammar = register . loadGrammarFromPathSync ( "../TypeScript.tmLanguage" ) ;
@@ -26,7 +27,7 @@ function getMarkerLocations(str: string): number[] {
26
27
27
28
function getScopesAtMarkers ( text : string , grammar : vt . IGrammar ) : string {
28
29
let oriLines = text . split ( '\n' ) ;
29
- let ruleStack = undefined ;
30
+ let ruleStack : vt . StackElement [ ] = undefined ;
30
31
let outputLines : string [ ] = [ ] ;
31
32
for ( let i in oriLines ) {
32
33
let oriLine = oriLines [ i ] ;
@@ -47,12 +48,13 @@ function getScopesAtMarkers(text: string, grammar: vt.IGrammar): string {
47
48
return outputLines . join ( '\n' ) ;
48
49
}
49
50
50
- for ( var file of fs . readdirSync ( 'cases' ) ) {
51
- var text = fs . readFileSync ( 'cases/' + file , 'utf8' ) ;
52
- let outputFilename = file . slice ( 0 , file . lastIndexOf ( '.' ) ) ;
53
- let grammer = file . slice ( file . indexOf ( '.tsx' ) ) === '.tsx' ? tsReactGrammar : tsGrammar ;
51
+ for ( var fileName of fs . readdirSync ( 'cases' ) ) {
52
+ const text = fs . readFileSync ( path . join ( './cases' , fileName ) , 'utf8' ) ;
53
+ let parsedFileName = path . parse ( fileName ) ;
54
+ let grammar = parsedFileName . ext === '.tsx' ? tsReactGrammar : tsGrammar ;
54
55
if ( ! fs . existsSync ( './generated' ) ) {
55
56
fs . mkdirSync ( 'generated' ) ;
56
57
}
57
- fs . writeFile ( 'generated/' + outputFilename + '.txt' , getScopesAtMarkers ( text , grammer ) , "utf8" ) ;
58
+ let outputFileName = path . join ( './generated' , parsedFileName . name + '.txt' ) ;
59
+ fs . writeFile ( outputFileName , getScopesAtMarkers ( text , grammar ) , "utf8" ) ;
58
60
}
0 commit comments