Fix decorated config with default colors (#2242)

Fix decorated config with default colors
This commit is contained in:
CHaBou 2017-09-20 23:32:32 +02:00 committed by GitHub
parent cc2ff06318
commit c02c2526ac
4 changed files with 27 additions and 7 deletions

View file

@ -1,6 +1,6 @@
const fs = require('fs');
const notify = require('./notify');
const _import = require('./config/import');
const {_import, getDefaultConfig} = require('./config/import');
const _openConfig = require('./config/open');
const win = require('./config/windows');
const {cfgPath, cfgDir} = require('./config/paths');
@ -112,6 +112,13 @@ const checkDeprecatedConfig = function() {
notify('Configuration warning', `Your configuration uses some deprecated CSS classes (${deprecatedStr})`);
};
exports.fixConfigDefaults = decoratedConfig => {
const defaultConfig = getDefaultConfig().config;
// We must have default colors for xterm css.
decoratedConfig.colors = Object.assign({}, defaultConfig.colors, decoratedConfig.colors);
return decoratedConfig;
};
exports.htermConfigTranslate = config => {
const cssReplacements = {
'x-screen x-row([ {.[])': '.xterm-rows > div$1',

View file

@ -1,9 +1,11 @@
const {writeFileSync, readFileSync} = require('fs');
const {sync: mkdirpSync} = require('mkdirp');
const {defaultCfg, cfgPath, plugs} = require('./paths');
const _init = require('./init');
const {_init, _extractDefault} = require('./init');
const _keymaps = require('./keymaps');
let defaultConfig;
const _write = function(path, data) {
// This method will take text formatted as Unix line endings and transform it
// to text formatted with DOS line endings. We do this because the default
@ -35,8 +37,10 @@ const _importConf = function() {
}
};
const _import = function() {
const cfg = _init(_importConf());
exports._import = () => {
const imported = _importConf();
defaultConfig = _extractDefault(imported.defaultCfg);
const cfg = _init(imported);
if (cfg) {
cfg.keymaps = _keymaps.import(cfg.keymaps);
@ -44,4 +48,9 @@ const _import = function() {
return cfg;
};
module.exports = _import;
exports.getDefaultConfig = () => {
if (!defaultConfig) {
defaultConfig = _extractDefault(_importConf().defaultCfg);
}
return defaultConfig;
};

View file

@ -45,4 +45,7 @@ const _init = function(cfg) {
return _extractDefault(cfg.defaultCfg);
};
module.exports = _init;
module.exports = {
_init,
_extractDefault
};

View file

@ -354,7 +354,8 @@ exports.getDecoratedEnv = baseEnv => {
exports.getDecoratedConfig = () => {
const baseConfig = config.getConfig();
const decoratedConfig = decorateObject(baseConfig, 'decorateConfig');
const translatedConfig = config.htermConfigTranslate(decoratedConfig);
const fixedConfig = config.fixConfigDefaults(decoratedConfig);
const translatedConfig = config.htermConfigTranslate(fixedConfig);
return translatedConfig;
};