48 lines
1.6 KiB
JavaScript
Executable File
48 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
var path = require('path'),
|
|
fs = require('fs'),
|
|
_ = require('underscore')._;
|
|
|
|
var carto = require('../lib/carto');
|
|
|
|
var color_names = _.keys(carto.tree.Reference.data.colors);
|
|
var property_names = carto.tree.Reference.selectors;
|
|
var keyword_names = _.reduce(carto.tree.Reference.data.symbolizers,
|
|
function(memo, s) {
|
|
for (var i in s) {
|
|
if (_.isArray(s[i].type)) {
|
|
memo = memo.concat(s[i].type);
|
|
}
|
|
}
|
|
return memo;
|
|
}, []);
|
|
|
|
// TextMate
|
|
// --------
|
|
// Generate TextMate tmLanguage file for use in bundle
|
|
var tm_tmpl = fs.readFileSync(path.join(__dirname, 'tmlanguage_template.js'), 'utf-8');
|
|
fs.writeFile('carto.tmLanguage', _.template(tm_tmpl, {
|
|
color_names: color_names.filter(function(a) { return a; }).join('|'),
|
|
keyword_names: keyword_names.filter(function(a) { return a; }).join('|'),
|
|
property_names: property_names.filter(function(a) { return a; }).join('|')
|
|
}), function(err) {
|
|
if (!err) console.log('tmLanguage created');
|
|
});
|
|
|
|
// VIM
|
|
// ---
|
|
// Generate carto.syntax
|
|
var tm_tmpl = fs.readFileSync(path.join(__dirname, 'vimsyntax_template.js'), 'utf-8');
|
|
fs.writeFile('vim-carto/syntax/carto.vim', _.template(tm_tmpl, {
|
|
color_names: color_names.filter(function(a) { return a; }).join('\\|'),
|
|
keyword_names: keyword_names.filter(function(a) { return a; }).join('\\|'),
|
|
property_names: property_names.filter(function(a) {
|
|
return a;
|
|
}).map(function(a) {
|
|
return a.replace(/\-/g, '\\-');
|
|
}).join('\\|')
|
|
}), function(err) {
|
|
if (!err) console.log('carto.vim created');
|
|
});
|