提交 cac9aa41 编写于 作者: J Johannes Rieken

use nodeCachedData for main process, #17108

上级 9dc00cf6
......@@ -17,18 +17,19 @@ function uriFromPath(_path) {
}
var rawNlsConfig = process.env['VSCODE_NLS_CONFIG'];
var nlsConfig = rawNlsConfig ? JSON.parse(rawNlsConfig) : { availableLanguages:{} };
var nlsConfig = rawNlsConfig ? JSON.parse(rawNlsConfig) : { availableLanguages: {} };
loader.config({
baseUrl: uriFromPath(__dirname),
catchError: true,
nodeRequire: require,
nodeMain: __filename,
'vs/nls': nlsConfig
'vs/nls': nlsConfig,
nodeCachedDataDir: process.env['VSCODE_NODE_CACHED_DATA_DIR_' + process.pid]
});
if (nlsConfig.pseudo) {
loader(['vs/nls'], function(nlsPlugin) {
loader(['vs/nls'], function (nlsPlugin) {
nlsPlugin.setPseudoTranslation(nlsConfig.pseudo);
});
}
......@@ -39,4 +40,4 @@ exports.bootstrap = function (entrypoint) {
}
loader([entrypoint], function () { }, function (err) { console.error(err); });
};
\ No newline at end of file
};
......@@ -111,6 +111,33 @@ function getNLSConfiguration() {
return resolvedLocale ? resolvedLocale : { locale: initialLocale, availableLanguages: {} };
}
function getNodeCachedDataDir() {
// IEnvironmentService.isBuilt
if (process.env['VSCODE_DEV']) {
return Promise.resolve();
}
function ensureDir(dir) {
return new Promise(function (resolve, reject) {
fs.mkdir(dir, function (err) {
if (err && err.code !== 'EEXIST') {
reject(err);
} else {
resolve(dir);
}
});
});
}
var basedir = path.join(app.getPath('userData'), 'CachedData');
return ensureDir(basedir).then(function () {
var version = require(path.join(__dirname, '../package.json')).version;
var cachedDataDir = path.join(basedir, version);
return ensureDir(cachedDataDir);
});
}
// Set userData path before app 'ready' event and call to process.chdir
var userData = path.resolve(args['user-data-dir'] || paths.getDefaultUserDataPath(process.platform));
app.setPath('userData', userData);
......@@ -149,9 +176,17 @@ global.getOpenUrls = function () {
return openUrls;
};
var nodeCachedDataDir = getNodeCachedDataDir().then(function (value) {
process.env['VSCODE_NODE_CACHED_DATA_DIR_' + process.pid] = value;
});
// Load our code once ready
app.once('ready', function () {
var nlsConfig = getNLSConfiguration();
process.env['VSCODE_NLS_CONFIG'] = JSON.stringify(nlsConfig);
require('./bootstrap-amd').bootstrap('vs/code/electron-main/main');
});
\ No newline at end of file
nodeCachedDataDir.then(function () {
require('./bootstrap-amd').bootstrap('vs/code/electron-main/main');
});
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册