diff --git a/convert-to-textmate.js b/convert-to-textmate.js new file mode 100644 index 0000000..2d80c9d --- /dev/null +++ b/convert-to-textmate.js @@ -0,0 +1,31 @@ +let nlist = require("nextstep-plist") +let filepath = process.argv[2] +let path = require("path") + +if (!filepath || !filepath.endsWith(".json")) { + console.log("please provide a path to a json file mate") + process.exit(1) +} + +let syntax = require(path.resolve(__dirname, filepath)) + +let flurp = r => + r.replace(/# .*/g, '').replace(/\s/g, '') + +let grith = patterns => { + for (let pattern of patterns) { + for (let key in pattern) { + if (key == "begin" || key == "match") { + pattern[key] = flurp(pattern[key]) + } + } + } +} + +grith(syntax.patterns) + +for (let repo in syntax.repository) { + grith(syntax.repository[repo].patterns) +} + +console.log(nlist.stringify(syntax)) diff --git a/package.json b/package.json index 6bea724..92adbf1 100644 --- a/package.json +++ b/package.json @@ -79,5 +79,8 @@ }, "scripts": { "update": "node ./build/update-grammar.js perl6/atom-language-perl6 grammars/perl6fe.cson ./syntaxes/perl6fe.json && node ./build/update-grammar.js perl6/atom-language-perl6 grammars/perl6fe.quoting.cson ./syntaxes/perl6fe.quoting.json && node ./build/update-grammar.js perl6/atom-language-perl6 grammars/perl6fe.regexp.cson ./syntaxes/perl6fe.regexp.json && node ./build/update-grammar.js perl6/atom-language-perl6 grammars/meta-info.cson ./syntaxes/meta-info.json" + }, + "dependencies": { + "nextstep-plist": "^0.4.1" } }