debt:由于js-debug的内置插件改为KylinIDETeam发布的插件,适配需要新ID的位置.
This commit is contained in:
parent
c5a82b8cf5
commit
9d4e4612c1
|
@ -34,14 +34,14 @@ function minifyExtensionResources(input) {
|
|||
.pipe(jsonFilter)
|
||||
.pipe(buffer())
|
||||
.pipe(es.mapSync((f) => {
|
||||
const errors = [];
|
||||
const value = jsoncParser.parse(f.contents.toString('utf8'), errors, { allowTrailingComma: true });
|
||||
if (errors.length === 0) {
|
||||
// file parsed OK => just stringify to drop whitespace and comments
|
||||
f.contents = Buffer.from(JSON.stringify(value));
|
||||
}
|
||||
return f;
|
||||
}))
|
||||
const errors = [];
|
||||
const value = jsoncParser.parse(f.contents.toString('utf8'), errors, { allowTrailingComma: true });
|
||||
if (errors.length === 0) {
|
||||
// file parsed OK => just stringify to drop whitespace and comments
|
||||
f.contents = Buffer.from(JSON.stringify(value));
|
||||
}
|
||||
return f;
|
||||
}))
|
||||
.pipe(jsonFilter.restore);
|
||||
}
|
||||
function updateExtensionPackageJSON(input, update) {
|
||||
|
@ -50,10 +50,10 @@ function updateExtensionPackageJSON(input, update) {
|
|||
.pipe(packageJsonFilter)
|
||||
.pipe(buffer())
|
||||
.pipe(es.mapSync((f) => {
|
||||
const data = JSON.parse(f.contents.toString('utf8'));
|
||||
f.contents = Buffer.from(JSON.stringify(update(data)));
|
||||
return f;
|
||||
}))
|
||||
const data = JSON.parse(f.contents.toString('utf8'));
|
||||
f.contents = Buffer.from(JSON.stringify(update(data)));
|
||||
return f;
|
||||
}))
|
||||
.pipe(packageJsonFilter.restore);
|
||||
}
|
||||
function fromLocal(extensionPath, forWeb, disableMangle) {
|
||||
|
@ -94,11 +94,11 @@ function fromLocalWebpack(extensionPath, webpackConfigFileName, disableMangle) {
|
|||
const files = fileNames
|
||||
.map(fileName => path.join(extensionPath, fileName))
|
||||
.map(filePath => new File({
|
||||
path: filePath,
|
||||
stat: fs.statSync(filePath),
|
||||
base: extensionPath,
|
||||
contents: fs.createReadStream(filePath)
|
||||
}));
|
||||
path: filePath,
|
||||
stat: fs.statSync(filePath),
|
||||
base: extensionPath,
|
||||
contents: fs.createReadStream(filePath)
|
||||
}));
|
||||
// check for a webpack configuration files, then invoke webpack
|
||||
// and merge its output with the files stream.
|
||||
const webpackConfigLocations = glob.sync(path.join(extensionPath, '**', webpackConfigFileName), { ignore: ['**/node_modules'] });
|
||||
|
@ -138,20 +138,20 @@ function fromLocalWebpack(extensionPath, webpackConfigFileName, disableMangle) {
|
|||
const relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path);
|
||||
return webpackGulp(webpackConfig, webpack, webpackDone)
|
||||
.pipe(es.through(function (data) {
|
||||
data.stat = data.stat || {};
|
||||
data.base = extensionPath;
|
||||
this.emit('data', data);
|
||||
}))
|
||||
data.stat = data.stat || {};
|
||||
data.base = extensionPath;
|
||||
this.emit('data', data);
|
||||
}))
|
||||
.pipe(es.through(function (data) {
|
||||
// source map handling:
|
||||
// * rewrite sourceMappingURL
|
||||
// * save to disk so that upload-task picks this up
|
||||
const contents = data.contents.toString('utf8');
|
||||
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
|
||||
return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
|
||||
}), 'utf8');
|
||||
this.emit('data', data);
|
||||
}));
|
||||
// source map handling:
|
||||
// * rewrite sourceMappingURL
|
||||
// * save to disk so that upload-task picks this up
|
||||
const contents = data.contents.toString('utf8');
|
||||
data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) {
|
||||
return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`;
|
||||
}), 'utf8');
|
||||
this.emit('data', data);
|
||||
}));
|
||||
});
|
||||
});
|
||||
es.merge(...webpackStreams, es.readArray(files))
|
||||
|
@ -173,16 +173,16 @@ function fromLocalNormal(extensionPath) {
|
|||
const result = es.through();
|
||||
vsce.listFiles({ cwd: extensionPath, packageManager: vsce.PackageManager.Yarn })
|
||||
.then(fileNames => {
|
||||
const files = fileNames
|
||||
.map(fileName => path.join(extensionPath, fileName))
|
||||
.map(filePath => new File({
|
||||
path: filePath,
|
||||
stat: fs.statSync(filePath),
|
||||
base: extensionPath,
|
||||
contents: fs.createReadStream(filePath)
|
||||
}));
|
||||
es.readArray(files).pipe(result);
|
||||
})
|
||||
const files = fileNames
|
||||
.map(fileName => path.join(extensionPath, fileName))
|
||||
.map(filePath => new File({
|
||||
path: filePath,
|
||||
stat: fs.statSync(filePath),
|
||||
base: extensionPath,
|
||||
contents: fs.createReadStream(filePath)
|
||||
}));
|
||||
es.readArray(files).pipe(result);
|
||||
})
|
||||
.catch(err => result.emit('error', err));
|
||||
return result.pipe((0, stats_1.createStatsStream)(path.basename(extensionPath)));
|
||||
}
|
||||
|
@ -245,7 +245,8 @@ const marketplaceWebExtensionsExclude = new Set([
|
|||
'ms-vscode.node-debug2',
|
||||
'ms-vscode.js-debug-companion',
|
||||
'ms-vscode.js-debug',
|
||||
'ms-vscode.vscode-js-profile-table'
|
||||
'ms-vscode.vscode-js-profile-table',
|
||||
'KylinIDETeam.js-debug'
|
||||
]);
|
||||
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
|
||||
const builtInExtensions = productJson.builtInExtensions || [];
|
||||
|
@ -279,11 +280,11 @@ function isWebExtension(manifest) {
|
|||
function packageLocalExtensionsStream(forWeb, disableMangle) {
|
||||
const localExtensionsDescriptions = (glob.sync('extensions/*/package.json')
|
||||
.map(manifestPath => {
|
||||
const absoluteManifestPath = path.join(root, manifestPath);
|
||||
const extensionPath = path.dirname(path.join(root, manifestPath));
|
||||
const extensionName = path.basename(extensionPath);
|
||||
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
|
||||
})
|
||||
const absoluteManifestPath = path.join(root, manifestPath);
|
||||
const extensionPath = path.dirname(path.join(root, manifestPath));
|
||||
const extensionName = path.basename(extensionPath);
|
||||
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
|
||||
})
|
||||
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
|
||||
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
|
||||
.filter(({ manifestPath }) => (forWeb ? isWebExtension(require(manifestPath)) : true)));
|
||||
|
@ -314,14 +315,14 @@ function packageMarketplaceExtensionsStream(forWeb) {
|
|||
];
|
||||
const marketplaceExtensionsStream = minifyExtensionResources(es.merge(...marketplaceExtensionsDescriptions
|
||||
.map(extension => {
|
||||
const src = (0, builtInExtensions_1.getExtensionStream)(extension).pipe(rename(p => p.dirname = `extensions/${p.dirname}`));
|
||||
return updateExtensionPackageJSON(src, (data) => {
|
||||
delete data.scripts;
|
||||
delete data.dependencies;
|
||||
delete data.devDependencies;
|
||||
return data;
|
||||
});
|
||||
})));
|
||||
const src = (0, builtInExtensions_1.getExtensionStream)(extension).pipe(rename(p => p.dirname = `extensions/${p.dirname}`));
|
||||
return updateExtensionPackageJSON(src, (data) => {
|
||||
delete data.scripts;
|
||||
delete data.dependencies;
|
||||
delete data.devDependencies;
|
||||
return data;
|
||||
});
|
||||
})));
|
||||
return (marketplaceExtensionsStream
|
||||
.pipe(util2.setExecutableBit(['**/*.sh'])));
|
||||
}
|
||||
|
@ -501,4 +502,4 @@ async function buildExtensionMedia(isWatch, outputRoot) {
|
|||
})));
|
||||
}
|
||||
exports.buildExtensionMedia = buildExtensionMedia;
|
||||
//# sourceMappingURL=extensions.js.map
|
||||
//# sourceMappingURL=extensions.js.map
|
||||
|
|
|
@ -283,7 +283,8 @@ const marketplaceWebExtensionsExclude = new Set([
|
|||
'ms-vscode.node-debug2',
|
||||
'ms-vscode.js-debug-companion',
|
||||
'ms-vscode.js-debug',
|
||||
'ms-vscode.vscode-js-profile-table'
|
||||
'ms-vscode.vscode-js-profile-table',
|
||||
'KylinIDETeam.js-debug'
|
||||
]);
|
||||
|
||||
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
|
||||
|
|
|
@ -511,65 +511,66 @@ function createL10nBundleForExtension(extensionFolderName, prefixWithBuildFolder
|
|||
const prefix = prefixWithBuildFolder ? '.build/' : '';
|
||||
return gulp
|
||||
.src([
|
||||
// For source code of extensions
|
||||
`${prefix}extensions/${extensionFolderName}/{src,client,server}/**/*.{ts,tsx}`,
|
||||
// // For any dependencies pulled in (think vscode-css-languageservice or @vscode/emmet-helper)
|
||||
`${prefix}extensions/${extensionFolderName}/**/node_modules/{@vscode,vscode-*}/**/*.{js,jsx}`,
|
||||
// // For any dependencies pulled in that bundle @vscode/l10n. They needed to export the bundle
|
||||
`${prefix}extensions/${extensionFolderName}/**/bundle.l10n.json`,
|
||||
])
|
||||
// For source code of extensions
|
||||
`${prefix}extensions/${extensionFolderName}/{src,client,server}/**/*.{ts,tsx}`,
|
||||
// // For any dependencies pulled in (think vscode-css-languageservice or @vscode/emmet-helper)
|
||||
`${prefix}extensions/${extensionFolderName}/**/node_modules/{@vscode,vscode-*}/**/*.{js,jsx}`,
|
||||
// // For any dependencies pulled in that bundle @vscode/l10n. They needed to export the bundle
|
||||
`${prefix}extensions/${extensionFolderName}/**/bundle.l10n.json`,
|
||||
])
|
||||
.pipe((0, event_stream_1.map)(function (data, callback) {
|
||||
const file = data;
|
||||
if (!file.isBuffer()) {
|
||||
// Not a buffer so we drop it
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
const extension = path.extname(file.relative);
|
||||
if (extension !== '.json') {
|
||||
const contents = file.contents.toString('utf8');
|
||||
(0, l10n_dev_1.getL10nJson)([{ contents, extension }])
|
||||
.then((json) => {
|
||||
callback(undefined, new File({
|
||||
path: `extensions/${extensionFolderName}/bundle.l10n.json`,
|
||||
contents: Buffer.from(JSON.stringify(json), 'utf8')
|
||||
}));
|
||||
})
|
||||
.catch((err) => {
|
||||
callback(new Error(`File ${file.relative} threw an error when parsing: ${err}`));
|
||||
});
|
||||
// signal pause?
|
||||
return false;
|
||||
}
|
||||
// for bundle.l10n.jsons
|
||||
let bundleJson;
|
||||
try {
|
||||
bundleJson = JSON.parse(file.contents.toString('utf8'));
|
||||
}
|
||||
catch (err) {
|
||||
callback(new Error(`File ${file.relative} threw an error when parsing: ${err}`));
|
||||
return;
|
||||
}
|
||||
// some validation of the bundle.l10n.json format
|
||||
for (const key in bundleJson) {
|
||||
if (typeof bundleJson[key] !== 'string' &&
|
||||
(typeof bundleJson[key].message !== 'string' || !Array.isArray(bundleJson[key].comment))) {
|
||||
callback(new Error(`Invalid bundle.l10n.json file. The value for key ${key} is not in the expected format.`));
|
||||
const file = data;
|
||||
if (!file.isBuffer()) {
|
||||
// Not a buffer so we drop it
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
}
|
||||
callback(undefined, file);
|
||||
}))
|
||||
const extension = path.extname(file.relative);
|
||||
if (extension !== '.json') {
|
||||
const contents = file.contents.toString('utf8');
|
||||
(0, l10n_dev_1.getL10nJson)([{ contents, extension }])
|
||||
.then((json) => {
|
||||
callback(undefined, new File({
|
||||
path: `extensions/${extensionFolderName}/bundle.l10n.json`,
|
||||
contents: Buffer.from(JSON.stringify(json), 'utf8')
|
||||
}));
|
||||
})
|
||||
.catch((err) => {
|
||||
callback(new Error(`File ${file.relative} threw an error when parsing: ${err}`));
|
||||
});
|
||||
// signal pause?
|
||||
return false;
|
||||
}
|
||||
// for bundle.l10n.jsons
|
||||
let bundleJson;
|
||||
try {
|
||||
bundleJson = JSON.parse(file.contents.toString('utf8'));
|
||||
}
|
||||
catch (err) {
|
||||
callback(new Error(`File ${file.relative} threw an error when parsing: ${err}`));
|
||||
return;
|
||||
}
|
||||
// some validation of the bundle.l10n.json format
|
||||
for (const key in bundleJson) {
|
||||
if (typeof bundleJson[key] !== 'string' &&
|
||||
(typeof bundleJson[key].message !== 'string' || !Array.isArray(bundleJson[key].comment))) {
|
||||
callback(new Error(`Invalid bundle.l10n.json file. The value for key ${key} is not in the expected format.`));
|
||||
return;
|
||||
}
|
||||
}
|
||||
callback(undefined, file);
|
||||
}))
|
||||
.pipe(jsonMerge({
|
||||
fileName: `extensions/${extensionFolderName}/bundle.l10n.json`,
|
||||
jsonSpace: '',
|
||||
concatArrays: true
|
||||
}));
|
||||
fileName: `extensions/${extensionFolderName}/bundle.l10n.json`,
|
||||
jsonSpace: '',
|
||||
concatArrays: true
|
||||
}));
|
||||
}
|
||||
exports.EXTERNAL_EXTENSIONS = [
|
||||
'ms-vscode.js-debug',
|
||||
'ms-vscode.js-debug-companion',
|
||||
'ms-vscode.vscode-js-profile-table',
|
||||
'KylinIDETeam.js-debug',
|
||||
];
|
||||
function createXlfFilesForExtensions() {
|
||||
let counter = 0;
|
||||
|
@ -775,22 +776,22 @@ function prepareI18nPackFiles(resultingTranslationPaths) {
|
|||
}, function () {
|
||||
Promise.all(parsePromises)
|
||||
.then(() => {
|
||||
if (errors.length > 0) {
|
||||
throw errors;
|
||||
}
|
||||
const translatedMainFile = createI18nFile('./main', mainPack);
|
||||
resultingTranslationPaths.push({ id: 'vscode', resourceName: 'main.i18n.json' });
|
||||
this.queue(translatedMainFile);
|
||||
for (const extensionId in extensionsPacks) {
|
||||
const translatedExtFile = createI18nFile(`extensions/${extensionId}`, extensionsPacks[extensionId]);
|
||||
this.queue(translatedExtFile);
|
||||
resultingTranslationPaths.push({ id: extensionId, resourceName: `extensions/${extensionId}.i18n.json` });
|
||||
}
|
||||
this.queue(null);
|
||||
})
|
||||
if (errors.length > 0) {
|
||||
throw errors;
|
||||
}
|
||||
const translatedMainFile = createI18nFile('./main', mainPack);
|
||||
resultingTranslationPaths.push({ id: 'vscode', resourceName: 'main.i18n.json' });
|
||||
this.queue(translatedMainFile);
|
||||
for (const extensionId in extensionsPacks) {
|
||||
const translatedExtFile = createI18nFile(`extensions/${extensionId}`, extensionsPacks[extensionId]);
|
||||
this.queue(translatedExtFile);
|
||||
resultingTranslationPaths.push({ id: extensionId, resourceName: `extensions/${extensionId}.i18n.json` });
|
||||
}
|
||||
this.queue(null);
|
||||
})
|
||||
.catch((reason) => {
|
||||
this.emit('error', reason);
|
||||
});
|
||||
this.emit('error', reason);
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.prepareI18nPackFiles = prepareI18nPackFiles;
|
||||
|
@ -812,8 +813,8 @@ function prepareIslFiles(language, innoSetupConfig) {
|
|||
Promise.all(parsePromises)
|
||||
.then(() => { this.queue(null); })
|
||||
.catch(reason => {
|
||||
this.emit('error', reason);
|
||||
});
|
||||
this.emit('error', reason);
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.prepareIslFiles = prepareIslFiles;
|
||||
|
@ -877,4 +878,4 @@ function encodeEntities(value) {
|
|||
function decodeEntities(value) {
|
||||
return value.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
|
||||
}
|
||||
//# sourceMappingURL=i18n.js.map
|
||||
//# sourceMappingURL=i18n.js.map
|
||||
|
|
|
@ -647,6 +647,7 @@ export const EXTERNAL_EXTENSIONS = [
|
|||
'ms-vscode.js-debug',
|
||||
'ms-vscode.js-debug-companion',
|
||||
'ms-vscode.vscode-js-profile-table',
|
||||
'KylinIDETeam.js-debug',
|
||||
];
|
||||
|
||||
export function createXlfFilesForExtensions(): ThroughStream {
|
||||
|
|
|
@ -368,7 +368,8 @@ async function getIpcAddress(context: vscode.ExtensionContext) {
|
|||
// todo: make a way in the API to read environment data directly without activating js-debug?
|
||||
const jsDebugPath =
|
||||
vscode.extensions.getExtension('ms-vscode.js-debug-nightly')?.extensionPath ||
|
||||
vscode.extensions.getExtension('ms-vscode.js-debug')?.extensionPath;
|
||||
vscode.extensions.getExtension('ms-vscode.js-debug')?.extensionPath ||
|
||||
vscode.extensions.getExtension('KylinIDETeam.js-debug')?.extensionPath;
|
||||
|
||||
const settingsValue = getJsDebugSettingKey();
|
||||
if (cachedIpc?.jsDebugPath === jsDebugPath && cachedIpc?.settingsValue === settingsValue) {
|
||||
|
|
Loading…
Reference in New Issue