提交 645c459c 编写于 作者: M Matt Bierner

Extract duplicate contribution loading logic

上级 28c8990e
...@@ -6,11 +6,25 @@ ...@@ -6,11 +6,25 @@
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import * as path from 'path'; import * as path from 'path';
const resolveExtensionResources = (extension: vscode.Extension<any>, resourcePath: string): vscode.Uri => { const resolveExtensionResource = (extension: vscode.Extension<any>, resourcePath: string): vscode.Uri => {
return vscode.Uri.file(path.join(extension.extensionPath, resourcePath)) return vscode.Uri.file(path.join(extension.extensionPath, resourcePath))
.with({ scheme: 'vscode-resource' }); .with({ scheme: 'vscode-resource' });
}; };
const resolveExtensionResources = (extension: vscode.Extension<any>, resourcePaths: any): vscode.Uri[] => {
const result: vscode.Uri[] = [];
if (Array.isArray(resourcePaths)) {
for (const resource of resourcePaths) {
try {
result.push(resolveExtensionResource(extension, resource));
} catch (e) {
// noop
}
}
}
return result;
};
export interface MarkdownContributions { export interface MarkdownContributions {
readonly previewScripts: vscode.Uri[]; readonly previewScripts: vscode.Uri[];
readonly previewStyles: vscode.Uri[]; readonly previewStyles: vscode.Uri[];
...@@ -86,32 +100,14 @@ class MarkdownExtensionContributions implements MarkdownContributions { ...@@ -86,32 +100,14 @@ class MarkdownExtensionContributions implements MarkdownContributions {
contributes: any, contributes: any,
extension: vscode.Extension<any> extension: vscode.Extension<any>
) { ) {
const scripts = contributes['markdown.previewScripts']; this._scripts.push(...resolveExtensionResources(extension, contributes['markdown.previewScripts']));
if (scripts && Array.isArray(scripts)) {
for (const script of scripts) {
try {
this._scripts.push(resolveExtensionResources(extension, script));
} catch (e) {
// noop
}
}
}
} }
private tryLoadPreviewStyles( private tryLoadPreviewStyles(
contributes: any, contributes: any,
extension: vscode.Extension<any> extension: vscode.Extension<any>
) { ) {
const styles = contributes['markdown.previewStyles']; this._styles.push(...resolveExtensionResources(extension, contributes['markdown.previewStyles']));
if (styles && Array.isArray(styles)) {
for (const style of styles) {
try {
this._styles.push(resolveExtensionResources(extension, style));
} catch (e) {
// noop
}
}
}
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册