提交 ae5b8fb1 编写于 作者: B Benjamin Lannon 提交者: Ramya Rao

Added ability to output extension info to clipboard (#56514)

* Added ability to output extension info to clipboard

* Copy Extension name as well
上级 297380be
......@@ -50,6 +50,7 @@ import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensions
import product from 'vs/platform/node/product';
import { IQuickPickItem, IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
import { CancellationToken } from 'vs/base/common/cancellation';
import { clipboard } from 'electron';
import { IPartService } from 'vs/workbench/services/part/common/partService';
import { alert } from 'vs/base/browser/ui/aria/aria';
......@@ -520,6 +521,7 @@ export class ManageExtensionAction extends Action {
this.instantiationService.createInstance(DisableForWorkspaceAction, DisableForWorkspaceAction.LABEL)
]);
groups.push([this.instantiationService.createInstance(UninstallAction)]);
groups.push([this.instantiationService.createInstance(ExtensionInfoAction)]);
return groups;
}
......@@ -552,6 +554,36 @@ export class ManageExtensionAction extends Action {
}
}
export class ExtensionInfoAction extends Action implements IExtensionAction {
static readonly ID = 'extensions.extensionInfo';
static readonly LABEL = localize('extensionInfoAction', "Copy Extension information");
private _extension: IExtension;
get extension(): IExtension { return this._extension; }
set extension(extension: IExtension) { this._extension = extension; }
constructor() {
super(ExtensionInfoAction.ID, ExtensionInfoAction.LABEL);
}
run(): Promise<any> {
const { description, version, publisherDisplayName, id, displayName } = this.extension;
const localizedExtension = localize('extensionInfoName', 'Name') + ': ' + displayName;
const localizedExtensionId = localize('extensionInfoId', 'Id') + ': ' + id;
const localizedDescription = localize('extensionInfoDescription', 'Description') + ': ' + description;
const localizedVersion = localize('extensionInfoVersion', 'Version') + ': ' + version;
const localizedPublisher = localize('extensionInfoPublisher', 'Publisher') + ': ' + publisherDisplayName;
const localizedVSMarketplaceLink = localize('extensionInfoVSMarketplaceLink', 'VS Marketplace Link') + ': https://marketplace.visualstudio.com/items?itemName=' + id;
const clipboardStr = `${localizedExtension}\n${localizedExtensionId}\n${localizedDescription}\n${localizedVersion}\n${localizedPublisher}\n${localizedVSMarketplaceLink}`;
clipboard.writeText(clipboardStr);
return Promise.resolve(null);
}
}
export class EnableForWorkspaceAction extends Action implements IExtensionAction {
static readonly ID = 'extensions.enableForWorkspace';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册