Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/extensions/common/reportExtensionIssueAction.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import * as nls from '../../../../nls.js';
7
import { Action } from '../../../../base/common/actions.js';
8
import { IExtensionDescription } from '../../../../platform/extensions/common/extensions.js';
9
import { IWorkbenchIssueService } from '../../issue/common/issue.js';
10
11
export class ReportExtensionIssueAction extends Action {
12
13
private static readonly _id = 'workbench.extensions.action.reportExtensionIssue';
14
private static readonly _label = nls.localize('reportExtensionIssue', "Report Issue");
15
16
// TODO: Consider passing in IExtensionStatus or IExtensionHostProfile for additional data
17
constructor(
18
private extension: IExtensionDescription,
19
@IWorkbenchIssueService private readonly issueService: IWorkbenchIssueService
20
) {
21
super(ReportExtensionIssueAction._id, ReportExtensionIssueAction._label, 'extension-action report-issue');
22
23
this.enabled = extension.isBuiltin || (!!extension.repository && !!extension.repository.url);
24
}
25
26
override async run(): Promise<void> {
27
await this.issueService.openReporter({
28
extensionId: this.extension.identifier.value,
29
});
30
}
31
}
32
33